Refactor questionnaire

This commit is contained in:
Marcus Kammer 2023-09-18 22:17:42 +02:00
parent 2adc20a7ad
commit c482b17095
Signed by: marcuskammer
GPG key ID: C374817BE285268F

View file

@ -207,14 +207,15 @@ Example 4:
(:ask \"Which social media platforms do you use regularly?\" (:ask \"Which social media platforms do you use regularly?\"
:group \"age\" :group \"age\"
:choices (:multiple \"Facebook\" \"Twitter\" \"Instagram\" :text \"Others\")))" :choices (:multiple \"Facebook\" \"Twitter\" \"Instagram\" :text \"Others\")))"
(let ((class-string (spacing :property "p" :side "y" :size 5)))
`(spinneret:with-html `(spinneret:with-html
(:form :action ,action (:form :action ,action
:method "post" :method "post"
:class (spacing :property "p" :side "y" :size 5) :class ,class-string
,@(loop for q in body ,@(loop for q in body
collect (multiple-value-bind (ask group choices) for (ask group choices) = (multiple-value-list (extract-question-components q))
(extract-question-components q) do (unless (questionp q)
(let ((splitted-choices (split-plist-by-keyword choices))) (error "Invalid question format: ~a" q))
`(question ,ask ,group ,@splitted-choices)))) collect `(question ,ask ,group ,@(split-plist-by-keyword choices)))
(btn-primary (:type "submit") (btn-primary (:type "submit")
(find-l10n "submit" spinneret:*html-lang* l10n))))) (find-l10n "submit" spinneret:*html-lang* l10n))))))