Show questionnaire results as table

This commit is contained in:
Marcus Kammer 2024-06-22 12:25:54 +02:00
parent 6f20d3e4da
commit b05f597569
2 changed files with 15 additions and 4 deletions

View file

@ -20,14 +20,14 @@ Returns a list of integers."
(defun sus-calc-score-per-row (results) (defun sus-calc-score-per-row (results)
(check-type results list) (check-type results list)
(* (apply #'+ (sus-calc-score results)) 2.5)) (reverse (cons (* (apply #'+ (sus-calc-score results)) 2.5) (reverse results))))
(defun sus-calc (files) (defun sus-calc (files)
(check-type files list) (check-type files list)
(loop for f in files (loop for f in files
for resp = (load-response f) for resp = (load-response f)
collect collect
(sus-calc-score-per-row (extract-numbers resp)))) (sus-calc-score-per-row (extract-numbers resp))))
(defun survey-uri-p (uri) (defun survey-uri-p (uri)
(let ((parts (split-uri uri))) (let ((parts (split-uri uri)))

View file

@ -11,5 +11,16 @@
(ml-survey:survey-html survey) (ml-survey:survey-html survey)
(when results (when results
(:h2 "Questionnaire Results") (:h2 "Questionnaire Results")
(:ul (loop for result in results do (let ((count-answers (length (car results))))
(:li result))))))) (:table :class "table table-hover"
(:thead
(:tr
(loop for i from 1 to count-answers do
(if (= i count-answers)
(:th :scope "col" "SUS Score")
(:th :scope "col" (format nil "Q ~a" i)))))
(:tbody
(loop for result in results do
(:tr
(loop for answer in result do
(:td answer))))))))))))