59 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from django.views import generic
 | |
| from django.db.models import Count,Q
 | |
| 
 | |
| from .models import Oprava, KorekturovanePDF, KorekturaTag
 | |
| 
 | |
| 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)),
 | |
| 		)
 | |
| 	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))
 | |
| 
 | |
| ### Korektury
 | |
| class KorekturyView(generic.DetailView):
 | |
| 	model = KorekturovanePDF
 | |
| 	pk_url_kwarg = "pdf"
 | |
| 	template_name = 'korektury/korekturovatko/html_obal.html'
 | |
| 
 | |
| 	def get_context_data(self, **kwargs):
 | |
| 		context = super().get_context_data(**kwargs)
 | |
| 		context['indexy_stran'] = range(self.object.stran)
 | |
| 		context['tagy'] = KorekturaTag.objects.all()
 | |
| 		return context
 | |
| 
 |