[LON-CAPA-cvs] cvs: loncom /homework grades.pm lonhomework.pm

raeburn raeburn at source.lon-capa.org
Fri Dec 13 00:04:49 EST 2024


raeburn		Fri Dec 13 05:04:49 2024 EDT

  Modified files:              
    /loncom/homework	grades.pm lonhomework.pm 
  Log:
  - Use a unique time-based key when storing a passback item as a hash value in
    linkprot_passback_pending.db in a course's data directory for scores which
    were not successfully sent to launcher CMS.
  
  
Index: loncom/homework/grades.pm
diff -u loncom/homework/grades.pm:1.804 loncom/homework/grades.pm:1.805
--- loncom/homework/grades.pm:1.804	Tue Dec 10 18:38:10 2024
+++ loncom/homework/grades.pm	Fri Dec 13 05:04:49 2024
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Grading handler
 #
-# $Id: grades.pm,v 1.804 2024/12/10 18:38:10 raeburn Exp $
+# $Id: grades.pm,v 1.805 2024/12/13 05:04:49 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1441,27 +1441,31 @@
                                     }
                                     if ($no_passback) {
                                         &Apache::lonnet::log($udom,$uname,$uhome,$no_passback." score: $score; total: $total; possible: $possible");
+                                        my $key = &Time::HiRes::time().':'.$uname.':'.$udom.':'.
+                                                  "$linkuri\0$linkprotector\0$scope"; 
                                         my $ltigrade = {
-                                            'ltinum'   => $ltinum,
-                                            'lti'      => $lti_in_use,
-                                            'crsdef'   => $crsdef,
-                                            'cid'      => $cdom.'_'.$cnum,
-                                            'uname'    => $uname,
-                                            'udom'     => $udom,
-                                            'uhome'    => $uhome,
-                                            'pbid'     => $id,
-                                            'pburl'    => $url,
-                                            'pbtype'   => $pb{'type'},
-                                            'pbscope'  => $pbscope,
-                                            'pbmap'    => $pbmap,
-                                            'pbsymb'   => $pbsymb,
-                                            'format'   => $scoretype,
-                                            'scope'    => $scope,
-                                            'clientip' => $pb{'clientip'},
-                                            'linkprot' => $linkprotector.':'.$linkuri,
-                                            'total'    => $total,
-                                            'possible' => $possible,
-                                            'score'    => $score,
+                                                         $key => {
+                                                                   'ltinum'   => $ltinum,
+                                                                   'lti'      => $lti_in_use,
+                                                                   'crsdef'   => $crsdef,
+                                                                   'cid'      => $cdom.'_'.$cnum,
+                                                                   'uname'    => $uname,
+                                                                   'udom'     => $udom,
+                                                                   'uhome'    => $uhome,
+                                                                   'pbid'     => $id,
+                                                                   'pburl'    => $url,
+                                                                   'pbtype'   => $pb{'type'},
+                                                                   'pbscope'  => $pbscope,
+                                                                   'pbmap'    => $pbmap,
+                                                                   'pbsymb'   => $pbsymb,
+                                                                   'format'   => $scoretype,
+                                                                   'scope'    => $scope,
+                                                                   'clientip' => $pb{'clientip'},
+                                                                   'linkprot' => $linkprotector.':'.$linkuri,
+                                                                   'total'    => $total,
+                                                                   'possible' => $possible,
+                                                                   'score'    => $score,
+                                                                 },
                                         };
                                         &Apache::lonnet::put('linkprot_passback_pending',$ltigrade,$cdom,$cnum);
                                     }
Index: loncom/homework/lonhomework.pm
diff -u loncom/homework/lonhomework.pm:1.388 loncom/homework/lonhomework.pm:1.389
--- loncom/homework/lonhomework.pm:1.388	Tue Dec 10 04:55:03 2024
+++ loncom/homework/lonhomework.pm	Fri Dec 13 05:04:49 2024
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Homework handler
 #
-# $Id: lonhomework.pm,v 1.388 2024/12/10 04:55:03 raeburn Exp $
+# $Id: lonhomework.pm,v 1.389 2024/12/13 05:04:49 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -2112,7 +2112,11 @@
                         $no_passback .= " LTI launcher $linkprotector ($appname) for $linkuri (${cdom}_${cnum})";
                         &Apache::lonnet::logthis($no_passback." for $uname:$udom");
                         &Apache::lonnet::log($udom,$uname,$uhome,"$no_passback score=$score total=$total poss=$possible");
-                        &Apache::lonnet::put('linkprot_passback_pending',$item,$cdom,$cnum);
+                        if ($item->{'linkprot'})
+                            my $pendingkey = &Time::HiRes::time().':'.$uname.':'.$udom.':'.
+                                             "$linkuri\0$linkprotector\0$scope";
+                            &Apache::lonnet::put('linkprot_passback_pending',{$pendingkey => $item},$cdom,$cnum);
+                        }
                     }
                 }
             }




More information about the LON-CAPA-cvs mailing list