Browse Source

Moderní přístup k choices (umožňuje např. vytáhnout seznam všech hodnot)

korekturovatko
Jonas Havelka 3 weeks ago
parent
commit
9df34c22e0
  1. 36
      korektury/models.py
  2. 6
      korektury/templates/korektury/opraf.html
  3. 20
      korektury/views.py

36
korektury/models.py

@ -52,16 +52,13 @@ class KorekturovanePDF(models.Model):
stran = models.IntegerField(u'počet stran', help_text='Počet stran PDF', stran = models.IntegerField(u'počet stran', help_text='Počet stran PDF',
default=0) default=0)
STATUS_PRIDAVANI = 'pridavani'
STATUS_ZANASENI = 'zanaseni' class STATUS(models.TextChoices):
STATUS_ZASTARALE = 'zastarale' PRIDAVANI = 'pridavani', 'Přidávání korektur'
STATUS_CHOICES = ( ZANASENI = 'zanaseni', 'Korektury jsou zanášeny'
(STATUS_PRIDAVANI, u'Přidávání korektur'), ZASTARALE = 'zastarale', 'Stará verze, nekorigovat'
(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)
)
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, 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.', 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') x = models.IntegerField(u'x-ová souřadnice bugu')
y = models.IntegerField(u'y-ová souřadnice bugu') y = models.IntegerField(u'y-ová souřadnice bugu')
STATUS_K_OPRAVE = 'k_oprave' class STATUS(models.TextChoices):
STATUS_OPRAVENO = 'opraveno' K_OPRAVE = 'k_oprave', 'K opravě'
STATUS_NENI_CHYBA = 'neni_chyba' OPRAVENO = 'opraveno', 'Opraveno'
STATUS_K_ZANESENI = 'k_zaneseni' NENI_CHYBA = 'neni_chyba', 'Není chyba'
STATUS_CHOICES = ( K_ZANESENI = 'k_zaneseni', 'K zanesení do TeXu'
(STATUS_K_OPRAVE, u'K opravě'),
(STATUS_OPRAVENO, u'Opraveno'), status = models.CharField(u'stav opravy',max_length=16, choices=STATUS.choices, blank=False, default = STATUS.K_OPRAVE)
(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)
autor = models.ForeignKey(Organizator, blank = True, autor = models.ForeignKey(Organizator, blank = True,
help_text='Autor opravy', help_text='Autor opravy',

6
korektury/templates/korektury/opraf.html

@ -83,11 +83,11 @@
<form method="post"> <form method="post">
{% csrf_token %} {% csrf_token %}
<input type='hidden' name='action' value='set-state'/> <input type='hidden' name='action' value='set-state'/>
<input type="radio" name="state" value="{{ pdf.STATUS_PRIDAVANI }}" {% if pdf.status == pdf.STATUS_PRIDAVANI %} checked {% endif %}>Přidávání korektur <input type="radio" name="state" value="{{ pdf.STATUS.PRIDAVANI }}" {% if pdf.status == pdf.STATUS.PRIDAVANI %} checked {% endif %}>Přidávání korektur
<br> <br>
<input type="radio" name="state" value="{{ pdf.STATUS_ZANASENI }}" {% if pdf.status == pdf.STATUS_ZANASENI %} checked {% endif %}>Zanášení korektur <input type="radio" name="state" value="{{ pdf.STATUS.ZANASENI }}" {% if pdf.status == pdf.STATUS.ZANASENI %} checked {% endif %}>Zanášení korektur
<br> <br>
<input type="radio" name="state" value="{{ pdf.STATUS_ZASTARALE }}" {% if pdf.status == pdf.STATUS_ZASTARALE %} checked {% endif %}>Zastaralé, nekorigovat <input type="radio" name="state" value="{{ pdf.STATUS.ZASTARALE }}" {% if pdf.status == pdf.STATUS.ZASTARALE %} checked {% endif %}>Zastaralé, nekorigovat
<br> <br>
<input type='submit' value='Změnit stav PDF'/> <input type='submit' value='Změnit stav PDF'/>
</form> </form>

20
korektury/views.py

@ -10,10 +10,10 @@ from .models import Oprava,Komentar,KorekturovanePDF, Organizator
class KorekturyListView(generic.ListView): class KorekturyListView(generic.ListView):
model = KorekturovanePDF model = KorekturovanePDF
queryset = KorekturovanePDF.objects.annotate( queryset = KorekturovanePDF.objects.annotate(
k_oprave_cnt=Count('oprava',distinct=True,filter=Q(oprava__status=Oprava.STATUS_K_OPRAVE)), 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)), 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)), 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_zaneseni_cnt=Count('oprava',distinct=True,filter=Q(oprava__status=Oprava.STATUS.K_ZANESENI)),
) )
template_name = 'korektury/seznam.html' template_name = 'korektury/seznam.html'
@ -97,22 +97,22 @@ class KorekturyView(generic.TemplateView):
elif (action == 'undone'): elif (action == 'undone'):
id = int(q.get('id')) id = int(q.get('id'))
op = Oprava.objects.get(id=id) op = Oprava.objects.get(id=id)
op.status = op.STATUS_K_OPRAVE op.status = op.STATUS.K_OPRAVE
op.save() op.save()
elif (action == 'done'): elif (action == 'done'):
id = int(q.get('id')) id = int(q.get('id'))
op = Oprava.objects.get(id=id) op = Oprava.objects.get(id=id)
op.status = op.STATUS_OPRAVENO op.status = op.STATUS.OPRAVENO
op.save() op.save()
elif (action == 'ready'): elif (action == 'ready'):
id = int(q.get('id')) id = int(q.get('id'))
op = Oprava.objects.get(id=id) op = Oprava.objects.get(id=id)
op.status = op.STATUS_K_ZANESENI op.status = op.STATUS.K_ZANESENI
op.save() op.save()
elif (action == 'wontfix'): elif (action == 'wontfix'):
id = int(q.get('id')) id = int(q.get('id'))
op = Oprava.objects.get(id=id) op = Oprava.objects.get(id=id)
op.status = op.STATUS_NENI_CHYBA op.status = op.STATUS.NENI_CHYBA
op.save() op.save()
elif (action == 'comment'): elif (action == 'comment'):
id = int(q.get('id')) id = int(q.get('id'))
@ -133,7 +133,9 @@ class KorekturyView(generic.TemplateView):
kom = Komentar.objects.get(id=id) kom = Komentar.objects.get(id=id)
kom.delete() kom.delete()
elif (action == 'set-state'): 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() self.pdf.save()
context = self.get_context_data() context = self.get_context_data()
context['scroll'] = scroll context['scroll'] = scroll

Loading…
Cancel
Save