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

raeburn raeburn at source.lon-capa.org
Tue Apr 4 19:15:48 EDT 2023


raeburn		Tue Apr  4 23:15:48 2023 EDT

  Modified files:              
    /loncom/interface	lonnavmaps.pm 
  Log:
  - Bug 4928
    Don't show ellipsis and "Answer submitted" unless a submission has occurred, 
    in case where problemstatus is "No" and this post-due date bu pre-answer date. 
  
  
Index: loncom/interface/lonnavmaps.pm
diff -u loncom/interface/lonnavmaps.pm:1.562 loncom/interface/lonnavmaps.pm:1.563
--- loncom/interface/lonnavmaps.pm:1.562	Tue Oct  4 20:39:59 2022
+++ loncom/interface/lonnavmaps.pm	Tue Apr  4 23:15:48 2023
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Navigate Maps Handler
 #
-# $Id: lonnavmaps.pm,v 1.562 2022/10/04 20:39:59 raeburn Exp $
+# $Id: lonnavmaps.pm,v 1.563 2023/04/04 23:15:48 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -549,6 +549,10 @@
       $resObj->EXCUSED                => '#3333FF',
       $resObj->PAST_DUE_ANSWER_LATER  => '',
       $resObj->PAST_DUE_NO_ANSWER     => '',
+      $resObj->PAST_DUE_ATMPT_ANS     => '',
+      $resObj->PAST_DUE_ATMPT_NOANS   => '',
+      $resObj->PAST_DUE_NO_ATMT_ANS   => '',
+      $resObj->PAST_DUE_NO_ATMT_NOANS => '',
       $resObj->ANSWER_OPEN            => '#006600',
       $resObj->OPEN_LATER             => '',
       $resObj->TRIES_LEFT             => '',
@@ -694,10 +698,10 @@
             return &Apache::lonhtmlcommon::direct_parm_link(&mt("Open, no due date"),$res->symb(),'duedate',$part).$slotinfo;
         }
     }
-    if ($status == $res->PAST_DUE_ANSWER_LATER) {
+    if (($status == $res->PAST_DUE_ANSWER_LATER) || ($status == $res->PAST_DUE_ATMPT_ANS) || ($status == $res->PAST_DUE_NO_ATMT_ANS)) {
         return &mt("Answer open [_1]",&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($answer,'start'),$res->symb(),'answerdate',$part));
     }
-    if ($status == $res->PAST_DUE_NO_ANSWER) {
+    if (($status == $res->PAST_DUE_NO_ANSWER) || ($status == $res->PAST_DUE_ATMPT_NOANS) || ($status == $res->PAST_DUE_NO_ATMT_NOANS)) {
 	if ($res->is_practice()) {
 	    return &mt("Closed [_1]",&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($due,'start'),$res->symb(),'answerdate,duedate',$part));
 	} else {
@@ -5715,7 +5719,6 @@
 
 Open and not yet due.
 
-
 =item * B<PAST_DUE_ANSWER_LATER>:
 
 The due date has passed, but the answer date has not yet arrived.
@@ -5728,6 +5731,26 @@
 
 The answer date is here.
 
+=item * B<NOTHING_SET>:
+
+No dates have been set for this problem at all.
+
+=item * B<PAST_DUE_ATMPT_ANS>:
+
+The due date has passed, feedback is suppressed, the problem was attempted, and the answer date has not yet arrived.
+
+=item * B<PAST_DUE_ATMPT_NOANS>:
+
+The due date has passed, feedback is suppressed, the problem was attempted, and there is no answer opening date set.
+
+=item * B<PAST_DUE_NO_ATMT_ANS>:
+
+The due date has passed, feedback is suppressed, the problem was not attempted, and the answer date has not yet arrived.
+
+=item * B<PAST_DUE_NO_ATMT_NOANS>:
+
+The due date has passed, feedback is suppressed, the problem was not attempted, and there is no answer opening date set.
+
 =item * B<NETWORK_FAILURE>:
 
 The information is unknown due to network failure.
@@ -5743,6 +5766,10 @@
 sub PAST_DUE_ANSWER_LATER  { return 3; }
 sub ANSWER_OPEN            { return 4; }
 sub NOTHING_SET            { return 5; }
+sub PAST_DUE_ATMPT_ANS     { return 6; }
+sub PAST_DUE_ATMPT_NOANS   { return 7; }
+sub PAST_DUE_NO_ATMT_ANS   { return 8; }
+sub PAST_DUE_NO_ATMT_NOANS { return 9; }
 sub NETWORK_FAILURE        { return 100; }
 
 # getDateStatus gets the date status for a given problem part. 
@@ -5946,6 +5973,26 @@
 The problem is past due, not considered correct, and an answer date in
 the future is set.
 
+=item * B<PAST_DUE_ATMPT_ANS>:
+
+The problem is past due, feedback is suppressed, the problem was
+attempted and an answer date in the future is set.
+
+=item * B<PAST_DUE_ATMPT_NOANS>:
+
+The problem is past due, feedback is suppressed, the problem was
+attempted and no answer date is set.
+
+=item * B<PAST_DUE_NO_ATMT_ANS>:
+
+The problem is past due, feedback is suppressed, the problem was
+not attempted and an answer date in the future is set.
+
+=item * B<PAST_DUE_NO_ATMT_NOANS>:
+
+The problem is past due, feedback is suppressed, the problem was
+not attempted and no answer date is set.
+
 =item * B<ANSWER_OPEN>:
 
 The problem is past due, not correct, and the answer is now available.
@@ -6029,7 +6076,18 @@
     if ($completionStatus == CORRECT ||
         $completionStatus == CORRECT_BY_OVERRIDE ||
         $completionStatus == CORRECT_BY_PASSBACK ) {
-	if ( $suppressFeedback ) { return ANSWER_SUBMITTED }
+	if ( $suppressFeedback ) {
+            if ($dateStatus == PAST_DUE_ANSWER_LATER ||
+                $dateStatus == PAST_DUE_NO_ANSWER ) {
+                if ($dateStatus == PAST_DUE_ANSWER_LATER) {
+                    return PAST_DUE_ATMPT_ANS;
+                } else {
+                    return PAST_DUE_ATMPT_NOANS;
+                }
+            } else {
+                return ANSWER_SUBMITTED;
+            }
+        }
 	my $awarded=$self->awarded($part);
 	if ($awarded < 1 && $awarded > 0) {
             return PARTIALLY_CORRECT;
@@ -6069,7 +6127,23 @@
 
     if ($dateStatus == PAST_DUE_ANSWER_LATER ||
         $dateStatus == PAST_DUE_NO_ANSWER ) {
-        return $suppressFeedback ? ANSWER_SUBMITTED : $dateStatus; 
+        if ($suppressFeedback) {
+            if ($completionStatus == NOT_ATTEMPTED) {
+                if ($dateStatus == PAST_DUE_ANSWER_LATER) {
+                    return PAST_DUE_NO_ATMT_ANS;
+                } else {
+                    return PAST_DUE_NO_ATMT_NOANS;
+                }
+            } else {
+                if ($dateStatus == PAST_DUE_ANSWER_LATER) {
+                    return PAST_DUE_ATMPT_ANS;
+                } else {
+                    return PAST_DUE_ATMPT_NOANS;
+                }
+            }
+        } else {
+            return $dateStatus;
+        }
     }
 
     if ($dateStatus == ANSWER_OPEN) {
@@ -6315,6 +6389,10 @@
       EXCUSED()               => CORRECT,
       PAST_DUE_NO_ANSWER()    => INCORRECT,
       PAST_DUE_ANSWER_LATER() => INCORRECT,
+      PAST_DUE_ATMPT_ANS()    => ATTEMPTED,
+      PAST_DUE_ATMPT_NOANS()  => ATTEMPTED,
+      PAST_DUE_NO_ATMT_ANS()  => CLOSED,
+      PAST_DUE_NO_ATMT_NOANS() => CLOSED,
       ANSWER_OPEN()           => INCORRECT,
       OPEN_LATER()            => CLOSED,
       TRIES_LEFT()            => OPEN,




More information about the LON-CAPA-cvs mailing list