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