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

raeburn raeburn at source.lon-capa.org
Sat Apr 18 19:20:57 EDT 2026


raeburn		Sat Apr 18 23:20:57 2026 EDT

  Modified files:              
    /loncom/interface	lonnavmaps.pm 
  Log:
  - Correction to changes in rev. 1.578 to make &discussion_visible() in 
    lonnavmaps consistent with &discussion_visible() in lonfeedback.pm.
    - Check $self->answerable() for problems, and contentopen and contentclose
      for other content to get "status", instead of problemstatus parameter.
  
  
Index: loncom/interface/lonnavmaps.pm
diff -u loncom/interface/lonnavmaps.pm:1.586 loncom/interface/lonnavmaps.pm:1.587
--- loncom/interface/lonnavmaps.pm:1.586	Thu Mar 12 13:25:47 2026
+++ loncom/interface/lonnavmaps.pm	Sat Apr 18 23:20:57 2026
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Navigate Maps Handler
 #
-# $Id: lonnavmaps.pm,v 1.586 2026/03/12 13:25:47 raeburn Exp $
+# $Id: lonnavmaps.pm,v 1.587 2026/04/18 23:20:57 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -5429,16 +5429,31 @@
 sub discussion_visible {
     my $self = shift();
     return 1 if ($env{'request.role.adv'});
-    my $probstatus = $self->parmval('problemstatus');
+    my $status;
+    if ($self->is_gradable()) {
+        if ($self->answerable()) {
+            $status = 'CAN_ANSWER';
+        } else {
+            $status = 'CANNOT_ANSWER';
+        }
+    } else {
+       $status = 'OPEN';
+       my $start = $self->parmval('contentopen',0);
+       my $end = $self->parmval('contentclose',0);
+       if ((($end ne '') && ($end < time)) ||
+           (($start ne '') && ($start > time))) {
+           $status = 'CLOSED';
+       }
+    }
     my $discend = $self->parmval('discussend');
     my $dischide = $self->parmval('discusshide');
     if ((defined($discend)) && ($discend ne '')) {
         unless (($discend >= time) || ((lc($dischide) eq 'no') || ($dischide eq ''))) {
             return 0;
         }
-    } elsif ((defined($probstatus)) &&
-             !($probstatus eq 'CAN_ANSWER' || $probstatus eq 'CANNOT_ANSWER'
-               || $probstatus eq 'OPEN')) {
+    } elsif ((defined($status)) &&
+             !($status eq 'CAN_ANSWER' || $status eq 'CANNOT_ANSWER'
+               || $status eq 'OPEN')) {
         unless ((lc($dischide) eq 'no') || ($dischide eq '')) {
             return 0;
         }




More information about the LON-CAPA-cvs mailing list