--- loncom/interface/lonhelper.pm 2006/05/09 21:44:18 1.145 +++ loncom/interface/lonhelper.pm 2006/05/09 22:15:30 1.146 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # .helper XML handler to implement the LON-CAPA helper # -# $Id: lonhelper.pm,v 1.145 2006/05/09 21:44:18 foxr Exp $ +# $Id: lonhelper.pm,v 1.146 2006/05/09 22:15:30 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2282,7 +2282,6 @@ use Apache::lonnet; # future...each one gets is own subpage of selection. # This sub renders one of these pages. # Parameters: -# $sections - Set of sections in the course (hash reference). # $students - Students in the section. (ref to array of references # to arrays). # $formprefix - form path prefix for form element names @@ -2301,8 +2300,7 @@ use Apache::lonnet; # HTML text to add to the rendering of the helper. # sub render_student_list { - my ( - $sections, $students, $formprefix, $defaultusers, + my ($students, $formprefix, $defaultusers, $multiselect, $resultname, $javascript) = @_; my $result = ""; @@ -2421,9 +2419,19 @@ SCRIPT # as well as from categories of personnel. if ($multiselect) { + # Make a section hash so we can add sections to the choice: + + my %sections; + for my $student (@$students) { + my $sect = $student->[2]; + if ($sect ne "") { + $sections{$sect} = 1; + } + } + $result .= '
'; - my $size = scalar(keys(%$sections)); + my $size = scalar(keys(%sections)); $size += 3; # We have allstudents allpersonel nosection too. if ($size > 5) { $size = 5; @@ -2434,7 +2442,7 @@ SCRIPT $result .= ''; $result .= ''; $result .= "\n"; - foreach my $sec (sort {lc($a) cmp lc($b)} (keys(%$sections))) { + foreach my $sec (sort {lc($a) cmp lc($b)} (keys(%sections))) { $result .= ''."\n"; } $result .= ''; @@ -2651,44 +2659,15 @@ sub render { } - # Create a list of the sections that can be used to create the section - # selection list boxes: - # - my %sections; - for my $key (@keys) { - my $section_name = $classlist->{$key}->[$section]; - if ($section_name ne "") { - $sections{$section_name} = 1; - } - } - - - if ($self->{'multichoice'}) { - - # The variable $choice_widget will have the html to make the choice - # selector. - my $size=5; - if (scalar(keys(%sections)) < 5) { - $size=scalar(keys(%sections)); - } - my $result = '\n"; - - - } # Current personel - $result .= &render_student_list(\%sections, - $current_members, - "current", - \%defaultUsers, - $self->{'multichoice'}, - $self->{'variable'}, - 1); + $result .= &render_student_list( $current_members, + "current", + \%defaultUsers, + $self->{'multichoice'}, + $self->{'variable'}, + 1); # If activeonly is not set then we can also give the expired students: @@ -2697,19 +2676,17 @@ sub render { # And future. - $result .= &render_student_list(\%sections, - $future_members, - "future", - \%defaultUsers, - $self->{'multichoice'}, - $self->{'variable'}, - 0); + $result .= &render_student_list( $future_members, + "future", + \%defaultUsers, + $self->{'multichoice'}, + $self->{'variable'}, + 0); # Past - $result .= &render_student_list(\%sections, - $expired_members, - "past", - \%defaultUsers, + $result .= &render_student_list($expired_members, + "past", + \%defaultUsers, $self->{'multichoice'}, $self->{'variable'}, 0);