Aktualizace přidávátka úloh a problémů (desetinná čísla a číslo místo dílu)
This commit is contained in:
parent
0a58751155
commit
955dd60235
1 changed files with 7 additions and 7 deletions
|
@ -27,7 +27,7 @@ class HromadnePridaniForm(Form):
|
|||
""" Formulář pro hromadné přidání úložek a problémů """
|
||||
|
||||
tema = CharField(label="Název tématu:")
|
||||
dil = IntegerField(label="Díl:", min_value=1)
|
||||
cislo = IntegerField(label="Číslo:", min_value=1)
|
||||
body = CharField(label="Počty bodů (0 pro problém) oddělené čárkami:")
|
||||
|
||||
def clean_tema(self):
|
||||
|
@ -41,7 +41,7 @@ class HromadnePridaniForm(Form):
|
|||
def clean_body(self):
|
||||
""" Kontrola, že `body` je seznam čísel """
|
||||
try:
|
||||
list(map(int, self.cleaned_data["body"].split(",")))
|
||||
list(map(float, self.cleaned_data["body"].split(",")))
|
||||
except ValueError:
|
||||
raise ValidationError("Špatný formát bodů")
|
||||
return self.cleaned_data['body']
|
||||
|
@ -64,21 +64,21 @@ class HromadnePridaniView(FormView):
|
|||
""" Upravený Pavlův skript na hromadné přidání úložek a problémů. """
|
||||
cd = form.cleaned_data
|
||||
tema = cd["tema"]
|
||||
dil = cd["dil"]
|
||||
body = list(map(int, cd["body"].split(",")))
|
||||
cislo = cd["cislo"]
|
||||
body = list(map(float, cd["body"].split(",")))
|
||||
|
||||
t = Problem.objects.get(nazev__exact=tema, nadproblem=None)
|
||||
with transaction.atomic():
|
||||
pfx = f"{t.nazev}, díl {dil}, "
|
||||
pfx = f"{t.nazev}, "
|
||||
|
||||
for k, b in enumerate(body, 1):
|
||||
u = Uloha.objects.create(
|
||||
nadproblem=t,
|
||||
nazev=pfx + f"{'úloha' if b > 0 else 'problém'} {k}",
|
||||
nazev=pfx + f"{'úloha' if b > 0 else 'problém'} {cislo}.{k}",
|
||||
autor=t.autor,
|
||||
garant=t.garant,
|
||||
max_body=b,
|
||||
cislo_zadani=Cislo.get(t.rocnik.rocnik, dil),
|
||||
cislo_zadani=Cislo.get(t.rocnik.rocnik, cislo),
|
||||
kod=k,
|
||||
stav=Problem.STAV_ZADANY,
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue