--- loncom/interface/lonhelper.pm 2006/03/07 16:09:59 1.133 +++ loncom/interface/lonhelper.pm 2006/03/07 21:36:49 1.134 @@ -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 @@ package Apache::lonhelper::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 @@ sub start_section { } 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 @@ package Apache::lonhelper::group; =head2 Element: groupX -
allows the user to choose one or more groups from the current course. + 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 @@ sub start_group { # 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)=@_;