Browse Source

Odevzdávátko: omezení na letošní problémy

middleware_test
MaM Web user 3 years ago
parent
commit
224a5e5d23
  1. 1
      seminar/admin.py
  2. 7
      seminar/views/odevzdavatko.py

1
seminar/admin.py

@ -60,6 +60,7 @@ class CisloAdmin(admin.ModelAdmin):
for cislo in queryset: for cislo in queryset:
cn = m.CisloNode.objects.get(cislo=cislo) cn = m.CisloNode.objects.get(cislo=cislo)
for ch in tl.all_children(cn): for ch in tl.all_children(cn):
print(ch)
if isinstance(ch, m.TemaVCisleNode): if isinstance(ch, m.TemaVCisleNode):
if ch.tema.stav not in (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): if ch.tema.stav not in (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY):
ch.tema.stav = m.Problem.STAV_ZADANY ch.tema.stav = m.Problem.STAV_ZADANY

7
seminar/views/odevzdavatko.py

@ -5,6 +5,7 @@ from django.views.generic.detail import SingleObjectMixin
from django.shortcuts import redirect, get_object_or_404 from django.shortcuts import redirect, get_object_or_404
from django.urls import reverse from django.urls import reverse
from django.db import transaction from django.db import transaction
from django.db.models import Q
from dataclasses import dataclass from dataclasses import dataclass
import datetime import datetime
@ -71,6 +72,11 @@ class TabulkaOdevzdanychReseniView(ListView):
# Filtrujeme! # Filtrujeme!
aktualni_rocnik = m.Nastaveni.get_solo().aktualni_rocnik # .get_solo() vrátí tu jedinou instanci aktualni_rocnik = m.Nastaveni.get_solo().aktualni_rocnik # .get_solo() vrátí tu jedinou instanci
# Chceme jen letošní problémy
# FIXME: Neexistuje metoda, jak dostat starší problémy…
self.problemy = self.problemy.filter(Q(Tema___rocnik=aktualni_rocnik) | Q(Uloha___cislo_zadani__rocnik = aktualni_rocnik) | Q(Clanek___cislo__rocnik = aktualni_rocnik) | Q(Konfera___soustredeni__rocnik = aktualni_rocnik))
self.chteni_resitele = resitele # Zapamatování pro get_context_data self.chteni_resitele = resitele # Zapamatování pro get_context_data
if resitele == FiltrForm.RESITELE_RELEVANTNI: if resitele == FiltrForm.RESITELE_RELEVANTNI:
# TODO: Zkontrolovat, že resi_v_rocniku vrací QuerySet (jinak asi bude žrát spoustu zdrojů zbytečně) # TODO: Zkontrolovat, že resi_v_rocniku vrací QuerySet (jinak asi bude žrát spoustu zdrojů zbytečně)
@ -80,7 +86,6 @@ class TabulkaOdevzdanychReseniView(ListView):
if problemy == FiltrForm.PROBLEMY_MOJE: if problemy == FiltrForm.PROBLEMY_MOJE:
org = m.Organizator.objects.get(osoba__user=self.request.user) org = m.Organizator.objects.get(osoba__user=self.request.user)
from django.db.models import Q
self.problemy = self.problemy.filter(Q(autor=org)|Q(garant=org)|Q(opravovatele=org), stav=m.Problem.STAV_ZADANY) self.problemy = self.problemy.filter(Q(autor=org)|Q(garant=org)|Q(opravovatele=org), stav=m.Problem.STAV_ZADANY)
elif problemy == FiltrForm.PROBLEMY_LETOSNI: elif problemy == FiltrForm.PROBLEMY_LETOSNI:
self.problemy = self.problemy.filter(stav=m.Problem.STAV_ZADANY) self.problemy = self.problemy.filter(stav=m.Problem.STAV_ZADANY)

Loading…
Cancel
Save