--- loncom/interface/courseprefs.pm 2016/02/20 00:12:39 1.75
+++ loncom/interface/courseprefs.pm 2016/03/04 21:43:15 1.76
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set configuration settings for a course
#
-# $Id: courseprefs.pm,v 1.75 2016/02/20 00:12:39 raeburn Exp $
+# $Id: courseprefs.pm,v 1.76 2016/03/04 21:43:15 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2557,7 +2557,7 @@ sub display_loncaparev_constraints {
if (grep(/^\Q$value\E$/,@{$Apache::lonrelrequtils::checkparms{$item}})) {
my $stdtype = &Apache::lonparmset::standard_parameter_types($item);
$found{$item}{'valname'} = &get_param_description($stdtype,$value);
- $found{$item}{'rev'} = $Apache::lonnet::needsrelease{'parameter:'.$item.':'.$value.':'};
+ $found{$item}{'rev'} = $Apache::lonnet::needsrelease{'parameter:'.$item.':'.$value.'::'};
}
}
}
@@ -2570,16 +2570,39 @@ sub display_loncaparev_constraints {
my $stdtype = &Apache::lonparmset::standard_parameter_types($item);
$found{$item}{'valname'} = &get_param_description($stdtype,$value,1);
$found{$item}{'rev'} =
- $Apache::lonnet::needsrelease{'parameter:'.$item.'::'.$valuematch};
+ $Apache::lonnet::needsrelease{'parameter:'.$item.'::'.$valuematch.':'};
last;
}
}
}
}
+ foreach my $item (keys(%Apache::lonrelrequtils::checkparmnamesmatch)) {
+ my $regexp;
+ if ($item eq 'maplevelrecurse') {
+ $regexp = '\.(?:sequence|page)___\(rec\)\.';
+ }
+ if ($regexp ne '') {
+ if ($key =~ /$regexp.*\.(\w+)$/) {
+ my $name = $1;
+ my $value = $resourcedata->{$key};
+ if ($name eq 'type') {
+ last unless (($value eq 'problem') || ($value eq 'practice') || ($value eq 'exam') ||
+ ($value eq 'survey') || ($value eq 'surveycred') || ($value eq 'anonsurvey') ||
+ ($value eq 'anonsurveycred') || ($value eq 'randomizetry') || ($value eq 'library'));
+ }
+ my $stdtype = &Apache::lonparmset::standard_parameter_types($name);
+ $found{$name}{'valname'} = &get_param_description($stdtype,$value);
+ $found{$name}{'extra'} = &mt('Recursive into sub-folders');
+ $found{$name}{'rev'} =
+ $Apache::lonnet::needsrelease{'parameter::::'.$item};
+ }
+ }
+ }
foreach my $item (keys(%found)) {
my $stdname = &Apache::lonparmset::standard_parameter_names($item);
my $rev = $found{$item}{'rev'};
my $valname = $found{$item}{'valname'};
+ my $extra = $found{$item}{'extra'};
my ($middle,$scope,$which,$level,$map,$resource);
my $start = $cid.'.';
if ($key =~ /^\Q$start\E(\[useropt\:($match_username\:$match_domain)\]\.)/) {
@@ -2594,6 +2617,9 @@ sub display_loncaparev_constraints {
$scope = 'all';
}
my $what="$stdname=$valname";
+ if ($extra) {
+ $what .= "
$extra
";
+ }
if ($key =~ /^\Q$start$middle\E\w+\.\Q$item\E$/) {
$level = 'general';
if ($scope eq 'all') {
@@ -2614,7 +2640,7 @@ sub display_loncaparev_constraints {
}
}
$rowspan{$rev} ++;
- } elsif ($key =~ /^\Q$start$middle\E(.+)___\(all\).\w+\.\Q$item\E$/) {
+ } elsif ($key =~ /^\Q$start$middle\E(.+)___\((all|rec)\).\w+\.\Q$item\E$/) {
$level = 'folder';
$map = $1;
if ($scope eq 'all') {
@@ -2769,9 +2795,9 @@ sub display_loncaparev_constraints {
if (defined($navmap)) {
my %anonsubms=&Apache::lonnet::dump('nohist_anonsurveys',$cdom,$cnum);
- my $rev_anonsurv=$Apache::lonnet::needsrelease{'parameter:type:anonsurvey:'};
+ my $rev_anonsurv=$Apache::lonnet::needsrelease{'parameter:type:anonsurvey::'};
my %randtrysubms=&Apache::lonnet::dump('nohist_randomizetry',$cdom,$cnum);
- my $rev_randtry=$Apache::lonnet::needsrelease{'parameter:type:randomizetry:'};
+ my $rev_randtry=$Apache::lonnet::needsrelease{'parameter:type:randomizetry::'};
my $stdtype=&Apache::lonparmset::standard_parameter_types('type');
my $stdname=&Apache::lonparmset::standard_parameter_names('type');
my $valanon=&get_param_description($stdtype,'anonsurvey');
@@ -3106,6 +3132,13 @@ sub get_param_description {
if (ref($paramstrings) eq 'ARRAY') {
@possibles = @{$paramstrings};
} else {
+ if (($stdtype eq 'date_start') || ($stdtype eq 'date_end')) {
+ if ($name == 0) {
+ $name = &mt('Never');
+ } elsif (($name ne '') && ($name !~ /\D/)) {
+ $name = &Apache::lonlocal::locallocaltime($name);
+ }
+ }
return $name;
}
}