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):
|
def get(self, request, *args, **kwargs):
|
||||||
# Zaříznutí nezadaných problémů
|
# Zaříznutí nezadaných problémů
|
||||||
nadproblem_id = self.kwargs["nadproblem_id"]
|
nadproblem_id = self.kwargs["nadproblem_id"]
|
||||||
nadproblem = get_object_or_404(m.Problem, id=nadproblem_id)
|
self.nadproblem = get_object_or_404(m.Problem, id=nadproblem_id)
|
||||||
if nadproblem.stav != "zadany":
|
if self.nadproblem.stav != "zadany":
|
||||||
raise PermissionDenied()
|
raise PermissionDenied()
|
||||||
|
|
||||||
|
|
||||||
|
@ -433,10 +433,10 @@ class NahrajReseniView(LoginRequiredMixin, CreateView):
|
||||||
return super().get(request, *args, **kwargs)
|
return super().get(request, *args, **kwargs)
|
||||||
|
|
||||||
def get_initial(self):
|
def get_initial(self):
|
||||||
nadproblem_id = self.kwargs["nadproblem_id"]
|
nadproblem_id = self.nadproblem.id
|
||||||
zelvuska marked this conversation as resolved
Outdated
|
|||||||
return {
|
return {
|
||||||
"nadproblem_id": nadproblem_id,
|
"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:
|
else:
|
||||||
data['prilohy'] = f.ReseniSPrilohamiFormSet()
|
data['prilohy'] = f.ReseniSPrilohamiFormSet()
|
||||||
|
|
||||||
data["nadproblem_id"] = self.kwargs["nadproblem_id"]
|
data["nadproblem_id"] = self.nadproblem.id
|
||||||
data["nadproblem"] = get_object_or_404(m.Problem, id=self.kwargs["nadproblem_id"])
|
data["nadproblem"] = get_object_or_404(m.Problem, id=self.nadproblem.id)
|
||||||
return data
|
return data
|
||||||
|
|
||||||
# FIXME prepsat tak, aby form_valid se volalo jen tehdy, kdyz je form i formset validni
|
# 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ě :-)