diff options
author | Thanos Apollo <[email protected]> | 2023-12-25 03:07:28 +0200 |
---|---|---|
committer | Thanos Apollo <[email protected]> | 2023-12-25 03:07:28 +0200 |
commit | 59b4f5a25e95904c60cbf08969e1a2bc823120bd (patch) | |
tree | 0cda5ee9a446f98459147479edc83b3ac8ddf4b0 | |
parent | 9c8c864ac7f4f6eb8c1ca0a22e85bb9eb099ad08 (diff) |
gnosis-add-note-mcq: Add 'extra' argument
-'extra' argument refers to extra information that will be displayed
after the question's correct answer is displayed. Refers to extra
information to clarify why an answer is the correct one.
-Inserted into 'extras' table as string.
- Removed unneeded let statements
-rw-r--r-- | gnosis.el | 13 |
1 files changed, 7 insertions, 6 deletions
@@ -119,13 +119,15 @@ the returns the list of inputs in reverse order." (gnosis--delete 'decks `(= name ,deck)) (message "Deleted deck %s" deck)) -(cl-defun gnosis-add-note-mcq (&key deck question choices correct-answer tags) +(cl-defun gnosis-add-note-mcq (&key deck question choices correct-answer extra tags) "Create a NOTE with a list of multiple CHOICES. MCQ type consists of a main `QUESTION' that is displayed to the user. The user will be prompted to select the correct answer from a list of `CHOICES'. The `CORRECT-ANSWER' should be the index of the correct choice in the `CHOICES' list. Each note must correspond to one `DECK'. + +EXTRA are extra information displayed after an answer is given. TAGS are used to organize questions." (interactive (list :deck (gnosis--get-deck-id) @@ -133,17 +135,16 @@ TAGS are used to organize questions." :choices (gnosis--ask-input "Choices") ;; NOTE: string-to-number transforms non-number strings to 0 :correct-answer (string-to-number (read-string "Which is the correct answer (number)? ")) + :extra (read-string "Extra: ") :tags (gnosis--ask-input "Tags"))) (cond ((or (not (numberp correct-answer)) (equal correct-answer 0)) (error "Correct answer value must be the index number of the correct answer")) ((null tags) (setq tags 'untagged))) (gnosis--insert-into 'notes `([nil "mcq" ,question ,choices ,correct-answer ,tags ,deck])) - ;; Get last inserted note-id - (let ((note-id (caar (last (gnosis--select 'id 'notes)))) - (date (gnosis-algorithm-date))) - (gnosis--insert-into 'review `([,note-id ,gnosis-algorithm-ef ,gnosis-algorithm-ff ,gnosis-algorithm-interval])) - (gnosis--insert-into 'review-log `([,note-id ,date ,date 0 0 0])))) + (gnosis--insert-into 'review `([nil ,gnosis-algorithm-ef ,gnosis-algorithm-ff ,gnosis-algorithm-interval])) + (gnosis--insert-into 'review-log `([nil ,(gnosis-algorithm-date) ,(gnosis-algorithm-date) 0 0 0])) + (gnosis--insert-into 'extras `([nil ,extra nil]))) (defun gnosis-add-note (type) "Create note as TYPE." |