--- loncom/interface/loncommon.pm 2006/05/08 22:34:00 1.364
+++ loncom/interface/loncommon.pm 2006/05/09 20:25:05 1.367
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.364 2006/05/08 22:34:00 albertel Exp $
+# $Id: loncommon.pm,v 1.367 2006/05/09 20:25:05 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -3646,6 +3646,14 @@ sub simple_error_page {
sub end_data_table_row {
return '';
}
+
+ sub start_data_table_header_row {
+ return '
';
+ }
}
###############################################
@@ -3751,20 +3759,27 @@ Returns number of sections.
###############################################
sub get_sections {
- my ($cdom,$cnum,$sectioncount,$possible_roles) = @_;
- if (!($cdom && $cnum)) { return 0; }
- my $numsections = 0;
+ my ($cdom,$cnum,$possible_roles) = @_;
+ if (!defined($cdom) || !defined($cnum)) {
+ my $cid = $env{'request.course.id'};
- if (!defined($possible_roles) || (grep/^st$/,@$possible_roles)) {
+ return if (!defined($cid));
+
+ $cdom = $env{'course.'.$cid.'.domain'};
+ $cnum = $env{'course.'.$cid.'.num'};
+ }
+
+ my %sectioncount;
+
+ if (!defined($possible_roles) || (grep(/^st$/,@$possible_roles))) {
my ($classlist) = &Apache::loncoursedata::get_classlist($cdom,$cnum);
my $sec_index = &Apache::loncoursedata::CL_SECTION();
my $status_index = &Apache::loncoursedata::CL_STATUS();
- while (my ($student,$data) = each %$classlist) {
+ 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}++;
+ $sectioncount{$section}++;
}
}
}
@@ -3780,10 +3795,9 @@ sub get_sections {
}
if ($user =~ /^$role:[^:]*:[^:]*:(\w+)/) { $section=$1; }
if (!defined($section) || $section eq '-1') { next; }
- if (!defined($$sectioncount{$section})) { $numsections++; }
- $$sectioncount{$section}++;
+ $sectioncount{$section}++;
}
- return $numsections;
+ return %sectioncount;
}
###############################################
@@ -3820,25 +3834,24 @@ can be sent to &get_group_settings() to
###############################################
sub coursegroups {
- my ($curr_groups,$cdom,$cnum,$group) = @_;
- my $numgroups;
+ my ($cdom,$cnum,$group) = @_;
if (!defined($cdom) || !defined($cnum)) {
my $cid = $env{'request.course.id'};
+
+ return if (!defined($cid));
+
$cdom = $env{'course.'.$cid.'.domain'};
$cnum = $env{'course.'.$cid.'.num'};
}
- %{$curr_groups} = &Apache::lonnet::get_coursegroups($cdom,$cnum,$group);
- my ($tmp) = keys(%{$curr_groups});
- if ($tmp=~/^error:/) {
- unless ($tmp eq 'error: 2 tie(GDBM) Failed while attempting dump') {
- &logthis('Error retrieving groups: '.$tmp.' in '.$cnum.':'.
- $cdom);
- }
- $numgroups = 0;
- } else {
- $numgroups = keys(%{$curr_groups});
+ my %curr_groups = &Apache::lonnet::get_coursegroups($cdom,$cnum,$group);
+ my ($tmp) = keys(%curr_groups);
+ if ($tmp=~/^(con_lost|no_such_host|error: [^2] )/) {
+ undef(%curr_groups);
+ &logthis('Error retrieving groups: '.$tmp.' in '.$cnum.':'.$cdom);
+ } elsif ($tmp=~/^error: 2 /) {
+ undef(%curr_groups);
}
- return $numgroups;
+ return %curr_groups;
}
###############################################