I think we need to find one good way to mark correct answers throughout the quiz framework. At the moment we have three ways:
- In the report a circle with a green V inside is used.
- The choice module uses a green V with shadow effect to mark correct alternatives.
- A green background color is also used
I would prefer that we use symbols. I'm not happy with the two existing green V symbols, and would prefer that we make a new set of symbols. Something like:
- correct.png
- wrong.png
- correct_but_not_chosen.png
Comments
Comment #1
falcon commentedComment #2
turadg commentedI support this. I've been thinking recently that we need should have theme blocks for each of these so they can be consistent between question types and provide hooks for users to theme them without editing the modules.
While I would prefer the colored backgrounds in my sites, I'm content with the icons to be the default theme.
What do you think of making theme functions for this? If you agree, we can turn this into a "feature request" ticket for "Theming functions for correct answers"
Comment #3
turadg commentedBtw, this is related to an earlier ticket: http://drupal.org/node/542060
Comment #4
sivaji_ganesh_jojodae commentedPlease postpone this for now, it may affect the way questions were being rendered in AJAX quiz. We will reopen it after ten days.
Comment #5
falcon commentedI note that this issue will be reopened around 17th, I also agree with turadg that theme functions might be the way to go.
Comment #6
turadg commentedSince Sivaji's GSoC evaluation is complete, let's pick this up again.
Part of standardizing the answer presentation is to have standard elements in the question form so the quiz_question.module can handle the "view quiz question solutions" permission (#512674: Permission to view answers/solution outside of a quiz). It was implemented in quiz_question.module: quiz_question_question_form() by removed ['tries'] from the form when the user wasn't privileged. A recent change to multichoice's question form broke that for multichoice (it says "Answers hidden" appropriately, but they're actually displayed).
It's understandable since that's not really part of the QuizQuestion contract. Maybe we should have a separate method in the interface, to get presentation view vs. the quiz-taking view. We shouldn't require the question classes to do that logic. For a start, we could add another method to this list: getQuestionForm(), getAdminForm(), getCreationForm(). Let's say, getInfoForm(). We could also rename getQuestionForm() to getAnsweringForm() to clarify its purpose (right now explained in its doc comment).
I'd be happy to do this across the modules. Thoughts?
Comment #7
falcon commentedRe #6:
I suggest keeping the interface the way it is, and instead implement the view function differently. Today the view function in all question types consists of the following single line of code:(If I recall correctly):
return $this->getQuestionForm();
The view function in all the questiontypes should instead return a representation of the question without any input elements. A view of the question. I think perhaps this could have been the original reason for having both view and getQuestionForm defined in the interface.
But this is just a suggestion. The whole tries thing is a bit ugly the way I see it. Wouldn't it be better if we had access to $form and $form_state all the way as in regular forms? (i.e. $form_state would be given as input to the Response constructors instead of tries.) Any initiative that improves this issue is greatly appreciated!
Comment #8
mbutcher commentedIf we could get rid of the 'tries' thing, I think that may significantly improve the flexibility of Quiz for handling more complex question modules. However, 'tries' is basically deeply ingrained in the quiz.module code. It might take some substantial reworking of the quiz taking logic before that can be completely fixed. So there is likely a lot of work involved in fixing it.
Matt
Comment #9
turadg commentedGiven the complexity of getting rid of "tries", I propose we save that for another ticket. Maybe a 4.1 overhaul.
In the meantime, is there any objection to having separate getAnsweringForm() and getInfoForm()? It seems to me orthogonal to this view() change for tries.
Comment #10
turadg commentedI added getNodeView() method on QuizQuestion for the normal node view. Now we just need to use it. ;)
Comment #11
falcon commentedNice improvement! I would lend a hand here, but I have to prioritize adding more features, better user experience and testing. I will save most of my re-factoring energy for the D7 conversion :)
Comment #12
falcon commented