mamweb/korektury/views.py

60 lines
2 KiB
Python
Raw Normal View History

2015-12-01 23:24:21 +01:00
from django.views import generic
2019-05-19 21:08:17 +02:00
from django.db.models import Count,Q
2015-12-01 23:24:21 +01:00
2025-02-19 16:24:55 +01:00
from .models import Oprava, KorekturovanePDF, KorekturaTag
2015-12-01 23:24:21 +01:00
class KorekturyListView(generic.ListView):
2019-05-11 01:15:05 +02:00
model = KorekturovanePDF
2019-05-19 21:08:17 +02:00
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)),
2019-05-19 21:08:17 +02:00
)
2019-05-11 01:15:05 +02:00
template_name = 'korektury/seznam.html'
class KorekturyAktualniListView(KorekturyListView):
def get_queryset(self, *args, **kwargs):
queryset=super().get_queryset()
queryset=queryset.exclude(status="zastarale")
return queryset
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['selected'] = 'aktualni'
return context
class KorekturyZastaraleListView(KorekturyListView):
def get_queryset(self, *args, **kwargs):
queryset=super().get_queryset()
queryset=queryset.filter(status="zastarale").order_by("-cas")
return queryset
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['selected'] = 'zastarale'
return context
class KorekturySeskupeneListView(KorekturyAktualniListView):
template_name = 'korektury/seskupeny_seznam.html'
# {% regroup %} potřebuje dostat správně setříděné názvy, aby nedělal duplikáty
def get_queryset(self, *args, **kwargs):
qs = super().get_queryset(**kwargs)
return reversed(sorted(qs, key=lambda it: it.cislo_a_tema))
2015-12-01 23:24:21 +01:00
### Korektury
class KorekturyView(generic.DetailView):
model = KorekturovanePDF
pk_url_kwarg = "pdf"
2024-12-12 12:33:33 +01:00
template_name = 'korektury/korekturovatko/htmlstrana.html'
2019-05-11 01:15:05 +02:00
def get_context_data(self, **kwargs):
2022-03-07 21:31:15 +01:00
context = super().get_context_data(**kwargs)
context['img_indexes'] = range(self.object.stran)
2025-02-11 18:54:15 +01:00
context['tagy'] = KorekturaTag.objects.all()
2019-05-11 01:15:05 +02:00
return context