<%$link_start%><% $grade %><%$link_end%>\ %# -- debug -- %# now = '<% $now %>' %# due = '<% $duetime %>' %# now ge due ? ' <% $now ge $duetime ? 'yes' : 'no' %> %# css_class = '<% $css_class %>' %# facultyLastModified = '<% $work->facultyLastModified %>' %# facultyLastSeen = '<% $work->facultyLastSeen %>' %# studentLastModified = '<% $work->studentLastModified %>' %# studentLastSeen = '<% $work->studentLastSeen %>' %# ====================================================================== <%args> $work $is_link => '' <%init> my ($grade, $css_class, $link_start, $link_end); if ($is_link){ $link_start = ''; $link_end = ''; } my $is_faculty = $page->role->ge_faculty; my $duetime = $work->assignment->due || '2999-01-01'; $duetime .= ' 23:59:59' unless $duetime =~ m/:/; # end of day if no time my $now = epoch2sqldatetime(time()); if (not $work->submitted){ if ($work->grade){ $grade = $work->grade; $css_class = $is_faculty ? 'grade-green' : 'grade-red'; } elsif ($now ge $duetime){ $grade = 'late'; $css_class = $is_faculty ? 'grade-green' : 'grade-red'; } else { $grade = '…'; # ...   ⋅ • … $css_class = 'grade-black'; } } else { if (not $work->grade){ $grade = 'ungraded'; $css_class = $is_faculty ? 'grade-red' : 'grade-green'; } else { $grade = $work->grade; if ($work->facultyLastModified gt $work->studentLastSeen){ $css_class = $is_faculty ? 'grade-darkgreen' : 'grade-darkred'; } elsif ($work->studentLastModified gt $work->facultyLastSeen){ $css_class = $is_faculty ? 'grade-darkred' : 'grade-darkgreen'; } else { $css_class = 'grade-black'; } } } %# <%doc> $Id: grade.mhtml 22680 2008-08-26 20:38:45Z mahoney $ grade is '' if not submitted and now < due 'overdue' if not submitted and now > due 'ungraded' if submitted and not graded work->grade if submitted and graded color is student is viewing bright green ungraded : student has submitted; faculty hasn't graded dark green student modified; faculty hasn't seen dark red faculty modified; student hasn't seen bright red overdue : due > today and not submitted black none of above faculty is viewing bright green overdue : due > today and not submitted dark green faculty modified date > student seen date dark red student modified date > faculty seen date bright red ungraded : student has submitted; faculty hasn't graded black none of above Note that a "\" at the end of a line supresses the newline in HTML::Mason.