[LON-CAPA-cvs] cvs: loncom /interface lonhelper.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Tue, 07 Mar 2006 21:36:50 -0000
albertel Tue Mar 7 16:36:50 2006 EDT
Modified files:
/loncom/interface lonhelper.pm
Log:
- <section> by default now also includes groups but can be forced to be only sections through the 'onlysections' attribute
Index: loncom/interface/lonhelper.pm
diff -u loncom/interface/lonhelper.pm:1.133 loncom/interface/lonhelper.pm:1.134
--- loncom/interface/lonhelper.pm:1.133 Tue Mar 7 11:09:59 2006
+++ loncom/interface/lonhelper.pm Tue Mar 7 16:36:49 2006
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# .helper XML handler to implement the LON-CAPA helper
#
-# $Id: lonhelper.pm,v 1.133 2006/03/07 16:09:59 albertel Exp $
+# $Id: lonhelper.pm,v 1.134 2006/03/07 21:36:49 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2996,8 +2996,12 @@
<section> allows the user to choose one or more sections from the current
course.
-It takes the standard attributes "variable", "multichoice", and
-"nextstate", meaning what they do for most other elements.
+It takes the standard attributes "variable", "multichoice",
+"allowempty" and "nextstate", meaning what they do for most other
+elements.
+
+also takes a boolean 'onlysections' whcih will restrict this to only
+have sections and not include groups
=cut
@@ -3047,8 +3051,16 @@
}
for my $sectionName (sort(keys(%choices))) {
-
- push @{$paramHash->{CHOICES}}, [$sectionName, $sectionName];
+ push @{$paramHash->{CHOICES}}, [$sectionName, $sectionName];
+ }
+ return if ($token->[2]{'onlysections'});
+
+ # add in groups to the end of the list
+ my %curr_groups;
+ if (&Apache::loncommon::coursegroups(\%curr_groups)) {
+ foreach my $group_name (sort(keys(%curr_groups))) {
+ push(@{$paramHash->{CHOICES}}, [$group_name, $group_name]);
+ }
}
}
@@ -3068,10 +3080,12 @@
=head2 Element: groupX<group, helper element>
-<section> allows the user to choose one or more groups from the current course.
+<group> allows the user to choose one or more groups from the current course.
+
+It takes the standard attributes "variable", "multichoice",
+ "allowempty" and "nextstate", meaning what they do for most other
+ elements.
-It takes the standard attributes "variable", "multichoice", and "nextstate", meaning what they do for most other elements.
-
=cut
no strict;
@@ -3108,18 +3122,14 @@
# Populate the CHOICES element
my %choices;
- my $numgroups;
my %curr_groups;
if (&Apache::loncommon::coursegroups(\%curr_groups)) {
- foreach my $group_name (keys %curr_groups) {
- $choices{$group_name} = $group_name;
- }
- }
- foreach my $group_name (sort(keys(%choices))) {
- push @{$paramHash->{CHOICES}}, [$group_name, $group_name];
+ foreach my $group_name (sort(keys(%curr_groups))) {
+ push(@{$paramHash->{CHOICES}}, [$group_name, $group_name]);
+ }
}
}
-
+
sub end_group {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;