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

raeburn raeburn at source.lon-capa.org
Sat Aug 16 18:34:08 EDT 2025


raeburn		Sat Aug 16 22:34:08 2025 EDT

  Modified files:              
    /loncom/homework	grades.pm 
  Log:
  - Escape each matching collaborator (uname:udom) before setting form element
    value to : separated partID and collaborators. Unescape each collaborator
    to extract uname and udom before calling &saveHandGrade().
  
  
Index: loncom/homework/grades.pm
diff -u loncom/homework/grades.pm:1.814 loncom/homework/grades.pm:1.815
--- loncom/homework/grades.pm:1.814	Sat Aug 16 11:25:19 2025
+++ loncom/homework/grades.pm	Sat Aug 16 22:34:08 2025
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Grading handler
 #
-# $Id: grades.pm,v 1.814 2025/08/16 11:25:19 raeburn Exp $
+# $Id: grades.pm,v 1.815 2025/08/16 22:34:08 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -3875,8 +3875,8 @@
 	    $result.='</ol><br />'."\n";
 	    my ($part)=split(/\./,$part);
 	    $result.='<input type="hidden" name="collaborator'.$counter.
-		'" value="'.$part.':'.(join ':', at good_collaborators).'" />'.
-		"\n";
+                     '" value="'.$part.':'.(join ':',map { &escape($_); } @good_collaborators).'" />'.
+                     "\n";
 	}
 	if (scalar(@bad_collaborators) > 0) {
 	    $result.='<div class="LC_warning">';
@@ -4288,9 +4288,11 @@
 		my @collabstrs=&Apache::loncommon::get_env_multiple("form.collaborator$ctr");
 		foreach my $collabstr (@collabstrs) {
 		    my ($part, at collaborators) = split(/:/,$collabstr);
+                    @collaborators = map { &unescape($_); } @collaborators;
 		    foreach my $collaborator (@collaborators) {
+                        my ($collabuname,$collabudom) = split(/:/,$collaborator);
 			my ($errorflag,$pts,$wgt,$numchg,$numupdate) = 
-			    &saveHandGrade($request,$symb,$collaborator,$udom,$ctr,
+			    &saveHandGrade($request,$symb,$collabuname,$collabudom,$ctr,
 					   $env{'form.unamedom'.$ctr},$part,\%queueable);
 			if ($errorflag eq 'not_allowed') {
 			    $request->print("<span class=\"LC_error\">".&mt('Not allowed to modify grades for [_1]',"$collaborator:$udom")."</span>");




More information about the LON-CAPA-cvs mailing list