Compare commits
	
		
			No commits in common. "3e222fb305d9f2642e9da8273d179aeffd874d69" and "3e969de57f493dd1bbc2fb68b3b66d72ec2c9071" have entirely different histories.
		
	
	
		
			3e222fb305
			...
			3e969de57f
		
	
		
| @ -1,19 +0,0 @@ | |||||||
| # Generated by Django 4.2 on 2023-08-08 05:52 |  | ||||||
| 
 |  | ||||||
| from django.db import migrations, models |  | ||||||
| import django.db.models.deletion |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| class Migration(migrations.Migration): |  | ||||||
| 
 |  | ||||||
|     dependencies = [ |  | ||||||
|         ('collector', '0002_alter_ticket_options_alter_archive_size_and_more'), |  | ||||||
|     ] |  | ||||||
| 
 |  | ||||||
|     operations = [ |  | ||||||
|         migrations.AlterField( |  | ||||||
|             model_name='archive', |  | ||||||
|             name='ticket', |  | ||||||
|             field=models.ForeignKey(db_column='ticket_number', on_delete=django.db.models.deletion.CASCADE, to='collector.ticket', to_field='number'), |  | ||||||
|         ), |  | ||||||
|     ] |  | ||||||
| @ -32,12 +32,7 @@ class Archive(models.Model): | |||||||
|     sha1 = models.CharField(max_length=1024, editable=False) |     sha1 = models.CharField(max_length=1024, editable=False) | ||||||
|     time_create = models.DateTimeField(auto_now_add=True) |     time_create = models.DateTimeField(auto_now_add=True) | ||||||
|     time_update = models.DateTimeField(auto_now=True) |     time_update = models.DateTimeField(auto_now=True) | ||||||
|     ticket = models.ForeignKey( |     ticket = models.ForeignKey('Ticket', on_delete=models.CASCADE) | ||||||
|         'Ticket', |  | ||||||
|         to_field='number', |  | ||||||
|         db_column='ticket_number', |  | ||||||
|         on_delete=models.CASCADE |  | ||||||
|     ) |  | ||||||
|     user = models.ForeignKey(User, on_delete=models.CASCADE) |     user = models.ForeignKey(User, on_delete=models.CASCADE) | ||||||
| 
 | 
 | ||||||
|     def save(self, *args, **kwargs): |     def save(self, *args, **kwargs): | ||||||
|  | |||||||
| @ -4,14 +4,21 @@ from .models import Archive, Ticket | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class ArchiveUploadSerializer(serializers.ModelSerializer): | class ArchiveUploadSerializer(serializers.ModelSerializer): | ||||||
|  |     ticket_number = serializers.ReadOnlyField(source='ticket.number') | ||||||
| 
 | 
 | ||||||
|     class Meta: |     class Meta: | ||||||
|         model = Archive |         model = Archive | ||||||
|         fields = ['file', 'ticket'] |         fields = ['file', 'ticket', 'ticket_number'] | ||||||
| 
 | 
 | ||||||
|  |     def to_internal_value(self, data): | ||||||
|  |         try: | ||||||
|  |             ticket = Ticket.objects.get(number=data['ticket']) | ||||||
|  |             data['ticket'] = ticket.id | ||||||
|  |             return super().to_internal_value(data) | ||||||
|  |         except Exception: | ||||||
|  |             return super().to_internal_value(data) | ||||||
| 
 | 
 | ||||||
| class TicketSerializer(serializers.ModelSerializer): |     def to_representation(self, instance): | ||||||
| 
 |         data = super().to_representation(instance) | ||||||
|     class Meta: |         data['ticket'] = data.pop('ticket_number') | ||||||
|         model = Ticket |         return data | ||||||
|         fields = ['number', 'platform', 'note'] |  | ||||||
|  | |||||||
| @ -8,8 +8,6 @@ app_name = 'collector' | |||||||
| 
 | 
 | ||||||
| router = routers.DefaultRouter() | router = routers.DefaultRouter() | ||||||
| router.register(r'archives', views.ArchiveUploadViewSet) | router.register(r'archives', views.ArchiveUploadViewSet) | ||||||
| router.register(r'tickets/create', views.TicketCreateViewSet) |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| urlpatterns = [ | urlpatterns = [ | ||||||
| 
 | 
 | ||||||
| @ -73,6 +71,7 @@ urlpatterns = [ | |||||||
|         name='ajax_delete_ticket' |         name='ajax_delete_ticket' | ||||||
|     ), |     ), | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|     # ▄▀█ █▀█ █ |     # ▄▀█ █▀█ █ | ||||||
|     # █▀█ █▀▀ █ |     # █▀█ █▀▀ █ | ||||||
|     # -- -- -- |     # -- -- -- | ||||||
|  | |||||||
| @ -16,7 +16,7 @@ from .models import Archive, Ticket | |||||||
| from .forms import TicketForm | from .forms import TicketForm | ||||||
| from .utils import PageTitleViewMixin, is_ajax | from .utils import PageTitleViewMixin, is_ajax | ||||||
| 
 | 
 | ||||||
| from .serializers import ArchiveUploadSerializer, TicketSerializer | from .serializers import ArchiveUploadSerializer | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class ArchiveHandlerView(LoginRequiredMixin, SingleObjectMixin, generic.View): | class ArchiveHandlerView(LoginRequiredMixin, SingleObjectMixin, generic.View): | ||||||
| @ -180,12 +180,3 @@ class ArchiveUploadViewSet(mixins.CreateModelMixin, GenericViewSet): | |||||||
| 
 | 
 | ||||||
|     def perform_create(self, serializer): |     def perform_create(self, serializer): | ||||||
|         serializer.save(user=self.request.user) |         serializer.save(user=self.request.user) | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| class TicketCreateViewSet(mixins.CreateModelMixin, GenericViewSet): |  | ||||||
|     queryset = Ticket.objects.order_by('-time_create') |  | ||||||
|     serializer_class = TicketSerializer |  | ||||||
|     # permission_classes = [permissions.IsAuthenticatedOrReadOnly] |  | ||||||
| 
 |  | ||||||
|     def perform_create(self, serializer): |  | ||||||
|         serializer.save(user=self.request.user) |  | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user