%$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 => ''
%args>
<%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';
}
}
}
%init>
%#
<%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.
%doc>