[LON-CAPA-cvs] cvs: loncom /interface loncoursedata.pm

raeburn raeburn at source.lon-capa.org
Mon Aug 11 17:52:25 EDT 2025


raeburn		Mon Aug 11 21:52:25 2025 EDT

  Modified files:              
    /loncom/interface	loncoursedata.pm 
  Log:
  - Bug 6623. Partial credit fraction for submission during grace period after
    due date but before overdue date available in performance table for use
    when generating Assessment Chart.  
  
  
Index: loncom/interface/loncoursedata.pm
diff -u loncom/interface/loncoursedata.pm:1.210 loncom/interface/loncoursedata.pm:1.211
--- loncom/interface/loncoursedata.pm:1.210	Sat Jun 28 14:34:46 2025
+++ loncom/interface/loncoursedata.pm	Mon Aug 11 21:52:25 2025
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: loncoursedata.pm,v 1.210 2025/06/28 14:34:46 raeburn Exp $
+# $Id: loncoursedata.pm,v 1.211 2025/08/11 21:52:25 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -220,12 +220,12 @@
                       type => 'SMALLINT UNSIGNED' },
                     { name => 'awarded',
                       type => 'REAL' },
-                    { name => 'latefrac',
-                      type => 'REAL' },
                     { name => 'award',
                       type => 'TINYTEXT' },
                     { name => 'awarddetail',
                       type => 'TINYTEXT' },
+                    { name => 'latefrac',
+                      type => 'REAL' },
                     { name => 'timestamp',
                       type => 'INT UNSIGNED'},
                     ],
@@ -259,8 +259,6 @@
                       type => 'REAL' },
                     { name => 'previous',
                       type => 'SMALLINT UNSIGNED' },
-                    { name => 'latefrac',
-                      type => 'REAL' },
 #                    { name => 'regrader',
 #                      type => 'TINYTEXT' },
 #                    { name => 'afterduedate',
@@ -1256,6 +1254,7 @@
             my $awarddetail = $param_hash->{'resource.'.$part.'.awarddetail'};
             my $timestamp = $param_hash->{'timestamp'};
 	    my $tries   = $param_hash->{'resource.'.$part.'.tries'};
+            my $latefrac = $param_hash->{'resource.'.$part.'.latefrac'};
 	    if (&symb_is_for_task($current_symb)) {
 		$tries   = $param_hash->{'resource.'.$part.'.version'};
 	    }
@@ -1265,10 +1264,11 @@
             $awarded     = '' if (! defined($awarded));
             $award       = '' if (! defined($award));
             $awarddetail = '' if (! defined($awarddetail));
+            $latefrac    = '' if (! defined($latefrac));
             my $sql_performance = 
                 "('".join("','",$symb_id,$student_id,$part_id,$part,
                                 $solved,$tries,$awarded,$award,
-                                $awarddetail,$timestamp)."'),\n";
+                                $awarddetail,$latefrac,$timestamp)."'),\n";
             if ($max_perf) {
                 my $length = length($sql_performance);
                 if ($length > $max_perf) {
@@ -1632,7 +1632,7 @@
     my $dbh = &Apache::lonmysql::get_dbh();
     my $request = "SELECT ".
         "d.symb,a.part,a.solved,a.tries,a.awarded,a.award,a.awarddetail,".
-            "a.timestamp ";
+            "a.latefrac,a.timestamp ";
     if (defined($student)) {
         $request .= "FROM $student_table AS b ".
             "LEFT JOIN $performance_table AS a ON b.student_id=a.student_id ".
@@ -1661,7 +1661,7 @@
     }
     foreach my $row (@{$sth->fetchall_arrayref}) {
         $rows_retrieved++;
-        my ($symb,$part,$solved,$tries,$awarded,$award,$awarddetail,$time) = 
+        my ($symb,$part,$solved,$tries,$awarded,$award,$awarddetail,$latefrac,$time) = 
             (@$row);
         my $base = 'resource.'.$part;
         $studentdata->{$symb}->{$base.'.solved'}  = $solved;
@@ -1669,6 +1669,7 @@
         $studentdata->{$symb}->{$base.'.awarded'} = $awarded;
         $studentdata->{$symb}->{$base.'.award'}   = $award;
         $studentdata->{$symb}->{$base.'.awarddetail'} = $awarddetail;
+        $studentdata->{$symb}->{$base.'.latefrac'} = $latefrac;
         $studentdata->{$symb}->{'timestamp'} = $time if (defined($time) && $time ne '');
     }
     ## Get misc parameters




More information about the LON-CAPA-cvs mailing list