openwebwork / webwork2

Course management front end for WeBWorK
http://webwork.maa.org/wiki/Main_Page
Other
146 stars 165 forks source link

nonzero scores for unattempted problems in the Grades page #2627

Open Alex-Jordan opened 1 week ago

Alex-Jordan commented 1 week ago

In a set, suppose a user never attempted some problem, but has 100% for it. Maybe because that score was manually awarded. Maybe from some achievement item (although perhaps achievement items that change a score also set the problem's "attempted" flag?)

Then you get something like this in Grades:

Screenshot 2024-11-20 at 7 54 31 PM

This is a set where I manually awarded myself 100% on all exercises. Not using the problem grader, just using the old school Set Details page for my user and entering 1 for all the status values. Later I actually did Submit the first two exercises.

So you can see I have 15/15, but the display for my unattempted problems is confusing.

Is this how this should be?

somiaj commented 1 week ago

Seems the grade table wasn't designed with achievements or grade overrides in mind. Probably best to just show the 100% status even when a problem hasn't been attempted. Here is the line in the grade_set method that is doing it.

push(@$problem_scores,             $problemRecord->attempted ? 100 * wwRound(2, $status) : ' . ');

I agree that this might be confusing to students who have used an achievement. Maybe this should be changed to:

push(@$problem_scores, $status || $problemRecord->attempted ? 100 * wwRound(2, $status) : ' . ');

I already have a PR to correctly show green highlighting with reduced scoring enabled to help improve this page, I could add this to that (though I do know you are also working on the grade_set method with your PR).