Mehr aus Gewohnheit als mit Absicht habe ich zu der Syntax erstes_so[dann][in][klammern] gegriffen, wie sie auch PHP/Moodle benutzt. Wobei einfach_mit.punkten.getrennt ja eigentlich besser zu Python passen würde. Es wäre leicht, das umzustellen. Wie seht ihr das?
Die Funktion validate_form prüft, dass alle hide_if- und disabled_if-Referenzen auf ein valides Element zeigen. (Inklusive, dass IsChecked und IsNotChecked nur auf Checkboxes zeigen.) Dabei ist eine Referenz immer relativ zum Container, in dem sie verwendet wird, zu verstehen. Die Tests illustrieren das schon ganz gut, aber um noch ein FormModel-Beispiel zu geben:
class MySectModel(FormModel):
# Referenzen "nach oben" sind auch möglich.
input_1 = text_input("Abc", hide_if=[is_checked("..[chk]")])
class MyMainModel(FormModel):
chk = checkbox("Input 1 verstecken", disable_if=[does_not_equal("sect[input_1]", "")])
sect = section(MySectModel)
Das Moodle-Plugin wird dann aus den relativen Referenzen absolute machen müssen. Das habe ich noch nicht angegangen.
Ich habe auch form_elements, form_sections und form im FormModel zu qpy_form zusammengefasst. qpy_, um Konflikte mit Form-Elementen zu vermeiden. Generell sollten wir zu diesem Zweck den Namespace von FormModel recht clean halten.
Mehr aus Gewohnheit als mit Absicht habe ich zu der Syntax
erstes_so[dann][in][klammern]
gegriffen, wie sie auch PHP/Moodle benutzt. Wobeieinfach_mit.punkten.getrennt
ja eigentlich besser zu Python passen würde. Es wäre leicht, das umzustellen. Wie seht ihr das?Die Funktion
validate_form
prüft, dass allehide_if
- unddisabled_if
-Referenzen auf ein valides Element zeigen. (Inklusive, dass IsChecked und IsNotChecked nur auf Checkboxes zeigen.) Dabei ist eine Referenz immer relativ zum Container, in dem sie verwendet wird, zu verstehen. Die Tests illustrieren das schon ganz gut, aber um noch ein FormModel-Beispiel zu geben:Das Moodle-Plugin wird dann aus den relativen Referenzen absolute machen müssen. Das habe ich noch nicht angegangen.
Ich habe auch
form_elements
,form_sections
undform
imFormModel
zuqpy_form
zusammengefasst.qpy_
, um Konflikte mit Form-Elementen zu vermeiden. Generell sollten wir zu diesem Zweck den Namespace vonFormModel
recht clean halten.Enthält jetzt auch den einzeiligen Fix für #32.
Closes #29 Closes #32