[LON-CAPA-cvs] cvs: loncom /interface loncommon.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Thu, 02 Dec 2004 21:30:16 -0000
albertel Thu Dec 2 16:30:16 2004 EDT
Modified files:
/loncom/interface loncommon.pm
Log:
- section -1 is a special section meaning no section, don't show it.
Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.239 loncom/interface/loncommon.pm:1.240
--- loncom/interface/loncommon.pm:1.239 Thu Dec 2 13:58:30 2004
+++ loncom/interface/loncommon.pm Thu Dec 2 16:30:16 2004
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.239 2004/12/02 18:58:30 matthew Exp $
+# $Id: loncommon.pm,v 1.240 2004/12/02 21:30:16 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2719,52 +2719,37 @@
###############################################
sub get_sections {
my ($cdom,$cnum,$sectioncount,$possible_roles) = @_;
+ if (!($cdom && $cnum)) { return 0; }
my $cid = $cdom.'_'.$cnum;
my $numsections = 0;
- if ($cdom && $cnum) {
- if (!defined($possible_roles) || (grep/^st$/,@$possible_roles)) {
- my ($classlist) = &Apache::loncoursedata::get_classlist($cid,$cdom,$cnum);
- my $sec_index = &Apache::loncoursedata::CL_SECTION();
- my $status_index = &Apache::loncoursedata::CL_STATUS();
- while (my ($student,$data) = each %$classlist) {
- my ($section,$status) = ($data->[$sec_index],
- $data->[$status_index]);
- unless ($section eq '' || $section =~ /^\s*$/) {
- if (!defined($$sectioncount{$section})) {
- $$sectioncount{$section} = 1;
- $numsections ++;
- } else {
- $$sectioncount{$section} ++;
- }
- }
- }
- }
- my %courseroles = &Apache::lonnet::dump('nohist_userroles',$cdom,$cnum);
- foreach my $user (sort keys %courseroles) {
- if ($user =~ /^(\w{2})/) {
- my $role = $1;
- if (!defined($possible_roles) || (grep/^$role$/,@$possible_roles)) {
- if ($role eq 'cr') {
- if ($user =~ m-^$role/[^/]*/[^/]*/[^/]*:[^:]*:[^:]*:(\w+)-) {
- if (!defined($$sectioncount{$1})) {
- $$sectioncount{$1} = 1;
- $numsections ++;
- } else {
- $$sectioncount{$1} ++;
- }
- }
- }
- if ($user =~ /^$role:[^:]*:[^:]*:(\w+)/) {
- if (!defined($$sectioncount{$1})) {
- $$sectioncount{$1} = 1;
- $numsections ++;
- } else {
- $$sectioncount{$1} ++;
- }
- }
- }
- }
- }
+
+ if (!defined($possible_roles) || (grep/^st$/,@$possible_roles)) {
+ my ($classlist) = &Apache::loncoursedata::get_classlist($cid,$cdom,$cnum);
+ my $sec_index = &Apache::loncoursedata::CL_SECTION();
+ my $status_index = &Apache::loncoursedata::CL_STATUS();
+ while (my ($student,$data) = each %$classlist) {
+ my ($section,$status) = ($data->[$sec_index],
+ $data->[$status_index]);
+ unless ($section eq '-1' || $section =~ /^\s*$/) {
+ if (!defined($$sectioncount{$section})) { $numsections++; }
+ $$sectioncount{$section}++;
+ }
+ }
+ }
+ my %courseroles = &Apache::lonnet::dump('nohist_userroles',$cdom,$cnum);
+ foreach my $user (sort(keys(%courseroles))) {
+ if ($user !~ /^(\w{2})/) { next; }
+ my ($role) = ($user =~ /^(\w{2})/);
+ if ($possible_roles && !(grep(/^$role$/,@$possible_roles))) { next; }
+ my $section;
+ if ($role eq 'cr' &&
+ $user =~ m-^$role/[^/]*/[^/]*/[^/]*:[^:]*:[^:]*:(\w+)-) {
+ $section=$1;
+ }
+ if ($user =~ /^$role:[^:]*:[^:]*:(\w+)/) { $section=$1; }
+ if (!defined($section) || $section eq '-1') { next; }
+ if (!defined($$sectioncount{$section})) { $numsections++; }
+ $$sectioncount{$section}++;
}
return $numsections;
}