[LON-CAPA-cvs] cvs: loncom /homework inputtags.pm
raeburn
raeburn at source.lon-capa.org
Mon Aug 25 00:21:52 EDT 2025
raeburn Mon Aug 25 04:21:52 2025 EDT
Modified files:
/loncom/homework inputtags.pm
Log:
- Bug 6623.
- Status shown to student includes: "Submitted late -- score reduced"
if lateness penalty applies.
- If a student made earlier submission during grace period, but duedate
changed to date/time in the future, previously stored latefrac, endgrace
and pastdue no longer apply after a changed award for a new submission.
Index: loncom/homework/inputtags.pm
diff -u loncom/homework/inputtags.pm:1.371 loncom/homework/inputtags.pm:1.372
--- loncom/homework/inputtags.pm:1.371 Thu Aug 21 16:21:41 2025
+++ loncom/homework/inputtags.pm Mon Aug 25 04:21:52 2025
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
-# input definitons
+# input definitions
#
-# $Id: inputtags.pm,v 1.371 2025/08/21 16:21:41 raeburn Exp $
+# $Id: inputtags.pm,v 1.372 2025/08/25 04:21:52 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1072,7 +1072,7 @@
}
sub decideoutput {
- my ($award,$awarded,$awardmsg,$solved,$previous,$target,$nocorrect,$tdclass)=@_;
+ my ($award,$awarded,$awardmsg,$solved,$previous,$target,$nocorrect,$tdclass,$latefrac)=@_;
my $message='';
my $button=0;
@@ -1129,6 +1129,12 @@
}
$added_computer_text=1;
if ($awarded > 0) {
+ if ((($latefrac ne '') && ($latefrac >= 0) && ($latefrac < 1)) &&
+ ($target eq 'web')) {
+ $message.= '<br /><span style="font-style: italic">'.
+ &mt('Submitted late -- score reduced').
+ '</span>';
+ }
my ($symb) = &Apache::lonnet::whichuser();
if (($symb ne '')
&&
@@ -1629,7 +1635,7 @@
if ($Apache::lonhomework::results{"resource.$id.duedate"} ne '') {
my $now = time();
my $pastdue = $now - $Apache::lonhomework::results{"resource.$id.duedate"};
- if ($pastdue) {
+ if ($pastdue > 0) {
my $overduedate = &Apache::lonhomework::overdue_date($id);
if ($overduedate) {
$Apache::lonhomework::results{"resource.$id.endgrace"} = $overduedate;
@@ -1641,6 +1647,18 @@
}
}
}
+ } else {
+ foreach my $item ('latefrac','endgrace','pastdue') {
+ if ($Apache::lonhomework::history{"resource.$id.$item"} ne '') {
+ $Apache::lonhomework::results{"resource.$id.$item"} = '';
+ }
+ }
+ }
+ } else {
+ foreach my $item ('latefrac','endgrace','pastdue') {
+ if ($Apache::lonhomework::history{"resource.$id.$item"} ne '') {
+ $Apache::lonhomework::results{"resource.$id.$item"} = '';
+ }
}
}
}
@@ -1732,12 +1750,14 @@
my $solved = $Apache::lonhomework::history{"$prefix.solved"};
my $previous = $Apache::lonhomework::history{"$prefix.previous"};
my $awardmsg = $Apache::lonhomework::history{"$prefix.awardmsg"};
+ my $latefrac = $Apache::lonhomework::history{"$prefix.latefrac"};
&Apache::lonxml::debug("Found Award |$award|$solved|$awardmsg");
if ( $award ne '' || $solved ne '' || $status eq 'SHOW_ANSWER') {
&Apache::lonxml::debug('Getting message');
($showbutton,my $css_class,$message,$previousmsg) =
&decideoutput($award,$awarded,$awardmsg,$solved,$previous,
- $target,(($status eq 'CAN_ANSWER') || $nocorrect),$tdclass);
+ $target,(($status eq 'CAN_ANSWER') || $nocorrect),
+ $tdclass,$latefrac);
if ($target eq 'tex') {
$message='\vskip 2 mm '.$message.' ';
} else {
@@ -1812,9 +1832,20 @@
}
}
- if ($Apache::lonhomework::history{"$prefix.afterduedate"}) {
+ if ($Apache::lonhomework::history{"$prefix.aftergrace"}) {
+ #last submission was after end of grace period
+ $latemessage=&mt(' The last submission was after the end of the grace period for late submissions ');
+ if ($target eq 'web') {
+ if ($usediv) {
+ $latemessage = '<span class="'."LC_prob_status $tdclass LC_answer_late".'">'.
+ $latemessage.'</span>';
+ } else {
+ $latemessage='<td class="'.$tdclass.' LC_answer_late">'.$latemessage.'</td>';
+ }
+ }
+ } elsif ($Apache::lonhomework::history{"$prefix.afterduedate"}) {
#last submissions was after due date
- $latemessage=&mt(' The last submission was after the Due Date ');;
+ $latemessage=&mt(' The last submission was after the Due Date ');
if ($target eq 'web') {
if ($usediv) {
$latemessage = '<span class="'."LC_prob_status $tdclass LC_answer_late".'">'.
More information about the LON-CAPA-cvs
mailing list