[LON-CAPA-cvs] cvs: loncom /interface lonnavmaps.pm
raeburn
raeburn at source.lon-capa.org
Sat Jun 28 13:34:00 EDT 2025
raeburn Sat Jun 28 17:34:00 2025 EDT
Modified files:
/loncom/interface lonnavmaps.pm
Log:
- Bug 6623.
Index: loncom/interface/lonnavmaps.pm
diff -u loncom/interface/lonnavmaps.pm:1.576 loncom/interface/lonnavmaps.pm:1.577
--- loncom/interface/lonnavmaps.pm:1.576 Sat Jun 28 14:34:46 2025
+++ loncom/interface/lonnavmaps.pm Sat Jun 28 17:34:00 2025
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
-# $Id: lonnavmaps.pm,v 1.576 2025/06/28 14:34:46 raeburn Exp $
+# $Id: lonnavmaps.pm,v 1.577 2025/06/28 17:34:00 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -425,6 +425,11 @@
Convenience function, so others can use it: Is there only one try remaining for the
part, with more than one try to begin with, not due yet and still can be done?
+=item graceEndsUnder24Hours()
+
+Convenience function, so others can use it: Is the problem past-due with a grace period
+which ends in less than 24 hours, and still can be done?
+
=item advancedUser()
This puts a human-readable name on the env variable.
@@ -759,8 +764,14 @@
}
}
if ($due) {
- return &mt("Due [_1]",&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($due,'end'),$res->symb(),'duedate',$part)) .
- " $triesString";
+ my $now = time;
+ if (($now >= $due) && ($overdue) && ($now < $overdue)) {
+ return &mt("Grace period ends [_1]",&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($overdue,'end'),$res->symb(),'grace',$part)).
+ " $triesString";
+ } else {
+ return &mt("Due [_1]",&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($due,'end'),$res->symb(),'duedate',$part)) .
+ " $triesString";
+ }
} else {
return &Apache::lonhtmlcommon::direct_parm_link(&mt("No due date"),$res->symb(),'duedate',$part)." $triesString";
}
@@ -794,6 +805,19 @@
$res->duedate($part) > time();
}
+sub graceEndsUnder24Hours {
+ my $res = shift;
+ my $part = shift;
+ my $status = $res->status($part);
+ my $now = time();
+
+ return ($status == $res->OPEN() ||
+ $status == $res->TRIES_LEFT()) &&
+ $res->duedate($part) && $res->duedate($part) < $now &&
+ $res->overduedate($part) && $res->overduedate($part) < time()+(24*60*60) &&
+ $res->duedate($part) && $res->duedate($part) < $now+(24*60*60) &&
+ $res->overduedate($part) > $now;
+}
sub advancedUser {
return $env{'request.role.adv'};
@@ -1264,6 +1288,9 @@
if (dueInLessThan24Hours($resource, $part)) {
$color = $hurryUpColor;
$info = ' title="'.&mt('Due in less than 24 hours!').'"';
+ } elsif (graceEndsUnder24Hours($resource, $part)) {
+ $color = $hurryUpColor;
+ $info = ' title="'.&mt('Grace period ends in less than 24 hours!').'"';
} elsif (lastTry($resource, $part)) {
unless (($resource->problemstatus($part) eq 'no') ||
($resource->problemstatus($part) eq 'no_feedback_ever')) {
More information about the LON-CAPA-cvs
mailing list