--- loncom/interface/lonhelper.pm 2006/05/09 14:38:10 1.142
+++ loncom/interface/lonhelper.pm 2006/05/09 21:39:47 1.144
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# .helper XML handler to implement the LON-CAPA helper
#
-# $Id: lonhelper.pm,v 1.142 2006/05/09 14:38:10 albertel Exp $
+# $Id: lonhelper.pm,v 1.144 2006/05/09 21:39:47 foxr Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2291,14 +2291,16 @@ use Apache::lonnet;
# set of students won't collide.
# $defaultusers - reference to a hash containng
# the set of users that should be on or off.
+# $multiselect - True if multiselect allowed.
+# $resultname - Name of result variable.
# Returns:
# HTML text to add to the rendering of the helper.
#
sub render_student_list {
- my ($self,
- $sections, $students, $formprefix, $defaultusers) = @_;
+ my (
+ $sections, $students, $formprefix, $defaultusers,
+ $multiselect, $resultname) = @_;
- my $multiselect = $self->{'multichoice'};
my $result = "";
# If multiple selections are allowed, we have a listbox
@@ -2352,7 +2354,7 @@ sub render_student_list {
my $checked = 0;
for my $student (@$students) {
$result .= '
[0];
# Figure out which students are checked by default...
@@ -2362,7 +2364,7 @@ sub render_student_list {
$result .= ' checked ="checked" ';
$checked = 1;
}
- } elsif (!$self->{'multichoice'} && !$checked) {
+ } elsif (!$multiselect && !$checked) {
$result .= ' checked="checked" ';
$checked = 1; # First one for radio if no default specified.
}
@@ -2697,10 +2699,12 @@ BUTTONS
# Current personel
- $result .= $self->render_student_list(\%sections,
+ $result .= &render_student_list(\%sections,
$current_members,
"current",
- \%defaultUsers);
+ \%defaultUsers,
+ $self->{'multichoice'},
+ $self->{'variable'});
# If activeonly is not set then we can also give the expired students:
@@ -2709,16 +2713,20 @@ BUTTONS
# And future.
- $result .= $self->render_student_list(\%sections,
+ $result .= &render_student_list(\%sections,
$future_members,
"future",
- \%defaultUsers);
+ \%defaultUsers,
+ $self->{'multichoice'},
+ $self->{'variable'});
# Past
- $result .= $self->render_student_list(\%sections,
+ $result .= &render_student_list(\%sections,
$expired_members,
"past",
- \%defaultUsers);
+ \%defaultUsers,
+ $self->{'multichoice'},
+ $self->{'variable'});
}
@@ -3162,17 +3170,22 @@ sub start_section {
my $section = Apache::loncoursedata::CL_SECTION();
my $classlist = Apache::loncoursedata::get_classlist();
- foreach (keys %$classlist) {
- my $sectionName = $classlist->{$_}->[$section];
- if (!$sectionName) {
+ foreach my $user (keys(%$classlist)) {
+ my $section_name = $classlist->{$user}[$section];
+ if (!$section_name) {
$choices{"No section assigned"} = "";
} else {
- $choices{$sectionName} = $sectionName;
+ $choices{$section_name} = $section_name;
}
}
- for my $sectionName (sort(keys(%choices))) {
- push @{$paramHash->{CHOICES}}, [$sectionName, $sectionName];
+ if (exists($choices{"No section assigned"})) {
+ push(@{$paramHash->{CHOICES}},
+ ['No section assigned','No section assigned']);
+ delete($choices{"No section assigned"});
+ }
+ for my $section_name (sort {lc($a) cmp lc($b) } (keys(%choices))) {
+ push @{$paramHash->{CHOICES}}, [$section_name, $section_name];
}
return if ($token->[2]{'onlysections'});
@@ -3242,7 +3255,7 @@ sub start_group {
my %choices;
my %curr_groups = &Apache::loncommon::coursegroups();
- foreach my $group_name (sort(keys(%curr_groups))) {
+ foreach my $group_name (sort {lc($a) cmp lc($b)} (keys(%curr_groups))) {
push(@{$paramHash->{CHOICES}}, [$group_name, $group_name]);
}
}