[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;
 }