diff --git a/dev.metalisp.survey.asd b/dev.metalisp.survey.asd index 1ec62a3..3e4a761 100644 --- a/dev.metalisp.survey.asd +++ b/dev.metalisp.survey.asd @@ -2,7 +2,7 @@ (defsystem "dev.metalisp.survey" :description "Create questionnaires and analyze the results." - :version "0.5.39" + :version "0.5.40" :author "Marcus Kammer " :source-control (:git "https://code.metalisp.dev/marcuskammer/dev.metalisp.survey.git") :licence "MIT" diff --git a/src/models/survey.lisp b/src/models/survey.lisp index 03115e6..36376e1 100644 --- a/src/models/survey.lisp +++ b/src/models/survey.lisp @@ -47,12 +47,10 @@ (:documentation "Get description property.")) (defmethod survey-uid-p ((survey survey)) - (if (remove-if-not (lambda (s) - (eql (getf s :uid) - (survey-uid survey))) - (ml-survey/fileops:surveys-db)) - t - nil)) + (find (survey-uid survey) + (ml-survey/fileops:surveys-db) + :key (lambda (s) (getf s :uid)) + :test #'eql)) (defmethod survey-data-dir-files ((survey survey)) (uiop:directory-files (survey-data-dir survey))) @@ -102,9 +100,10 @@ Accepts all valid initargs for survey class." (defun filter-surveys-by-uid (survey-uid) (check-type survey-uid integer) - (remove-if-not (lambda (s) - (eql (getf s :uid) survey-uid)) - (ml-survey/fileops:surveys-db))) + (find survey-uid + (ml-survey/fileops:surveys-db) + :key (lambda (s) (getf s :uid)) + :test #'eql)) (defmethod survey-html ((survey survey)) (spinneret:with-html diff --git a/src/survey/handler.lisp b/src/survey/handler.lisp index 6b32a1d..3484cca 100644 --- a/src/survey/handler.lisp +++ b/src/survey/handler.lisp @@ -14,7 +14,7 @@ (define-easy-handler (survey-handler :uri #'survey-uri) () (let* ((survey-uid (parse-integer (ml-survey/app:extract-from (hunchentoot:request-uri*) :survey-id))) - (s (plist-to-survey (first (filter-surveys-by-uid survey-uid)))) + (s (plist-to-survey (filter-surveys-by-uid survey-uid))) (questionnaires (survey-questionnaires s)) (assessments (parse-questionnaires questionnaires))) (view s assessments)))