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() > 0o 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ě :-)