From 9aa48638b6fd9f766d5ff1eb36bc741d64b6abbf Mon Sep 17 00:00:00 2001 From: Marcus Kammer Date: Sat, 15 Feb 2025 12:29:29 +0100 Subject: [PATCH] Create the survey package --- dev.metalisp.survey.asd | 9 ++++-- src/{survey.lisp => survey/handler.lisp} | 41 +----------------------- src/survey/package.lisp | 20 ++++++++++++ src/survey/view.lisp | 20 ++++++++++++ 4 files changed, 48 insertions(+), 42 deletions(-) rename src/{survey.lisp => survey/handler.lisp} (61%) create mode 100644 src/survey/package.lisp create mode 100644 src/survey/view.lisp diff --git a/dev.metalisp.survey.asd b/dev.metalisp.survey.asd index 8d2ae7a..dd96276 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.13" + :version "0.5.14" :author "Marcus Kammer " :source-control (:git "https://code.metalisp.dev/marcuskammer/dev.metalisp.survey.git") :licence "MIT" @@ -15,7 +15,12 @@ :components ((:file "package") (:file "survey") (:file "questionnaire"))) - (:file "survey") + (:module "survey/" + :depends-on ("models/") + :serial t + :components ((:file "package") + (:file "view") + (:file "handler"))) (:module "questionnaire/" :depends-on ("models/") :serial t diff --git a/src/survey.lisp b/src/survey/handler.lisp similarity index 61% rename from src/survey.lisp rename to src/survey/handler.lisp index bb6ce43..3fe7f18 100644 --- a/src/survey.lisp +++ b/src/survey/handler.lisp @@ -1,45 +1,6 @@ -;;;; -*- mode: common-lisp; coding: utf-8; -*- - -(defpackage ml-survey/survey - (:use #:cl #:ml-survey/models) - (:import-from #:hunchentoot - #:define-easy-handler) - (:import-from #:ml-sbt/section - #:with-section - #:with-section-col - #:with-section-row - #:with-section-props - #:with-title-bar) - (:import-from #:ml-sbt/navbar - #:with-navbar) - (:import-from #:ml-sbt - #:with-page - #:with-body-header - #:with-body-main) - (:import-from #:ml-qmetrics/assessment - #:assessment-html - #:parse-assessments)) - +;;; -*- mode: lisp; coding: utf-8; -*- (in-package :ml-survey/survey) -(defun view (survey &optional assessments) - "Generates the view to show the survey created." - (check-type survey survey) - (let ((lang "en")) - (with-page (:title "Survey Details") - (with-body-header "fluid" "Survey Details" lang - (with-navbar "fluid" "metalisp.survey" "/" "Home" - "Home" "/" "New Survey" "/new-survey")) - (with-body-main "fluid" - (:div :class "row" - (with-section-props (with-title-bar "Properties") - (:p (format nil "ID: ~a" (survey-id survey))) - (survey-html survey)) - (with-section-col (with-title-bar "Assesments") - (loop for assessment in assessments - when assessments - do (assessment-html assessment (survey-id survey))))))))) - (defstruct questionnaire-response type name diff --git a/src/survey/package.lisp b/src/survey/package.lisp new file mode 100644 index 0000000..a043746 --- /dev/null +++ b/src/survey/package.lisp @@ -0,0 +1,20 @@ +;;; -*- mode: lisp; coding: utf-8; -*- +(defpackage :ml-survey/survey + (:use #:cl #:ml-survey/models) + (:import-from #:hunchentoot + #:define-easy-handler) + (:import-from #:ml-sbt/section + #:with-section + #:with-section-col + #:with-section-row + #:with-section-props + #:with-title-bar) + (:import-from #:ml-sbt/navbar + #:with-navbar) + (:import-from #:ml-sbt + #:with-page + #:with-body-header + #:with-body-main) + (:import-from #:ml-qmetrics/assessment + #:assessment-html + #:parse-assessments)) diff --git a/src/survey/view.lisp b/src/survey/view.lisp new file mode 100644 index 0000000..f4e2608 --- /dev/null +++ b/src/survey/view.lisp @@ -0,0 +1,20 @@ +;;; -*- mode: lisp; coding: utf-8; -*- +(in-package :ml-survey/survey) + +(defun view (survey &optional assessments) + "Generates the view to show the survey created." + (check-type survey survey) + (let ((lang "en")) + (with-page (:title "Survey Details") + (with-body-header "fluid" "Survey Details" lang + (with-navbar "fluid" "metalisp.survey" "/" "Home" + "Home" "/" "New Survey" "/new-survey")) + (with-body-main "fluid" + (:div :class "row" + (with-section-props (with-title-bar "Properties") + (:p (format nil "ID: ~a" (survey-id survey))) + (survey-html survey)) + (with-section-col (with-title-bar "Assesments") + (loop for assessment in assessments + when assessments + do (assessment-html assessment (survey-id survey)))))))))