Diff for /loncom/enrollment/Enrollment.pm between versions 1.37 and 1.39

version 1.37, 2007/12/23 02:48:50 version 1.39, 2008/08/27 02:37:39
Line 115  sub update_LC { Line 115  sub update_LC {
 # Get latest institutional enrollment for this class.  # Get latest institutional enrollment for this class.
     my %allenrolled = ();      my %allenrolled = ();
     my @reg_students = ();      my @reg_students = ();
     my %place = ();      my %place = &place_hash(); 
     $place{'autharg'} = &CL_autharg();  
     $place{'authtype'} = &CL_authtype();  
     $place{'email'} = &CL_email();  
     $place{'enddate'} = &CL_enddate();  
     $place{'firstname'} = &CL_firstname();  
     $place{'generation'} = &CL_generation();  
     $place{'groupID'} = &CL_groupID();  
     $place{'lastname'} = &CL_lastname();  
     $place{'middlename'} = &CL_middlename();  
     $place{'startdate'} = &CL_startdate();  
     $place{'studentID'} = &CL_studentID();  
     my %ucount = ();      my %ucount = ();
     my %enrollinfo = ();      my %enrollinfo = ();
     foreach my $class (@{$classesref}) {      foreach my $class (@{$classesref}) {
Line 217  sub update_LC { Line 206  sub update_LC {
 # Check for switch from manual to auto  # Check for switch from manual to auto
                 unless (($$currlist{$uname}[$type] eq "auto") || ($$currlist{$uname}[$lockedtype] eq "1") || (!$adds) ) {                  unless (($$currlist{$uname}[$type] eq "auto") || ($$currlist{$uname}[$lockedtype] eq "1") || (!$adds) ) {
 # drop manually added student  # drop manually added student
                     my $drop_reply = &Apache::lonnet::modifystudent($dom,$uname,'','','',undef,undef,undef,undef,$$currlist{$uname}[$sec],time,undef,undef,undef,undef,'auto','',$cid);                      my $drop_reply = &Apache::lonnet::modifystudent($dom,$uname,'','','',undef,undef,undef,undef,$$currlist{$uname}[$sec],time,undef,undef,undef,undef,'auto','',$cid,'',$context);
 # re-enroll as auto student  # re-enroll as auto student
                     if ($drop_reply !~ /^ok/) {                      if ($drop_reply !~ /^ok/) {
                             $$logmsg .= &mt('An error occured during the attempt to convert [_1] from a manual type to an auto type student - [_2].',$uname,$drop_reply).$linefeed;                              $$logmsg .= &mt('An error occured during the attempt to convert [_1] from a manual type to an auto type student - [_2].',$uname,$drop_reply).$linefeed;
Line 249  sub update_LC { Line 238  sub update_LC {
                     if ( (grep/^$uname$/,@futurestudents) && ($$currlist{$uname}[$type] eq "auto") && ($adds == 1) ) {                      if ( (grep/^$uname$/,@futurestudents) && ($$currlist{$uname}[$type] eq "auto") && ($adds == 1) ) {
                         my $datechange = &datechange_check($$currlist{$uname}[$cstart],$$currlist{$uname}[$cend],$startdate,$enddate);                          my $datechange = &datechange_check($$currlist{$uname}[$cstart],$$currlist{$uname}[$cend],$startdate,$enddate);
                         if ($datechange) {                          if ($datechange) {
                             my $modify_access_result = &Apache::lonnet::modify_student_enrollment($dom,$uname,undef,undef,undef,undef,undef,$stuinfo[ $place{groupID} ],$enddate,$startdate,'auto','',$cid);                              my $modify_access_result = &Apache::lonnet::modify_student_enrollment($dom,$uname,undef,undef,undef,undef,undef,$stuinfo[ $place{groupID} ],$enddate,$startdate,'auto','',$cid,'',$context);
                             $access = &showaccess($enddate,$startdate);                              $access = &showaccess($enddate,$startdate);
                             if ($modify_access_result =~ /^ok/) {                              if ($modify_access_result =~ /^ok/) {
                                 $$logmsg .= &mt('Change in access dates for [_1].',$uname).$access.$linefeed;                                  $$logmsg .= &mt('Change in access dates for [_1].',$uname).$access.$linefeed;
Line 267  sub update_LC { Line 256  sub update_LC {
                         if ($$currlist{$uname}[$sec]) {                          if ($$currlist{$uname}[$sec]) {
                             $uurl.='/'.$$currlist{$uname}[$sec];                              $uurl.='/'.$$currlist{$uname}[$sec];
                         }                          }
                         my $expire_role_result = &Apache::lonnet::assignrole($dom,$uname,$uurl,'st',$expiretime);                          my $expire_role_result = &Apache::lonnet::assignrole($dom,$uname,$uurl,'st',$expiretime,'','','',$context);
                         if ($expire_role_result eq 'ok') {                          if ($expire_role_result eq 'ok') {
                             my $modify_section_result;                              my $modify_section_result;
                             if (grep/^$uname$/,@activestudents) {                              if (grep/^$uname$/,@activestudents) {
                                 $modify_section_result = &Apache::lonnet::modify_student_enrollment($dom,$uname,undef,undef,undef,undef,undef,$stuinfo[ $place{groupID} ],$$currlist{$uname}[$cend],$$currlist{$uname}[$cstart],'auto','',$cid);                                  $modify_section_result = &Apache::lonnet::modify_student_enrollment($dom,$uname,undef,undef,undef,undef,undef,$stuinfo[ $place{groupID} ],$$currlist{$uname}[$cend],$$currlist{$uname}[$cstart],'auto','',$cid,'',$context);
                             } else {                              } else {
                                 $modify_section_result =  &Apache::lonnet::modify_student_enrollment($dom,$uname,undef,undef,undef,undef,undef,$stuinfo[ $place{groupID} ],$enddate,$startdate,'auto','',$cid);                                  $modify_section_result =  &Apache::lonnet::modify_student_enrollment($dom,$uname,undef,undef,undef,undef,undef,$stuinfo[ $place{groupID} ],$enddate,$startdate,'auto','',$cid,'',$context);
                                 $access =  &showaccess($enddate,$startdate);                                  $access =  &showaccess($enddate,$startdate);
                             }                              }
                             if ($modify_section_result =~ /^ok/) {                              if ($modify_section_result =~ /^ok/) {
Line 331  sub update_LC { Line 320  sub update_LC {
                                     'linefeed' => $linefeed,                                      'linefeed' => $linefeed,
                                     'role' => 'st'                                      'role' => 'st'
                                    };                                     };
                         my $outcome = &create_newuser($args,$logmsg,$newusermsg,\$enrollcount,\$addresult,\%longroles,\%courseinfo);                          my $outcome = &create_newuser($args,$logmsg,$newusermsg,\$enrollcount,\$addresult,\%longroles,\%courseinfo,$context);
                     } else {                      } else {
                         &execute_add($context,'newstudent',$uname,$dom,$auth,$authparam,$first,$middle,$last,$gene,$pid,$usec,$end,$start,$emailenc,$cid,\$addresult,\$enrollcount,$linefeed,$logmsg);                          &execute_add($context,'newstudent',$uname,$dom,$auth,$authparam,$first,$middle,$last,$gene,$pid,$usec,$end,$start,$emailenc,$cid,\$addresult,\$enrollcount,$linefeed,$logmsg);
                     }                      }
Line 388  sub update_LC { Line 377  sub update_LC {
                             push @saved,$uname;                              push @saved,$uname;
                         }                          }
                     } elsif (@saved == 0) {                      } elsif (@saved == 0) {
                         my $drop_reply = &Apache::lonnet::modifystudent($dom,$uname,'','','',undef,undef,undef,undef,$$currlist{$uname}[$sec],time,undef,undef,undef,undef,'auto','',$cid);                          my $drop_reply = &Apache::lonnet::modifystudent($dom,$uname,'','','',undef,undef,undef,undef,$$currlist{$uname}[$sec],time,undef,undef,undef,undef,'auto','',$cid,'',$context);
                         if ($drop_reply !~ /^ok/) {                          if ($drop_reply !~ /^ok/) {
                             $$logmsg .= &mt('An error occured during the attempt to expire the [_1] from the old section [_2] - [_3].',$uname,$$currlist{$uname}[$sec],$drop_reply).$linefeed;                              $$logmsg .= &mt('An error occured during the attempt to expire the [_1] from the old section [_2] - [_3].',$uname,$$currlist{$uname}[$sec],$drop_reply).$linefeed;
                         } else {                          } else {
                             $dropcount ++;                              $dropcount ++;
                             my %userenv = &Apache::lonnet::get('environment',['firstname','lastname','id'],$dom,$uname);                              my %userenv = &Apache::lonnet::get('environment',['firstname','lastname','id'],$dom,$uname);
                             $dropresult .= $userenv{'firstname'}." ".$userenv{'lastname'}." (".$userenv{'id'}.") - ".$uname.' '.&mt("dropped from section/group: '[_1]'.",$$currlist{$uname}[$sec]).$linefeed;                               $dropresult .= $userenv{'firstname'}." ".$userenv{'lastname'}." (".$userenv{'id'}.") - ".$uname.' '.&mt("dropped from section: '[_1]'.",$$currlist{$uname}[$sec]).$linefeed; 
                             if ($context eq 'automated') {                              if ($context eq 'automated') {
                                 $$logmsg .= &mt('User [_1] student role expired from course.',$uname).$linefeed;                                  $$logmsg .= &mt('User [_1] student role expired from course.',$uname).$linefeed;
                             }                              }
Line 520  sub create_newuser { Line 509  sub create_newuser {
                 $outcome = $result;                  $outcome = $result;
             }              }
         } else {          } else {
             $outcome=&Apache::lonnet::modifystudent($udom,$uname,$pid,$auth,$authparam,$first,$middle,$last,$gene,$usec,$end,$start,'',undef,$emailaddr,'auto','',$cid);              $outcome=&Apache::lonnet::modifystudent($udom,$uname,$pid,$auth,$authparam,$first,$middle,$last,$gene,$usec,$end,$start,'',undef,$emailaddr,'auto','',$cid,'',$called_context);
         }          }
         if ($outcome eq 'ok') {          if ($outcome eq 'ok') {
             my $access = &showaccess($end,$start);              my $access = &showaccess($end,$start);
Line 528  sub create_newuser { Line 517  sub create_newuser {
             if ($usec eq '') {              if ($usec eq '') {
                 $showsec = &mt('none');                  $showsec = &mt('none');
             }              }
             $$addresult .= "$first $last ($pid) - $uname ".&mt("enrolled in section/group: '[_1]'.",$showsec).$access.$linefeed;              $$addresult .= "$first $last ($pid) - $uname ".&mt("enrolled in section: '[_1]'.",$showsec).$access.$linefeed;
             unless ($context eq 'createowner' || $context eq 'createcourse') {              unless ($context eq 'createowner' || $context eq 'createcourse') {
                 $$enrollcount ++;                  $$enrollcount ++;
             }              }
Line 691  sub execute_add { Line 680  sub execute_add {
     }      }
                                                                                                                                                                       
 # Assign the role of student in the course.  # Assign the role of student in the course.
     my $classlist_reply = &Apache::lonnet::modify_student_enrollment($dom,$uname,$pid,$first,$middle,$last,$gene,$usec,$end,$start,'auto','',$cid);      my $classlist_reply = &Apache::lonnet::modify_student_enrollment($dom,$uname,$pid,$first,$middle,$last,$gene,$usec,$end,$start,'auto','',$cid,'',$context);
     if ($classlist_reply eq 'ok') {      if ($classlist_reply eq 'ok') {
         my $access = &showaccess($end,$start);          my $access = &showaccess($end,$start);
         my $showsec = $usec;          my $showsec = $usec;
Line 699  sub execute_add { Line 688  sub execute_add {
             $showsec = &mt('none');              $showsec = &mt('none');
         }          }
         if ($caller eq 'switchtype') {          if ($caller eq 'switchtype') {
             $$logmsg .= &mt("Existing user [_1] detected in institutional classlist - switched from 'manual' to 'auto' enrollment in section/group [_2].",$uname,$showsec).$access.$linefeed;              $$logmsg .= &mt("Existing user [_1] detected in institutional classlist - switched from 'manual' to 'auto' enrollment in section [_2].",$uname,$showsec).$access.$linefeed;
         } elsif ($caller eq 'newstudent') {          } elsif ($caller eq 'newstudent') {
             $$enrollcount ++;              $$enrollcount ++;
             $$addresult .= "$first $last ($pid) - $uname ".&mt("enrolled in section/group '[_1]'.",$showsec).$access.$linefeed;              $$addresult .= "$first $last ($pid) - $uname ".&mt("enrolled in section '[_1]'.",$showsec).$access.$linefeed;
         }          }
         if ($context eq 'automated') {          if ($context eq 'automated') {
             $$logmsg .= &mt('Existing [_1] user [_2] enrolled successfully.',$dom,$uname).$linefeed;              $$logmsg .= &mt('Existing [_1] user [_2] enrolled successfully.',$dom,$uname).$linefeed;
Line 860  sub get_courseinfo { Line 849  sub get_courseinfo {
     return;      return;
 }  }
   
 sub CL_autharg { return 0; }  sub place_hash {
 sub CL_authtype { return 1;}      my %place = (
 sub CL_email { return 2;}                    autharg   => 0,
 sub CL_enddate { return 3;}                    authtype  => 1,
 sub CL_firstname { return 4;}                    email     => 2,
 sub CL_generation { return 5;}                    enddate   => 3,
 sub CL_groupID { return 6;}                    firstname => 4,
 sub CL_lastname { return 7;}                    generation => 5,
 sub CL_middlename { return 8;}                    groupID    => 6,
 sub CL_startdate { return 9; }                    lastname   => 7,
 sub CL_studentID { return 10; }                    middlename => 8,
                     startdate  => 9,
                     studentID  => 10,
                   );
       return %place;
   }
   
 sub photo_response_types {  sub photo_response_types {
     my %lt = &Apache::lonlocal::texthash(      my %lt = &Apache::lonlocal::texthash(

Removed from v.1.37  
changed lines
  Added in v.1.39


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