diff --git a/src/handlers/survey.lisp b/src/handlers/survey.lisp index d77f01e..dd1ec47 100644 --- a/src/handlers/survey.lisp +++ b/src/handlers/survey.lisp @@ -20,14 +20,14 @@ Returns a list of integers." (defun sus-calc-score-per-row (results) (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) (check-type files list) (loop for f in files for resp = (load-response f) collect - (sus-calc-score-per-row (extract-numbers resp)))) + (sus-calc-score-per-row (extract-numbers resp)))) (defun survey-uri-p (uri) (let ((parts (split-uri uri))) diff --git a/src/views/survey.lisp b/src/views/survey.lisp index 94be2fb..449b507 100644 --- a/src/views/survey.lisp +++ b/src/views/survey.lisp @@ -11,5 +11,16 @@ (ml-survey:survey-html survey) (when results (:h2 "Questionnaire Results") - (:ul (loop for result in results do - (:li result))))))) + (let ((count-answers (length (car results)))) + (: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))))))))))))