--- loncom/interface/lonhelper.pm 2015/08/16 00:21:21 1.196
+++ loncom/interface/lonhelper.pm 2018/01/14 22:02:06 1.199
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# .helper XML handler to implement the LON-CAPA helper
#
-# $Id: lonhelper.pm,v 1.196 2015/08/16 00:21:21 raeburn Exp $
+# $Id: lonhelper.pm,v 1.199 2018/01/14 22:02:06 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2464,7 +2464,7 @@ BUTTONS
$resource_name . "'/> ";
} else {
$col .=
- "
";
}
@@ -3183,7 +3183,7 @@ It takes the standard attributes "variab
"allowempty" and "nextstate", meaning what they do for most other
elements.
-also takes a boolean 'onlysections' whcih will restrict this to only
+also takes a boolean 'onlysections' which will restrict this to only
have sections and not include groups
=cut
@@ -3277,6 +3277,10 @@ It takes the standard attributes "variab
"allowempty" and "nextstate", meaning what they do for most other
elements.
+also takes a boolean grouponly, which if true, will restrict choice to
+groups in which user is a member, unless user has the mdg priv in the course,
+in which case all groups will be possible choices. Defaults to false.
+
=cut
no strict;
@@ -3306,6 +3310,7 @@ sub start_group {
$helper->declareVar($paramHash->{'variable'});
$paramHash->{'multichoice'} = $token->[2]{'multichoice'};
$paramHash->{'allowempty'} = $token->[2]{'allowempty'};
+ $paramHash->{'grouponly'} = $token->[2]{'grouponly'};
if (defined($token->[2]{'nextstate'})) {
$paramHash->{NEXTSTATE} = $token->[2]{'nextstate'};
}
@@ -3313,7 +3318,12 @@ sub start_group {
# Populate the CHOICES element
my %choices;
- my %curr_groups = &Apache::longroup::coursegroups();
+ my %curr_groups;
+ if ((!$paramHash->{'grouponly'}) || (&Apache::lonnet::allowed('mdg',$Apache::lonnet::env{'request.course.id'}))) {
+ %curr_groups = &Apache::longroup::coursegroups();
+ } elsif ($Apache::lonnet::env{'request.course.groups'} ne '') {
+ map { $curr_groups{$_} = 1; } split(/,/,$Apache::lonnet::env{'request.course.groups'});
+ }
foreach my $group_name (sort {lc($a) cmp lc($b)} (keys(%curr_groups))) {
push(@{$paramHash->{CHOICES}}, [$group_name, $group_name]);
}
@@ -3816,38 +3826,54 @@ sub render {
if ($vars->{GRANULARITY} eq 'whole_course') {
$resourceString .= '
'.&mt('for [_1]all resources in the course[_2]','','').'