[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