Improving the Grading Workflow (3.3)

Re: Improving the Grading Workflow (3.3)

by Jon Fila -
Number of replies: 6

Okay, so the solution to number 3 is here: https://moodle.org/mod/forum/discuss.php?d=333583#p1425371

Going to work on one and two tomorrow.

In reply to Jon Fila

Re: Improving the Grading Workflow (3.3)

by Jon Fila -

I'm still trying to figure out where to make these changes if anyone else is any closer, I'd like to hear from them.

In reply to Jon Fila

Re: Improving the Grading Workflow (3.3)

by Jon Fila -
We ended up paying for a fix to expand the summary by default and remove the +/- symbols. This is what we ended up with:


moodle\mod\assign\renderer.php

Replace the whole public function with the text below:

    public function render_assign_submission_plugin_submission(assign_submission_plugin_submission $submissionplugin) {
        $o = '';
if ($submissionplugin->view == assign_submission_plugin_submission::SUMMARY) {
$o .= $this->output->box_start('boxaligncenter plugincontentsummary summary_' . $classsuffix);
            $o .= $submissionplugin->plugin->view($submissionplugin->submission);
            $o .= $this->output->box_end();

        } else if ($submissionplugin->view == assign_submission_plugin_submission::FULL) {
            $o .= $this->output->box_start('boxaligncenter submissionfull');
            $o .= $submissionplugin->plugin->view($submissionplugin->submission);
            $o .= $this->output->box_end();
        }
        return $o;
    }

In reply to Jon Fila

Re: Improving the Grading Workflow (3.3)

by Jon Fila -

Here's what we've done to drastically cut down on clicks, page loads and time to improve teachers' grading workflow:

1. We have implemented a Grade Everything report by using the Configurable Reports plugin so that then a teacher clicks on it then all assignments, quizzes and forum posts that require grading across all of their courses displays with a link to grade each one. 

2. The default view of the submission is to open the online text submission with the Review Panel collapsed.

3. The online text submission is expanded by default without the need to click +.

4. The Requires Grading Filter is turned on so that when finished grading that item the teacher just has to click the next button to move on.


The only thing I'd still like to do is to modify the page so that the Save Changes confirmation isn't a popup that requires a click but make it just a message that appears at top of the screen. 

In reply to Jon Fila

Re: Improving the Grading Workflow (3.3)

by Emma Richardson -
Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Plugin developers

Sure would be nice if you would share the report!!!

In reply to Emma Richardson

Re: Improving the Grading Workflow (3.3)

by Jon Fila -

Well, when you ask like that, how can I say no? (Your ids for users and modules may vary.) We paid, Ben Haensel to write the update for us.


SELECT 

c.fullname as Course,
u.firstname AS "First",
u.lastname AS "Last",
case when gi.itemmodule = 'hsuforum' then "adv-forum"
else gi.itemmodule end as AssessmentType,
gi.itemname AS "AssessmentName",
Case when cm.module = '25' then convert(FROM_UNIXTIME(asb.timemodified),datetime) 
when cm.module = '14' then convert(FROM_UNIXTIME(qa.timefinish),datetime)
when cm.module = '7' then convert(FROM_UNIXTIME(fp.modified),datetime)

END as LastSubmission,

Case when cm.module = '25' then (case when asb.timemodified > g.timemodified then 'resubmitted' else asb.status end) 
else '' end AS "AssignStatus",

Case when cm.module = '25' then concat('<a target="_blank" href="%%WWWROOT%%/mod/assign/view.php?rownum=0&userid=',asb.userid,'&id=',cm.id,'&action=grader','">Grade</a>') 
when cm.module = '14' then concat('<a target="_blank" href="%%WWWROOT%%/mod/quiz/report.php?id=',cm.id,'&mode=gradingstudents&usageid=',qa.uniqueid,'&slots=',(Select group_concat(qua.slot SEPARATOR '%2C') from prefix_question_attempts as qua
WHERE qua.questionusageid = qa.uniqueid
AND qua.behaviour = 'manualgraded'),'&grade=needsgrading','">Grade</a>') 
when cm.module = '7' then concat('<a target="_blank" href="%%WWWROOT%%/mod/forum/discuss.php?d=',fp.discussion,'">Grade</a>')

END AS "GradeLink"

FROM prefix_course AS c
JOIN prefix_course_modules AS cm ON c.id = cm.course
JOIN prefix_enrol AS en ON c.id = en.courseid
JOIN prefix_user_enrolments AS ue ON ue.enrolid = en.id
JOIN prefix_grade_items gi ON c.id = gi.courseid
JOIN prefix_grade_grades AS g on gi.id = g.itemid
JOIN prefix_user AS u ON u.id = ue.userid
JOIN prefix_context AS ctx ON c.id = ctx.instanceid
join prefix_modules m on cm.module = m.id
AND m.name = gi.itemmodule
JOIN prefix_role_assignments  AS ra ON ra.contextid = ctx.id
left join prefix_role_assignments  AS rax ON ra.userid = rax.userid
and ra.contextid = rax.contextid
and ra.id > rax.id
left JOIN prefix_assign_submission AS asb ON gi.iteminstance = asb.assignment
and (g.finalgrade is NULL or asb.timemodified > g.timemodified)
and asb.userid = u.id

left JOIN prefix_quiz_attempts AS qa ON gi.iteminstance = qa.quiz
and qa.userid = u.id
and qa.sumgrades is NULL and qa.timefinish > '0'

LEFT JOIN prefix_forum AS f ON c.id = f.course
and cm.instance = f.id
and f.assessed not like '0'

LEFT JOIN prefix_forum_discussions AS fd ON f.id = fd.forum
and cm.instance = fd.forum
and fd.userid = u.id
LEFT JOIN prefix_forum_posts AS fp ON fd.id = fp.discussion
and fp.userid = u.id

WHERE c.id in (SELECT cz.id FROM prefix_course AS cz
JOIN prefix_enrol AS enz ON cz.id = enz.courseid
JOIN prefix_user_enrolments AS uez ON uez.enrolid = enz.id
JOIN prefix_user AS uz ON uz.id = uez.userid
JOIN prefix_context AS ctxz ON cz.id = ctxz.instanceid
JOIN prefix_role_assignments AS raz ON raz.contextid = ctxz.id
WHERE cz.id = c.id
AND raz.roleid = '3'
AND raz.userid = uz.id
AND raz.userid = uez.userid
AND raz.userid = '%%USERID%%')

and rax.id is null
AND g.userid = u.id
AND ra.userid = u.id
AND ra.userid = ue.userid 
AND gi.courseid = cm.course
and gi.iteminstance = cm.instance

and (

(cm.module = '25' and asb.userid = u.id AND u.id <> '%%USERID%%' and asb.status <> 'new' and asb.status <> 'draft' and (g.finalgrade is NULL or asb.timemodified > g.timemodified)) OR

(cm.module = '14' and qa.userid = u.id and qa.sumgrades is NULL and qa.timefinish > '0') OR

(cm.module = '7' and fp.userid = u.id AND u.id <> '%%USERID%%' and cm.instance = fd.forum AND f.assessed not like '0' AND not exists (select r.itemid from prefix_rating AS r where r.itemid = fp.id and r.component = 'mod_forum'))

)

ORDER BY u.id, AssessmentType, LastSubmission

Average of ratings: Useful (2)
In reply to Jon Fila

Re: Improving the Grading Workflow (3.3)

by Ben Haensel -

Thanks for sharing this Jon. For the version we use at my school, we also incorporate Lessons, Advanced Forums, and Journals. It would be possible to also incorporate other mods if others were interested. -Ben