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

albertel lon-capa-cvs@mail.lon-capa.org
Fri, 06 Feb 2004 22:36:40 -0000


albertel		Fri Feb  6 17:36:40 2004 EDT

  Modified files:              
    /loncom/homework	inputtags.pm structuretags.pm 
  Log:
  - always accept scantron answers
  - check if the grade also changed on the problem before dicarding previous submissions
  
  
  
Index: loncom/homework/inputtags.pm
diff -u loncom/homework/inputtags.pm:1.128 loncom/homework/inputtags.pm:1.129
--- loncom/homework/inputtags.pm:1.128	Thu Jan 29 16:31:07 2004
+++ loncom/homework/inputtags.pm	Fri Feb  6 17:36:40 2004
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # input  definitons
 #
-# $Id: inputtags.pm,v 1.128 2004/01/29 21:31:07 albertel Exp $
+# $Id: inputtags.pm,v 1.129 2004/02/06 22:36:40 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -498,7 +498,8 @@
 sub setgradedata {
   my ($award,$id,$previously_used) = @_;
   # if the student already has it correct, don't modify the status
-  if ($Apache::inputtags::status['-1'] ne 'CAN_ANSWER' &&
+  if (!$Apache::lonhomework::scantronmode &&
+      $Apache::inputtags::status['-1'] ne 'CAN_ANSWER' &&
       $Apache::inputtags::status['-1'] ne 'CANNOT_ANSWER') {
     $Apache::lonhomework::results{"resource.$id.afterduedate"}=$award;
     return '';
@@ -565,21 +566,28 @@
       }
     }
 
-    # check if this was a previous submission if it was delete the
-    # unneeded data and update the previously_used attribute
-    if ( $previously_used eq 'PREVIOUSLY_USED') {
-	if (lc($Apache::lonhomework::problemstatus) ne 'no') {
-	    delete($Apache::lonhomework::results{"resource.$id.tries"});
-	    $Apache::lonhomework::results{"resource.$id.previous"} = '1';
+    # did either of the overall awards chage? If so ignore the 
+    # previous check
+    if (($Apache::lonhomework::results{"resource.$id.awarded"} eq
+	 $Apache::lonhomework::history{"resource.$id.awarded"}) &&
+        ($Apache::lonhomework::results{"resource.$id.solved"} eq
+         $Apache::lonhomework::history{"resource.$id.solved"})) {
+	# check if this was a previous submission if it was delete the
+	# unneeded data and update the previously_used attribute
+	if ( $previously_used eq 'PREVIOUSLY_USED') {
+	    if (lc($Apache::lonhomework::problemstatus) ne 'no') {
+		delete($Apache::lonhomework::results{"resource.$id.tries"});
+		$Apache::lonhomework::results{"resource.$id.previous"} = '1';
+	    }
+	} elsif ( $previously_used eq 'PREVIOUSLY_LAST') {
+	    #delete all data as they student didn't do anything, but save
+	    #the list of collaborators.
+	    &removealldata($id);
+	    #and since they didn't do anything we were never here
+	    return '';
+	} else {
+	    $Apache::lonhomework::results{"resource.$id.previous"} = '0';
 	}
-    } elsif ( $previously_used eq 'PREVIOUSLY_LAST') {
-      #delete all data as they student didn't do anything, but save
-      #the list of collaborators.
-      &removealldata($id);
-      #and since they didn't do anything we were never here
-      return '';
-    } else {
-      $Apache::lonhomework::results{"resource.$id.previous"} = '0';
     }
   } elsif ( $Apache::lonhomework::history{"resource.$id.solved"} =~
 	    /^correct/ ) {
Index: loncom/homework/structuretags.pm
diff -u loncom/homework/structuretags.pm:1.231 loncom/homework/structuretags.pm:1.232
--- loncom/homework/structuretags.pm:1.231	Mon Feb  2 12:28:53 2004
+++ loncom/homework/structuretags.pm	Fri Feb  6 17:36:40 2004
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # definition of tags that give a structure to a document
 #
-# $Id: structuretags.pm,v 1.231 2004/02/02 17:28:53 sakharuk Exp $
+# $Id: structuretags.pm,v 1.232 2004/02/06 22:36:40 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -523,7 +523,7 @@
     if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' ||
 	$target eq 'tex') {
 	if ( $target eq 'grade' && $Apache::inputtags::part eq '0' &&
-	     $status eq 'CAN_ANSWER' ) {
+	     ($status eq 'CAN_ANSWER' || $Apache::lonhomework::scantronmode)) {
 	    # if part is zero, no <part>s existed, so we need to the grading
 	    &Apache::inputtags::grade;
 	} elsif ( ($target eq 'web' || $target eq 'tex') &&
@@ -1015,7 +1015,9 @@
     my $result='';
     if ( $target eq 'meta' ) {
 	$result='';
-    } elsif ( $target eq 'grade' && $status eq 'CAN_ANSWER' && !$hidden) {
+    } elsif ($target eq 'grade' && 
+	     ($status eq 'CAN_ANSWER' || $Apache::lonhomework::scantronmode) &&
+	     !$hidden) {
 	$result=&Apache::inputtags::grade;
     } elsif (($target eq 'web' || $target eq 'tex') && !$hidden ) {
 	my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part,