version 1.803, 2024/12/10 17:04:38
|
version 1.805, 2024/12/13 05:04:49
|
Line 1441 sub do_passback {
|
Line 1441 sub do_passback {
|
} |
} |
if ($no_passback) { |
if ($no_passback) { |
&Apache::lonnet::log($udom,$uname,$uhome,$no_passback." score: $score; total: $total; possible: $possible"); |
&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 = { |
my $ltigrade = { |
'ltinum' => $ltinum, |
$key => { |
'lti' => $lti_in_use, |
'ltinum' => $ltinum, |
'crsdef' => $crsdef, |
'lti' => $lti_in_use, |
'cid' => $cdom.'_'.$cnum, |
'crsdef' => $crsdef, |
'uname' => $uname, |
'cid' => $cdom.'_'.$cnum, |
'udom' => $udom, |
'uname' => $uname, |
'uhome' => $uhome, |
'udom' => $udom, |
'pbid' => $id, |
'uhome' => $uhome, |
'pburl' => $url, |
'pbid' => $id, |
'pbtype' => $pb{'type'}, |
'pburl' => $url, |
'pbscope' => $pbscope, |
'pbtype' => $pb{'type'}, |
'pbmap' => $pbmap, |
'pbscope' => $pbscope, |
'pbsymb' => $pbsymb, |
'pbmap' => $pbmap, |
'format' => $scoretype, |
'pbsymb' => $pbsymb, |
'scope' => $scope, |
'format' => $scoretype, |
'clientip' => $pb{'clientip'}, |
'scope' => $scope, |
'linkprot' => $linkprotector.':'.$linkuri, |
'clientip' => $pb{'clientip'}, |
'total' => $total, |
'linkprot' => $linkprotector.':'.$linkuri, |
'possible' => $possible, |
'total' => $total, |
'score' => $score, |
'possible' => $possible, |
|
'score' => $score, |
|
}, |
}; |
}; |
&Apache::lonnet::put('linkprot_passback_pending',$ltigrade,$cdom,$cnum); |
&Apache::lonnet::put('linkprot_passback_pending',$ltigrade,$cdom,$cnum); |
} |
} |
Line 12591 sub assign_clicker_grades {
|
Line 12595 sub assign_clicker_grades {
|
if ($res_error) { |
if ($res_error) { |
return &navmap_errormsg(); |
return &navmap_errormsg(); |
} |
} |
|
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
my %needpb = &passbacks_for_symb($cdom,$cnum,$symb); |
|
my (%skip_passback,%pbsave); |
# FIXME: This should probably look for the first handgradeable part |
# FIXME: This should probably look for the first handgradeable part |
my $part=$$partlist[0]; |
my $part=$$partlist[0]; |
# Start screen output |
# Start screen output |
Line 12700 sub assign_clicker_grades {
|
Line 12708 sub assign_clicker_grades {
|
$result.="<br /><span class=\"LC_error\">Failed to save student $username:$domain. Message when trying to save was ($returncode)</span>"; |
$result.="<br /><span class=\"LC_error\">Failed to save student $username:$domain. Message when trying to save was ($returncode)</span>"; |
} else { |
} else { |
$storecount++; |
$storecount++; |
#FIXME Do passback for $user if required |
if (keys(%needpb)) { |
|
my (%weights,%awardeds,%excuseds); |
|
my $usec = &Apache::lonnet::getsection($domain,$username,$env{'request.course.id'}); |
|
$weights{$symb}{$part} = &Apache::lonnet::EXT("resource.$part.weight",$symb,$domain,$username,$usec); |
|
$awardeds{$symb}{$part} = $ave; |
|
$excuseds{$symb}{$part} = ''; |
|
&process_passbacks('clickergrade',[$symb],$cdom,$cnum,$domain,$username,$usec,\%weights, |
|
\%awardeds,\%excuseds,\%needpb,\%skip_passback,\%pbsave); |
|
} |
} |
} |
} |
} |
} |
} |