Diff for /loncom/interface/loncoursedata.pm between versions 1.168 and 1.172

version 1.168, 2006/05/05 21:35:31 version 1.172, 2006/05/18 18:37:23
Line 51  package Apache::loncoursedata; Line 51  package Apache::loncoursedata;
 use strict;  use strict;
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::lonhtmlcommon;  use Apache::lonhtmlcommon;
   use Apache::longroup;
 use Time::HiRes;  use Time::HiRes;
 use Apache::lonmysql;  use Apache::lonmysql;
 use HTML::TokeParser;  use HTML::TokeParser;
Line 965  sub populate_groupnames_table { Line 966  sub populate_groupnames_table {
     my $dbh = &Apache::lonmysql::get_dbh();      my $dbh = &Apache::lonmysql::get_dbh();
     my $cdom = $env{'course.'.$courseid.'.domain'};      my $cdom = $env{'course.'.$courseid.'.domain'};
     my $cnum = $env{'course.'.$courseid.'.num'};      my $cnum = $env{'course.'.$courseid.'.num'};
     my %curr_groups;      my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum);
     my $numgrps = &Apache::loncommon::coursegroups(\%curr_groups,$cdom,$cnum);      return if (!%curr_groups);
     return if (!$numgrps);  
     my $request = 'INSERT IGNORE INTO '.$groupnames_table.      my $request = 'INSERT IGNORE INTO '.$groupnames_table.
                   '(groupname) VALUES ';                    '(groupname) VALUES ';
     foreach my $groupname (sort(keys(%curr_groups)),'none') {      foreach my $groupname (sort(keys(%curr_groups)),'none') {
Line 1025  sub populate_students_groups_table { Line 1025  sub populate_students_groups_table {
         "(student_id,group_id) VALUES ";          "(student_id,group_id) VALUES ";
     my $cdom = $env{'course.'.$courseid.'.domain'};      my $cdom = $env{'course.'.$courseid.'.domain'};
     my $cnum = $env{'course.'.$courseid.'.num'};      my $cnum = $env{'course.'.$courseid.'.num'};
     my $classlist = &get_classlist($cdom,$cnum);      my ($classlist,$keylist) = &get_classlist($cdom,$cnum);
     my ($classgroups,$studentgroups) = &get_group_memberships($classlist,      my ($classgroups,$studentgroups) = &get_group_memberships($classlist,
                                                                 $keylist,
                                                               $cdom,$cnum);                                                                $cdom,$cnum);
     my $record_count = 0;      my $record_count = 0;
     foreach my $student (sort(keys(%{$classgroups}))) {      foreach my $student (sort(keys(%{$classgroups}))) {
Line 3142  sub get_classlist { Line 3143  sub get_classlist {
 }  }
   
 sub get_group_memberships {  sub get_group_memberships {
     my ($classlist,$cdom,$cnum) = @_;      my ($classlist,$keylist,$cdom,$cnum) = @_;
   
       return ({},{}) if (!ref($classlist) || !ref($keylist));
   
     my $cid = $cdom.'_'.$cnum;      my $cid = $cdom.'_'.$cnum;
     if (!defined($cdom) || !defined($cnum)) {      if (!defined($cdom) || !defined($cnum)) {
         $cid =  $env{'request.course.id'};          $cid =  $env{'request.course.id'};
Line 3152  sub get_group_memberships { Line 3156  sub get_group_memberships {
     my (%classgroups,%studentgroups);      my (%classgroups,%studentgroups);
     my $now = time;      my $now = time;
     my $access_end = $env{'course.'.$cid.'.default_enrollment_end_date'};      my $access_end = $env{'course.'.$cid.'.default_enrollment_end_date'};
     my (%curr_groups,%groupmemberhash);      my %curr_groups =&Apache::longroup::coursegroups($cdom,$cnum);
     my $numgroups = &Apache::loncommon::coursegroups(\%curr_groups,$cdom,      if (%curr_groups) {
                                                      $cnum);          my $grpindex = scalar(@{$keylist});
     if ($numgroups) {          my %groupmemberhash = 
         %groupmemberhash = &Apache::lonnet::get_group_membership($cdom,$cnum);      &Apache::lonnet::get_group_membership($cdom,$cnum);
         foreach my $student (keys(%{$classlist})) {          foreach my $student (keys(%{$classlist})) {
             %{$classgroups{$student}} = ();              %{$classgroups{$student}} = ();
             my $hasgroup = 0;              my $hasgroup = 0;
Line 3196  sub get_group_memberships { Line 3200  sub get_group_memberships {
             }              }
             if (!$hasgroup) {              if (!$hasgroup) {
                 $studentgroups{'none'} ++;                  $studentgroups{'none'} ++;
               } else {
                   $classlist->{$student}->[$grpindex] = join(',',
                                 sort(keys(%{$classgroups{$student}{'active'}})));
             }              }
         }          }
     }      }

Removed from v.1.168  
changed lines
  Added in v.1.172


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>