2016-02-25 00:34:53 +01:00
|
|
|
from django.shortcuts import get_object_or_404, render
|
2015-12-01 23:24:21 +01:00
|
|
|
from django.views import generic
|
2015-12-29 15:57:55 +01:00
|
|
|
from django.conf import settings
|
2016-08-25 12:08:07 +02:00
|
|
|
from django.http import HttpResponseForbidden
|
2019-05-19 21:08:17 +02:00
|
|
|
from django.db.models import Count,Q
|
2015-12-01 23:24:21 +01:00
|
|
|
|
2024-12-03 19:27:30 +01:00
|
|
|
from .utils import send_email_notification_komentar
|
2025-02-11 18:54:15 +01:00
|
|
|
from .models import Oprava, Komentar, KorekturovanePDF, Organizator, KorekturaTag
|
2015-12-01 23:24:21 +01:00
|
|
|
|
2015-12-05 01:19:49 +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(
|
2024-12-03 19:01:33 +01:00
|
|
|
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'
|
2015-12-05 01:19:49 +01:00
|
|
|
|
2018-09-18 02:07:01 +02:00
|
|
|
class KorekturyAktualniListView(KorekturyListView):
|
2022-11-29 00:40:18 +01:00
|
|
|
def get_queryset(self, *args, **kwargs):
|
|
|
|
queryset=super().get_queryset()
|
|
|
|
queryset=queryset.exclude(status="zastarale")
|
|
|
|
return queryset
|
2018-09-18 02:07:01 +02:00
|
|
|
|
2022-11-29 00:40:18 +01:00
|
|
|
def get_context_data(self, **kwargs):
|
|
|
|
context = super().get_context_data(**kwargs)
|
|
|
|
context['selected'] = 'aktualni'
|
|
|
|
return context
|
2018-09-18 02:07:01 +02:00
|
|
|
|
2021-09-25 15:32:51 +02:00
|
|
|
|
|
|
|
|
2018-09-18 02:07:01 +02:00
|
|
|
class KorekturyZastaraleListView(KorekturyListView):
|
2022-11-29 00:40:18 +01:00
|
|
|
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
|
2018-09-18 02:07:01 +02:00
|
|
|
|
2022-01-31 22:11:19 +01:00
|
|
|
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)
|
2022-03-07 20:49:48 +01:00
|
|
|
return reversed(sorted(qs, key=lambda it: it.cislo_a_tema))
|
2022-01-31 22:11:19 +01:00
|
|
|
|
2015-12-01 23:24:21 +01:00
|
|
|
### Korektury
|
|
|
|
class KorekturyView(generic.TemplateView):
|
2024-12-12 12:33:33 +01:00
|
|
|
template_name = 'korektury/korekturovatko/htmlstrana.html'
|
2019-05-11 01:15:05 +02:00
|
|
|
|
2024-12-03 18:33:26 +01:00
|
|
|
def setup(self, request, *args, **kwargs):
|
|
|
|
super().setup(request, *args, **kwargs)
|
|
|
|
self.pdf_id = self.kwargs["pdf"]
|
|
|
|
self.pdf = get_object_or_404(KorekturovanePDF, id=self.pdf_id)
|
|
|
|
|
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)
|
2024-12-03 18:33:26 +01:00
|
|
|
context['pdf'] = self.pdf
|
|
|
|
context['img_prefix'] = self.pdf.get_prefix()
|
|
|
|
context['img_indexes'] = range(self.pdf.stran)
|
2025-02-11 18:54:15 +01:00
|
|
|
|
|
|
|
context['tagy'] = KorekturaTag.objects.all()
|
2019-05-11 01:15:05 +02:00
|
|
|
return context
|
|
|
|
|