Set default values for survey creation

This commit is contained in:
Marcus Kammer 2025-02-21 08:37:23 +01:00
parent 6cedcdea7c
commit 034055c2ea
Signed by: marcuskammer
GPG key ID: C374817BE285268F
2 changed files with 12 additions and 7 deletions

View file

@ -2,7 +2,7 @@
(defsystem "dev.metalisp.survey"
:description "Create questionnaires and analyze the results."
:version "0.5.36"
:version "0.5.37"
:author "Marcus Kammer <marcus.kammer@mailbox.org>"
:source-control (:git "https://code.metalisp.dev/marcuskammer/dev.metalisp.survey.git")
:licence "MIT"

View file

@ -18,12 +18,14 @@
(defmethod initialize-instance :after ((survey survey) &key)
(with-slots (uid data-dir properties) survey
(when (not (integerp uid))
(setf uid (handler-case (parse-integer uid) (error () nil))))
(setf data-dir (uiop:merge-pathnames*
(format nil "~a/" uid)
(ml-survey/fileops:ensure-surveys-dir)))
(setf properties (first (rest (assoc uid (ml-survey/fileops:surveys-db)))))))
(or (if (integerp uid)
uid
(setf uid (parse-integer uid)))
(setf uid (ml-survey/app:generate-uuid)))
(or data-dir
(setf data-dir
(uiop:merge-pathnames* (format nil "~a/" uid)
(ml-survey/fileops:ensure-surveys-dir))))))
(defgeneric survey-id-p (survey)
(:documentation "Check if the survey ID is present in the surveys database."))
@ -67,6 +69,9 @@ MAKE-FN: Function which is applied to the questionnaire data structure. Can be u
(read in))))
files)))
(defmethod survey-to-plist ((survey survey))
(object-to-plist survey))
(defun build-questionnaire-link (survey-id resource)
(format nil "/questionnaire/~a~a" survey-uid resource))