[LON-CAPA-cvs] cvs: loncom(version_1_1_X) /homework inputtags.pm

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


albertel		Fri Feb  6 17:39:56 2004 EDT

  Modified files:              (Branch: version_1_1_X)
    /loncom/homework	inputtags.pm 
  Log:
  - backport 1.129
  
  
Index: loncom/homework/inputtags.pm
diff -u loncom/homework/inputtags.pm:1.124 loncom/homework/inputtags.pm:1.124.2.1
--- loncom/homework/inputtags.pm:1.124	Tue Nov 25 18:04:58 2003
+++ loncom/homework/inputtags.pm	Fri Feb  6 17:39:56 2004
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # input  definitons
 #
-# $Id: inputtags.pm,v 1.124 2003/11/25 23:04:58 www Exp $
+# $Id: inputtags.pm,v 1.124.2.1 2004/02/06 22:39:56 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -500,7 +500,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 '';
@@ -567,21 +568,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/ ) {