Upgrade odevzdavatka #30
1 changed files with 6 additions and 6 deletions
|
@ -415,8 +415,8 @@ class NahrajReseniView(LoginRequiredMixin, CreateView):
|
|||
def get(self, request, *args, **kwargs):
|
||||
# Zaříznutí nezadaných problémů
|
||||
nadproblem_id = self.kwargs["nadproblem_id"]
|
||||
nadproblem = get_object_or_404(m.Problem, id=nadproblem_id)
|
||||
if nadproblem.stav != "zadany":
|
||||
self.nadproblem = get_object_or_404(m.Problem, id=nadproblem_id)
|
||||
if self.nadproblem.stav != "zadany":
|
||||
raise PermissionDenied()
|
||||
|
||||
|
||||
|
@ -433,10 +433,10 @@ class NahrajReseniView(LoginRequiredMixin, CreateView):
|
|||
return super().get(request, *args, **kwargs)
|
||||
|
||||
def get_initial(self):
|
||||
nadproblem_id = self.kwargs["nadproblem_id"]
|
||||
nadproblem_id = self.nadproblem.id
|
||||
zelvuska marked this conversation as resolved
Outdated
|
||||
return {
|
||||
"nadproblem_id": nadproblem_id,
|
||||
"problem": [] if m.Problem.objects.filter(stav=m.Problem.STAV_ZADANY, nadproblem__id=nadproblem_id) else nadproblem_id
|
||||
"problem": [] if self.nadproblem.podproblem.filter(stav=m.Problem.STAV_ZADANY).exists() else nadproblem_id
|
||||
zelvuska marked this conversation as resolved
Outdated
ledoian
commented
Uh, tohle dělá co? Ať už to dělá cokoliv, tak to z toho není zřejmé. Zejména není samozřejmé, kdy je Po chvíli čtení: když to má podproblémy, tak nic nenabízíme, jinak nabídneme tu věc přímo. Buď bych za ten QuerySet aspoň přidal
Uh, tohle dělá co? Ať už to dělá cokoliv, tak to z toho není zřejmé. Zejména není samozřejmé, kdy je `QuerySet` falsey.
Po chvíli čtení: když to má podproblémy, tak nic nenabízíme, jinak nabídneme tu věc přímo.
Buď bych za ten QuerySet aspoň přidal `.exists()` ([Dokumentace](https://docs.djangoproject.com/en/3.2/ref/models/querysets/#exists)), nebo úplně vyčlenil:
```python3
...
ma_podproblemy = QuerySet….exists()
...
return {
...
"problem": [] if ma_podproblemy else nadproblem_id,
...
}
```
|
||||
|
||||
}
|
||||
|
||||
|
@ -447,8 +447,8 @@ class NahrajReseniView(LoginRequiredMixin, CreateView):
|
|||
else:
|
||||
data['prilohy'] = f.ReseniSPrilohamiFormSet()
|
||||
|
||||
data["nadproblem_id"] = self.kwargs["nadproblem_id"]
|
||||
data["nadproblem"] = get_object_or_404(m.Problem, id=self.kwargs["nadproblem_id"])
|
||||
data["nadproblem_id"] = self.nadproblem.id
|
||||
data["nadproblem"] = get_object_or_404(m.Problem, id=self.nadproblem.id)
|
||||
return data
|
||||
|
||||
# FIXME prepsat tak, aby form_valid se volalo jen tehdy, kdyz je form i formset validni
|
||||
|
|
Loading…
Reference in a new issue
Nechceme ten nadproblém rovnou uložit jako Problém do
self
? Na první čtení jsem tady měl pocit, že když mi někdo předhodí blbost do URL, že někde něco musí spadnout…Užitečnost uložení přímo Problemu je i v tom, že pak podproblémy můžeš určit jako
nadproblem.podproblemy.count() > 0
o kus níž (v rychlosti nevidím, jestli related managers umí i.exists()
)Disclaimer: kód haluzím, nechtělo se mi to hledat přesně :-)