From 9df34c22e0b8db6f2650bd3844fac467014efdbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 3 Dec 2024 19:01:33 +0100 Subject: [PATCH] =?UTF-8?q?Modern=C3=AD=20p=C5=99=C3=ADstup=20k=20choices?= =?UTF-8?q?=20(umo=C5=BE=C5=88uje=20nap=C5=99.=20vyt=C3=A1hnout=20seznam?= =?UTF-8?q?=20v=C5=A1ech=20hodnot)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- korektury/models.py | 36 +++++++++--------------- korektury/templates/korektury/opraf.html | 6 ++-- korektury/views.py | 20 +++++++------ 3 files changed, 28 insertions(+), 34 deletions(-) diff --git a/korektury/models.py b/korektury/models.py index 9ca40ba1..5df14d6f 100644 --- a/korektury/models.py +++ b/korektury/models.py @@ -52,16 +52,13 @@ class KorekturovanePDF(models.Model): stran = models.IntegerField(u'počet stran', help_text='Počet stran PDF', default=0) - STATUS_PRIDAVANI = 'pridavani' - STATUS_ZANASENI = 'zanaseni' - STATUS_ZASTARALE = 'zastarale' - STATUS_CHOICES = ( - (STATUS_PRIDAVANI, u'Přidávání korektur'), - (STATUS_ZANASENI, u'Korektury jsou zanášeny'), - (STATUS_ZASTARALE, u'Stará verze, nekorigovat'), - ) - status = models.CharField(u'stav PDF',max_length=16, choices=STATUS_CHOICES, blank=False, - default = STATUS_PRIDAVANI) + + class STATUS(models.TextChoices): + PRIDAVANI = 'pridavani', 'Přidávání korektur' + ZANASENI = 'zanaseni', 'Korektury jsou zanášeny' + ZASTARALE = 'zastarale', 'Stará verze, nekorigovat' + + status = models.CharField(u'stav PDF',max_length=16, choices=STATUS.choices, blank=False, default = STATUS.PRIDAVANI) poslat_mail = models.BooleanField('Poslat mail o novém PDF', default=True, help_text='Určuje, zda se má o nově nahraném PDF poslat e-mail do mam-org. Při upravování existujícího souboru už nemá žádný vliv.', @@ -152,18 +149,13 @@ class Oprava(models.Model): x = models.IntegerField(u'x-ová souřadnice bugu') y = models.IntegerField(u'y-ová souřadnice bugu') - STATUS_K_OPRAVE = 'k_oprave' - STATUS_OPRAVENO = 'opraveno' - STATUS_NENI_CHYBA = 'neni_chyba' - STATUS_K_ZANESENI = 'k_zaneseni' - STATUS_CHOICES = ( - (STATUS_K_OPRAVE, u'K opravě'), - (STATUS_OPRAVENO, u'Opraveno'), - (STATUS_NENI_CHYBA, u'Není chyba'), - (STATUS_K_ZANESENI, u'K zanesení do TeXu'), - ) - status = models.CharField(u'stav opravy',max_length=16, choices=STATUS_CHOICES, blank=False, - default = STATUS_K_OPRAVE) + class STATUS(models.TextChoices): + K_OPRAVE = 'k_oprave', 'K opravě' + OPRAVENO = 'opraveno', 'Opraveno' + NENI_CHYBA = 'neni_chyba', 'Není chyba' + K_ZANESENI = 'k_zaneseni', 'K zanesení do TeXu' + + status = models.CharField(u'stav opravy',max_length=16, choices=STATUS.choices, blank=False, default = STATUS.K_OPRAVE) autor = models.ForeignKey(Organizator, blank = True, help_text='Autor opravy', diff --git a/korektury/templates/korektury/opraf.html b/korektury/templates/korektury/opraf.html index 13082bc2..ec550b36 100644 --- a/korektury/templates/korektury/opraf.html +++ b/korektury/templates/korektury/opraf.html @@ -83,11 +83,11 @@
{% csrf_token %} - Přidávání korektur + Přidávání korektur
- Zanášení korektur + Zanášení korektur
- Zastaralé, nekorigovat + Zastaralé, nekorigovat
diff --git a/korektury/views.py b/korektury/views.py index 9ce97ee2..861afac8 100644 --- a/korektury/views.py +++ b/korektury/views.py @@ -10,10 +10,10 @@ from .models import Oprava,Komentar,KorekturovanePDF, Organizator class KorekturyListView(generic.ListView): model = KorekturovanePDF queryset = KorekturovanePDF.objects.annotate( - k_oprave_cnt=Count('oprava',distinct=True,filter=Q(oprava__status=Oprava.STATUS_K_OPRAVE)), - opraveno_cnt=Count('oprava',distinct=True,filter=Q(oprava__status=Oprava.STATUS_OPRAVENO)), - neni_chyba_cnt=Count('oprava',distinct=True,filter=Q(oprava__status=Oprava.STATUS_NENI_CHYBA)), - k_zaneseni_cnt=Count('oprava',distinct=True,filter=Q(oprava__status=Oprava.STATUS_K_ZANESENI)), + k_oprave_cnt=Count('oprava',distinct=True,filter=Q(oprava__status=Oprava.STATUS.K_OPRAVE)), + opraveno_cnt=Count('oprava',distinct=True,filter=Q(oprava__status=Oprava.STATUS.OPRAVENO)), + neni_chyba_cnt=Count('oprava',distinct=True,filter=Q(oprava__status=Oprava.STATUS.NENI_CHYBA)), + k_zaneseni_cnt=Count('oprava',distinct=True,filter=Q(oprava__status=Oprava.STATUS.K_ZANESENI)), ) template_name = 'korektury/seznam.html' @@ -97,22 +97,22 @@ class KorekturyView(generic.TemplateView): elif (action == 'undone'): id = int(q.get('id')) op = Oprava.objects.get(id=id) - op.status = op.STATUS_K_OPRAVE + op.status = op.STATUS.K_OPRAVE op.save() elif (action == 'done'): id = int(q.get('id')) op = Oprava.objects.get(id=id) - op.status = op.STATUS_OPRAVENO + op.status = op.STATUS.OPRAVENO op.save() elif (action == 'ready'): id = int(q.get('id')) op = Oprava.objects.get(id=id) - op.status = op.STATUS_K_ZANESENI + op.status = op.STATUS.K_ZANESENI op.save() elif (action == 'wontfix'): id = int(q.get('id')) op = Oprava.objects.get(id=id) - op.status = op.STATUS_NENI_CHYBA + op.status = op.STATUS.NENI_CHYBA op.save() elif (action == 'comment'): id = int(q.get('id')) @@ -133,7 +133,9 @@ class KorekturyView(generic.TemplateView): kom = Komentar.objects.get(id=id) kom.delete() elif (action == 'set-state'): - self.pdf.status = q.get('state') # FIXME odchytávat blbosti? + status = q.get('state') + assert status in KorekturovanePDF.STATUS.values + self.pdf.status = status self.pdf.save() context = self.get_context_data() context['scroll'] = scroll