[LON-CAPA-cvs] cvs: loncom(version_2_10_X) /interface lonnavmaps.pm

raeburn raeburn@source.lon-capa.org
Sun, 15 Aug 2010 00:03:26 -0000


raeburn		Sun Aug 15 00:03:26 2010 EDT

  Modified files:              (Branch: version_2_10_X)
    /loncom/interface	lonnavmaps.pm 
  Log:
  - Backport 1.448, 1.449, 1.450.
  
  
Index: loncom/interface/lonnavmaps.pm
diff -u loncom/interface/lonnavmaps.pm:1.444.2.1 loncom/interface/lonnavmaps.pm:1.444.2.2
--- loncom/interface/lonnavmaps.pm:1.444.2.1	Tue May 18 20:30:08 2010
+++ loncom/interface/lonnavmaps.pm	Sun Aug 15 00:03:25 2010
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Navigate Maps Handler
 #
-# $Id: lonnavmaps.pm,v 1.444.2.1 2010/05/18 20:30:08 raeburn Exp $
+# $Id: lonnavmaps.pm,v 1.444.2.2 2010/08/15 00:03:25 raeburn Exp $
 
 #
 # Copyright Michigan State University Board of Trustees
@@ -527,6 +527,7 @@
       $resObj->INCORRECT              => '',
       $resObj->OPEN                   => '',
       $resObj->NOTHING_SET            => '',
+      $resObj->CREDIT_ATTEMPTED       => '',
       $resObj->ATTEMPTED              => '',
       $resObj->ANSWER_SUBMITTED       => '',
       $resObj->PARTIALLY_CORRECT      => '#006600'
@@ -706,6 +707,11 @@
             return &mt("Answer submitted, not yet graded");
         }
     }
+    if ($status == $res->CREDIT_ATTEMPTED) {
+        if ($res->is_anonsurvey($part) || $res->is_survey($part)) {
+            return &mt("Credit for survey submission");
+        }
+    }
     if ($status == $res->TRIES_LEFT) {
         my $tries = $res->tries($part);
         my $maxtries = $res->maxtries($part);
@@ -1442,11 +1448,11 @@
 	my ($link,$text);
         if ($condition) {
 	    $link='navmaps?condition=0&filter=&'.$queryString.
-		'&here='.&escape($here);
+		'&here='.&escape($here);
 	    $text='Close all folders';
         } else {
 	    $link='navmaps?condition=1&filter=&'.$queryString.
-		'&here='.&escape($here);
+		'&here='.&escape($here);
 	    $text='Open all folders';
         }
         if ($env{'form.register'}) {
@@ -1765,7 +1771,7 @@
 	    if (defined($anchor)) { $anchor='#'.$anchor; }
 	    my $srcHasQuestion = $src =~ /\?/;
 	    $args->{"resourceLink"} = $src.
-		($srcHasQuestion?'&':'?') .
+		($srcHasQuestion?'&':'?') .
 		'symb=' . &escape($symb).$anchor;
 	}
         # Now, we've decided what parts to show. Loop through them and
@@ -1827,12 +1833,11 @@
     # it's quite likely this might fix other browsers, too, and 
     # certainly won't hurt anything.
     if ($displayedJumpMarker) {
-        $result .= "
-<script>
+        $result .= &Apache::lonhtmlcommon::scripttag("
 if (location.href.indexOf('#curloc')==-1) {
     setTimeout(\"location += '#curloc';\", 0)
 }
-</script>";
+");
     }
 
     $result.=&Apache::loncommon::end_data_table();
@@ -2354,7 +2359,7 @@
 Based on the symb of the resource, get a resource object for that
 resource. This is one of the proper ways to get a resource object.
 
-=item * B<getMapByMapPc>(map_pc):
+=item * B<getByMapPc>(map_pc):
 
 Based on the map_pc of the resource, get a resource object for
 the given map. This is one of the proper ways to get a resource object.
@@ -3890,6 +3895,12 @@
 
 Returns a string with the type of the map in it.
 
+=item *B<map_hierarchy>:
+
+Returns a string with a comma-separated ordered list of map_pc IDs
+for the hierarchy of maps containing a map, with the top level
+map first, then descending to deeper levels, with the enclosing map last.
+
 =back
 
 =cut
@@ -3920,6 +3931,12 @@
     my $pc = $self->map_pc();
     return $self->navHash("map_type_$pc", 0);
 }
+sub map_hierarchy {
+    my $self = shift;
+    my $pc = $self->map_pc();
+    return $self->navHash("map_hierarchy_$pc", 0);
+}
+
 
 #####
 # Property queries
@@ -4675,6 +4692,10 @@
 
 Attempted, and not yet graded.
 
+=item * B<CREDIT_ATTEMPTED>:
+
+Attempted, and credit received for attempt (survey and anonymous survey only).
+
 =back
 
 =cut
@@ -4686,6 +4707,7 @@
 sub CORRECT_BY_OVERRIDE   { return 14; }
 sub EXCUSED               { return 15; }
 sub ATTEMPTED             { return 16; }
+sub CREDIT_ATTEMPTED      { return 17; }
 
 sub getCompletionStatus {
     my $self = shift;
@@ -4704,6 +4726,13 @@
     if ($status eq 'incorrect_by_override') {return $self->INCORRECT_BY_OVERRIDE; }
     if ($status eq 'excused') {return $self->EXCUSED; }
     if ($status eq 'ungraded_attempted') {return $self->ATTEMPTED; }
+    if ($status eq 'credit_attempted') {
+        if ($self->is_anonsurvey($part) || $self->is_survey($part)) {
+            return $self->CREDIT_ATTEMPTED;
+        } else {
+            return $self->ATTEMPTED;
+        }
+    }
     return $self->NOT_ATTEMPTED;
 }
 
@@ -4793,6 +4822,10 @@
 
 The problem has been attempted.
 
+=item * B<CREDIT_ATTEMPTED>:
+
+The problem has been attempted, and credit given for the attempt (survey and anonymous survey only).
+
 =item * B<ANSWER_SUBMITTED>:
 
 An answer has been submitted, but the student should not see it.
@@ -4866,6 +4899,10 @@
         return ATTEMPTED;
     }
 
+    if ($completionStatus == CREDIT_ATTEMPTED) {
+        return CREDIT_ATTEMPTED;
+    }
+
     # If it's EXCUSED, then return that no matter what
     if ($completionStatus == EXCUSED) {
         return EXCUSED; 
@@ -5058,6 +5095,7 @@
       INCORRECT()             => INCORRECT,
       OPEN()                  => OPEN,
       ATTEMPTED()             => ATTEMPTED,
+      CREDIT_ATTEMPTED()      => CORRECT,
       ANSWER_SUBMITTED()      => ATTEMPTED
      );
 
@@ -5131,8 +5169,9 @@
         # "If any of the parts are open, or have tries left (implies open),
         # and it is not "attempted" (manually graded problem), it is
         # not "complete"
-	if ($self->getCompletionStatus($part) == ATTEMPTED() ||
-	    $status == ANSWER_SUBMITTED() ) {
+        if ($self->getCompletionStatus($part) == ATTEMPTED() ||
+            $self->getCompletionStatus($part) == CREDIT_ATTEMPTED() ||
+            $status == ANSWER_SUBMITTED() ) {
 	    # did this part already, as well as we can
 	    next;
 	}