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

falcon’s picture

Title: How to mark correct answers outside of quiz » How to mark correct answers
turadg’s picture

I 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"

turadg’s picture

Btw, this is related to an earlier ticket: http://drupal.org/node/542060

sivaji_ganesh_jojodae’s picture

Status: Active » Postponed

Please postpone this for now, it may affect the way questions were being rendered in AJAX quiz. We will reopen it after ten days.

falcon’s picture

I note that this issue will be reopened around 17th, I also agree with turadg that theme functions might be the way to go.

turadg’s picture

Status: Postponed » Active

Since 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?

falcon’s picture

Re #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!

mbutcher’s picture

If 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

turadg’s picture

Given 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.

turadg’s picture

I added getNodeView() method on QuizQuestion for the normal node view. Now we just need to use it. ;)

falcon’s picture

Nice 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 :)

falcon’s picture

Status: Active » Closed (fixed)