Moodle

Essay question and manual grading

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Critical Critical
  • Resolution: Duplicate
  • Affects Version/s: 1.6
  • Fix Version/s: None
  • Component/s: Quiz
  • Labels:
    None
  • Environment:
    Linux
  • Database:
    MySQL
  • Affected Branches:
    MOODLE_16_STABLE

Description

I would like to report what I think is a bug but I could be mistaken.

If I go to manually grade an essay question and I think the student should get 0 for it. I leave a comment and click on the save button.

If I then go back to the question list, the number of ungraded questions has not changed.

If I however give the response a grade of 1 all is good and the number of ungraded questions reduces by one.

I would have thought that a grade of 0 would be accepted and this would mark the question as graded.

Issue Links

Activity

Hide
Martin Dougiamas added a comment -

From non non (nbhansen at midway.uchicago.edu) Saturday, 10 June 2006, 08:14 PM:

Maybe there needs to be is a no grade by default (as opposed to 0 grade option), or to determine whether a question has been graded both the grade field and the comment field should be checked. The reason I say this is that as of now a grade of 0 does not necessarily mean that the teacher has graded a question. If a teacher has 50 questions to grade, and they only get through 20 in a sitting, that means 30 remain ungraded even though they have a score of 0 now. If you were to change it so that any questions saved by the teacher were considered graded, then teachers would have to grade all questions in sitting.

From non non (nbhansen at midway.uchicago.edu) Saturday, 10 June 2006, 08:18 PM:

The no grade option is available in the assignment module, so perhaps that code could be used in quiz as well.

From (daan at westnet.com.au) Sunday, 11 June 2006, 08:28 AM:

Thanks for the informative reply.

When you say sitting I guess that means you are using the Grade All feature. If so, I can see your point. You would have to grade every single question in one sitting or else they will be marked as 0.

The only other thing I could think of was to have a question mark ? in the grade box and the marker could then set the grade to 0 or 1 ( or whatever the max grade is ) and if you don't happen to grade all questions, that would be fine because the rest would have a ? as the grade. The code would just check for grades with ? and leave as ungraded.

From non non (nbhansen at midway.uchicago.edu) Monday, 12 June 2006, 02:28 AM:

I bet the database just stores 0 by default. It probably is a numerical field, and therefore couldn't store a question mark, but it probably could just be null by default when a question hadn't been graded rather than 0 by default and that way there could be a distinction between a zero grade and no grade. But an ungraded question could be displayed to the teacher as ? or anything else.

From (daan at westnet.com.au) Tuesday, 13 June 2006, 01:21 PM:

What I was thinking was that the database must have the questions as being ungraded or graded.

When you go and manually grade a question, or all of them at once, the code could do something like...

Foreach question

if ungraded print ? in grade field // eg Grade: ? / 1

else print grade // eg 1/1

Then do this when submitting the form.

Foreach question

if grade field ? then leave as ungraded

else store grade and mark question as graded.

Dave

From (eburling at class.com) Saturday, 1 July 2006, 01:37 AM:

This is easily fixed....My fix actually sets the feedback to teacher will grade essay instead of incorrect. But now after you leave a 0, it will remember that the quiz has been graded, and 0 will be the grade instead of the ungraded.

Go into mod/quiz/locallib.php and find the function... print_question_grading_details()

here you can change how esssays are graded.

echo '<div class=correctness>';

if ($grade->raw >= $grade->max) { print_string('correct', 'quiz'); } else if ($grade->raw > 0) { print_string('partiallycorrect', 'quiz'); } else if ($question->qtype==12&&$state->options->graded!=1)

{ printTeacher will grade essay.; }

else

{ print_string('incorrect', 'quiz'); }

echo '</div>';





If you dont' want the teacher will grade essay then use this code instead....



echo '<div class=correctness>';

if ($grade->raw >= $grade->max) { print_string('correct', 'quiz'); } } else if ($grade->raw > 0) { print_string('partiallycorrect', 'quiz'); } else if ($question->qtype==12&&$state->options->graded!=1)/

{ //this means that teacher hasn't graded yet print_string('incorrect', 'quiz'); } else { //this is what is printed when teacher has graded print_string('incorrect', 'quiz'); }

echo '</div>';

Show
Martin Dougiamas added a comment - From non non (nbhansen at midway.uchicago.edu) Saturday, 10 June 2006, 08:14 PM: Maybe there needs to be is a no grade by default (as opposed to 0 grade option), or to determine whether a question has been graded both the grade field and the comment field should be checked. The reason I say this is that as of now a grade of 0 does not necessarily mean that the teacher has graded a question. If a teacher has 50 questions to grade, and they only get through 20 in a sitting, that means 30 remain ungraded even though they have a score of 0 now. If you were to change it so that any questions saved by the teacher were considered graded, then teachers would have to grade all questions in sitting. From non non (nbhansen at midway.uchicago.edu) Saturday, 10 June 2006, 08:18 PM: The no grade option is available in the assignment module, so perhaps that code could be used in quiz as well. From (daan at westnet.com.au) Sunday, 11 June 2006, 08:28 AM: Thanks for the informative reply. When you say sitting I guess that means you are using the Grade All feature. If so, I can see your point. You would have to grade every single question in one sitting or else they will be marked as 0. The only other thing I could think of was to have a question mark ? in the grade box and the marker could then set the grade to 0 or 1 ( or whatever the max grade is ) and if you don't happen to grade all questions, that would be fine because the rest would have a ? as the grade. The code would just check for grades with ? and leave as ungraded. From non non (nbhansen at midway.uchicago.edu) Monday, 12 June 2006, 02:28 AM: I bet the database just stores 0 by default. It probably is a numerical field, and therefore couldn't store a question mark, but it probably could just be null by default when a question hadn't been graded rather than 0 by default and that way there could be a distinction between a zero grade and no grade. But an ungraded question could be displayed to the teacher as ? or anything else. From (daan at westnet.com.au) Tuesday, 13 June 2006, 01:21 PM: What I was thinking was that the database must have the questions as being ungraded or graded. When you go and manually grade a question, or all of them at once, the code could do something like... Foreach question if ungraded print ? in grade field // eg Grade: ? / 1 else print grade // eg 1/1 Then do this when submitting the form. Foreach question if grade field ? then leave as ungraded else store grade and mark question as graded. Dave From (eburling at class.com) Saturday, 1 July 2006, 01:37 AM: This is easily fixed....My fix actually sets the feedback to teacher will grade essay instead of incorrect. But now after you leave a 0, it will remember that the quiz has been graded, and 0 will be the grade instead of the ungraded. Go into mod/quiz/locallib.php and find the function... print_question_grading_details() here you can change how esssays are graded. echo '<div class=correctness>'; if ($grade->raw >= $grade->max) { print_string('correct', 'quiz'); } else if ($grade->raw > 0) { print_string('partiallycorrect', 'quiz'); } else if ($question->qtype==12&&$state->options->graded!=1) { printTeacher will grade essay.; } else { print_string('incorrect', 'quiz'); } echo '</div>'; If you dont' want the teacher will grade essay then use this code instead.... echo '<div class=correctness>'; if ($grade->raw >= $grade->max) { print_string('correct', 'quiz'); } } else if ($grade->raw > 0) { print_string('partiallycorrect', 'quiz'); } else if ($question->qtype==12&&$state->options->graded!=1)/ { //this means that teacher hasn't graded yet print_string('incorrect', 'quiz'); } else { //this is what is printed when teacher has graded print_string('incorrect', 'quiz'); } echo '</div>';
Hide
N Hansen added a comment -

Tim, I'm not adding anything to this bug, I'm just testing to see if I still will get an email about this bug being changed now that all the creator information has been stripped out. I'm really upset about this because I've spent so much time filing bug reports that to lose all the creator info has been like having my work tossed out because I can't even follow up anymore. Let's hope that Martin fixes this problem.

Show
N Hansen added a comment - Tim, I'm not adding anything to this bug, I'm just testing to see if I still will get an email about this bug being changed now that all the creator information has been stripped out. I'm really upset about this because I've spent so much time filing bug reports that to lose all the creator info has been like having my work tossed out because I can't even follow up anymore. Let's hope that Martin fixes this problem.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved: