[LON-CAPA-cvs] cvs: loncom /interface loncommon.pm

raeburn raeburn at source.lon-capa.org
Tue Mar 19 21:26:15 EDT 2013


raeburn		Wed Mar 20 01:26:15 2013 EDT

  Modified files:              
    /loncom/interface	loncommon.pm 
  Log:
  - &get_sections() efficiency.
    Skip dump of nohist_userroles in course if st is only role in possible_roles.
  
  
Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.1117 loncom/interface/loncommon.pm:1.1118
--- loncom/interface/loncommon.pm:1.1117	Tue Mar 19 00:37:03 2013
+++ loncom/interface/loncommon.pm	Wed Mar 20 01:26:15 2013
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.1117 2013/03/19 00:37:03 raeburn Exp $
+# $Id: loncommon.pm,v 1.1118 2013/03/20 01:26:15 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -8225,7 +8225,19 @@
     my %sectioncount;
     my $now = time;
 
-    if (!defined($possible_roles) || (grep(/^st$/,@$possible_roles))) {
+    my $check_students = 1;
+    my $only_students = 0;
+    if (ref($possible_roles) eq 'ARRAY') {
+        if (grep(/^st$/,@{$possible_roles})) {
+            if (@{$possible_roles} == 1) {
+                $only_students = 1;
+            }
+        } else {
+            $check_students = 0;
+        }
+    }
+
+    if ($check_students) { 
 	my ($classlist) = &Apache::loncoursedata::get_classlist($cdom,$cnum);
 	my $sec_index = &Apache::loncoursedata::CL_SECTION();
 	my $status_index = &Apache::loncoursedata::CL_STATUS();
@@ -8252,6 +8264,9 @@
 	    }
 	}
     }
+    if ($only_students) {
+        return %sectioncount;
+    }
     my %courseroles = &Apache::lonnet::dump('nohist_userroles',$cdom,$cnum);
     foreach my $user (sort(keys(%courseroles))) {
 	if ($user !~ /^(\w{2})/) { next; }




More information about the LON-CAPA-cvs mailing list