[LON-CAPA-cvs] cvs: loncom /enrollment Autoenroll.pl Enrollment.pm /interface lonpopulate.pm

raeburn raeburn at source.lon-capa.org
Fri Mar 1 00:21:17 EST 2013


raeburn		Fri Mar  1 05:21:17 2013 EDT

  Modified files:              
    /loncom/enrollment	Enrollment.pm Autoenroll.pl 
    /loncom/interface	lonpopulate.pm 
  Log:
  - Set institutional status when auto-enrollment adds a new LON-CAPA user.
  - Store credits earned for a course in classlist.db for students for whom 
    credits are different from course default.
  - Credits can be part of XML record for each student in course roster
    retrieved from institutional data course via customized localenroll.pm 
  
  
-------------- next part --------------
Index: loncom/enrollment/Enrollment.pm
diff -u loncom/enrollment/Enrollment.pm:1.43 loncom/enrollment/Enrollment.pm:1.44
--- loncom/enrollment/Enrollment.pm:1.43	Fri Aug 20 21:44:59 2010
+++ loncom/enrollment/Enrollment.pm	Fri Mar  1 05:20:01 2013
@@ -1,5 +1,5 @@
 # Automated Enrollment manager
-# $Id: Enrollment.pm,v 1.43 2010/08/20 21:44:59 raeburn Exp $
+# $Id: Enrollment.pm,v 1.44 2013/03/01 05:20:01 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -38,7 +38,9 @@
 use strict;
 
 sub update_LC {
-    my ($dom,$crs,$adds,$drops,$startdate,$enddate,$authtype,$autharg,$classesref,$groupref,$logmsg,$newusermsg,$context,$phototypes) = @_; 
+    my ($dom,$crs,$adds,$drops,$startdate,$enddate,$authtype,$autharg,
+        $showcredits,$defaultcredits,$classesref,$groupref,$logmsg,$newusermsg,
+        $context,$phototypes) = @_;
 # Get institutional code and title of this class
     my %courseinfo = ();
     &get_courseinfo($dom,$crs,\%courseinfo);
@@ -53,6 +55,7 @@
     my $status=&Apache::loncoursedata::CL_STATUS;
     my $type=&Apache::loncoursedata::CL_TYPE;
     my $lockedtype=&Apache::loncoursedata::CL_LOCKEDTYPE;
+    my $credidx=&Apache::loncoursedata::CL_CREDITS;
     my @localstudents = ();
     my @futurestudents = ();
     my @activestudents = ();
@@ -203,7 +206,16 @@
         unless ($uname eq '') {
             my %uidhash=&Apache::lonnet::idrget($dom,$uname);
             my @stuinfo = @{$enrollinfo{$uname}};
-            my $access = '';
+            my ($access,$added,$inststatus);
+            my $credits;
+            if ($showcredits) {
+                $credits = $stuinfo[$place{'credits'}];
+                $credits =~ s/[^\d\.]//g;
+                if ($credits eq $defaultcredits) {
+                    undef($credits);
+                }
+            }
+            $inststatus = $stuinfo[$place{inststatus}];
             if (grep/^$uname$/, at localstudents) {
 # Check for studentID changes
                 if ( ($uidhash{$uname}) && ($uidhash{$uname} !~ /error\:/) )  {
@@ -231,25 +243,31 @@
                             if ($usec eq '') {
                                 $showsec = &mt('none');
                             }
-                            $switchresult .= &mt("Section for [_1] switched from '[_2]' to '[_3]'.",$uname,$showoldsec,$showsec).$linefeed;
+                            $switchresult .= &mt('Section for [_1] switched from [_2] to [_3].',$uname,$showoldsec,$showsec).$linefeed;
                             if ($context eq 'automated') {
-                                $$logmsg .= &mt("Section switch for [_1] from '[_2]' to '[_3]'.",$uname,$showoldsec,$usec).$linefeed;
+                                $$logmsg .= &mt('Section switch for [_1] from [_2] to [_3].',$uname,$showoldsec,$usec).$linefeed;
                             }
                             $switchcount ++;
                         }
-                        &execute_add($context,'switchtype',$uname,$dom,$auth,$authparam,$first,$middle,$last,$gene,$pid,$usec,$end,$start,$emailenc,$cid,\$addresult,\$enrollcount,$linefeed,$logmsg);
+                        &execute_add($context,'switchtype',$uname,$dom,$auth,
+                                     $authparam,$first,$middle,$last,$gene,
+                                     $pid,$usec,$end,$start,$emailenc,
+                                     $credits,$cid,\$addresult,\$enrollcount,
+                                     $linefeed,$logmsg);
+                        $added = 1;
                     }
-                } 
+                }
 # Check for section changes
                 if ($$currlist{$uname}[$sec] eq $stuinfo[ $place{groupID} ]) {
 # Check for access date changes for students with access starting in the future.
                     if ( (grep/^$uname$/, at futurestudents) && ($$currlist{$uname}[$type] eq "auto") && ($adds == 1) ) {
                         my $datechange = &datechange_check($$currlist{$uname}[$cstart],$$currlist{$uname}[$cend],$startdate,$enddate);
                         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,'',$context);
+                            my $modify_access_result = &Apache::lonnet::modify_student_enrollment($dom,$uname,undef,undef,undef,undef,undef,$stuinfo[ $place{groupID} ],$enddate,$startdate,'auto','',$cid,'',$context,$credits);
                             $access = &showaccess($enddate,$startdate);
                             if ($modify_access_result =~ /^ok/) {
                                 $$logmsg .= &mt('Change in access dates for [_1].',$uname).$access.$linefeed;
+                                $added = 1;
                             } else {
                                 $$logmsg .= &mt('Error when attempting to change start and/or end access dates for [_1] in section: [_2] -error [_3].',$uname,$stuinfo[$place{groupID}],$modify_access_result).$linefeed;
                             }
@@ -268,15 +286,16 @@
                         if ($expire_role_result eq 'ok') {
                             my $modify_section_result;
                             if (grep/^$uname$/, at 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,'',$context);
+                                $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,$credits);
                             } else {
-                                $modify_section_result =  &Apache::lonnet::modify_student_enrollment($dom,$uname,undef,undef,undef,undef,undef,$stuinfo[ $place{groupID} ],$enddate,$startdate,'auto','',$cid,'',$context);
+                                $modify_section_result =  &Apache::lonnet::modify_student_enrollment($dom,$uname,undef,undef,undef,undef,undef,$stuinfo[ $place{groupID} ],$enddate,$startdate,'auto','',$cid,'',$context,$credits);
                                 $access =  &showaccess($enddate,$startdate);
                             }
                             if ($modify_section_result =~ /^ok/) {
-                                $switchresult .= &mt("Section for [_1] switched from old section: '[_2]' to new section: '[_3]'.",$uname,$$currlist{$uname}[$sec],$stuinfo[ $place{groupID} ]).$access.$linefeed;
+                                $switchresult .= &mt('Section for [_1] switched from old section: [_2] to new section: [_3].',$uname,$$currlist{$uname}[$sec],$stuinfo[ $place{groupID} ]).$access.$linefeed;
+                                $added = 1;
                                 if ($context eq 'automated') {
-                                    $$logmsg .= &mt('Section switch for [_1] from [_2] to [_3]',$uname,$$currlist{$uname}[$sec],$stuinfo[ $place{groupID} ]).$linefeed;
+                                    $$logmsg .= &mt('Section switch for [_1] from [_2] to [_3].',$uname,$$currlist{$uname}[$sec],$stuinfo[ $place{groupID} ]).$linefeed;
                                 }
                                 $switchcount ++;
                             } else {
@@ -287,6 +306,21 @@
                         }
                     }
                 }
+# Check for credits changes
+                if (($showcredits) && 
+                    ($$currlist{$uname}[$credidx] ne $credits) && (!$added)) {
+                    my $modify_credits_result =
+                        &Apache::lonnet::modify_student_enrollment($dom,$uname,undef,undef,undef,undef,undef,$stuinfo[ $place{groupID} ],$enddate,$startdate,'auto','',$cid,'',$context,$credits);
+                    if ($modify_credits_result =~ /^ok/) {
+                        if ($credits ne '') {
+                            $$logmsg .= &mt('Credits change for [_1] from [_2] to [_3].',$uname,$$currlist{$uname}[$credidx],$credits).$linefeed;
+                        } else {
+                            $$logmsg .= &mt('Credits change for [_1] from [_2] to course default [_3].',$uname,$$currlist{$uname}[$credidx],$defaultcredits).$linefeed;
+                        }
+                    } else {
+                        $$logmsg .= &mt('Error when attempting to change credits for [_1] in section: [_2] -error [_3].',$uname,$stuinfo[$place{groupID}],$modify_credits_result).$linefeed;
+                    }
+                }
             } else {
 # Check for changed usernames by checking studentIDs
                 if ( ($stuinfo[ $place{studentID} ] ne '') && (grep/^$stuinfo[ $place{studentID} ]$/, at LCids) ) {
@@ -302,7 +336,7 @@
                         $$logmsg .= &mt('Because of this student/employee ID conflict, the new username - [_1] - has not been added to the LON-CAPA classlist',$uname).$linefeed;
                     }
                 } elsif ($adds == 1) {
-                    my ($auth,$authparam,$first,$middle,$last,$gene,$usec,$end,$start,$emailaddr,$pid,$emailenc);
+                    my ($auth,$authparam,$first,$middle,$last,$gene,$usec,$end,$start,$emailaddr,$pid,$emailenc,$credithours);
                     &prepare_add($authtype,$autharg,$enddate,$startdate,\@stuinfo,\%place,\$dom,\$uname,\$auth,\$authparam,\$first,\$middle,\$last,\$gene,\$usec,\$end,\$start,\$emailaddr,\$pid,\$emailenc);
 # Check for existing account in this LON-CAPA domain for this username
                     my $uhome=&Apache::lonnet::homeserver($uname,$dom);
@@ -326,11 +360,19 @@
                                     'cdom' => $dom,
                                     'context' => $context,
                                     'linefeed' => $linefeed,
-                                    'role' => 'st'
+                                    'inststatus' => $inststatus,
+                                    'role' => 'st',
                                    };
+                        if ($credits) {
+                            $args->{'credits'} = $credits;
+                        }
                         my $outcome = &create_newuser($args,$logmsg,$newusermsg,\$enrollcount,\$addresult,\%longroles,\%courseinfo,$context);
                     } 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,$credits,
+                                     $cid,\$addresult,\$enrollcount,$linefeed,
+                                     $logmsg);
                     }
                     if ($courseinfo{'showphoto'}) {
                         my ($result,$resulttype) = 
@@ -473,6 +515,8 @@
     my $context = $args->{'context'};
     my $linefeed = $args->{'linefeed'};
     my $role = $args->{'role'};
+    my $inststatus = $args->{'inststatus'};
+    my $credits = $args->{'credits'};
     my $create_passwd = 0;
     my $authchk = '';
     my $outcome;
@@ -517,7 +561,7 @@
                 $outcome = $result;
             }
         } else {
-            $outcome=&Apache::lonnet::modifystudent($udom,$uname,$pid,$auth,$authparam,$first,$middle,$last,$gene,$usec,$end,$start,'',undef,$emailaddr,'auto','',$cid,'',$called_context);
+            $outcome=&Apache::lonnet::modifystudent($udom,$uname,$pid,$auth,$authparam,$first,$middle,$last,$gene,$usec,$end,$start,'',undef,$emailaddr,'auto','',$cid,'',$called_context,$inststatus,$credits);
         }
         if ($outcome eq 'ok') {
             my $access = &showaccess($end,$start);
@@ -631,9 +675,11 @@
 }
 
 sub execute_add {
-    my ($context,$caller,$uname,$dom,$auth,$authparam,$first,$middle,$last,$gene,$pid,$usec,$end,$start,$emailenc,$cid,$addresult,$enrollcount,$linefeed,$logmsg) = @_;
+    my ($context,$caller,$uname,$dom,$auth,$authparam,$first,$middle,$last,
+        $gene,$pid,$usec,$end,$start,$emailenc,$credits,$cid,$addresult,
+        $enrollcount,$linefeed,$logmsg) = @_;
 # Get the user's information and authentication
-    my %userenv = &Apache::lonnet::get('environment',['firstname','middlename','lastname','generation','id','critnotification','notification','permanentemail'],$dom,$uname);
+    my %userenv = &Apache::lonnet::get('environment',['firstname','middlename','lastname','generation','id','critnotification','notification','permanentemail','inststatus'],$dom,$uname);
     my ($tmp) = keys(%userenv);
     if ($tmp =~ /^(con_lost|error)/i) {
         %userenv = ();
@@ -702,7 +748,11 @@
     }
                                                                                   
 # 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,'',$context);
+    my $classlist_reply = 
+        &Apache::lonnet::modify_student_enrollment($dom,$uname,$pid,$first,$middle,
+                                                   $last,$gene,$usec,$end,$start,
+                                                   'auto','',$cid,'',$context,
+                                                   $credits);
     if ($classlist_reply eq 'ok') {
         my $access = &showaccess($end,$start);
         my $showsec = $usec;
@@ -765,7 +815,7 @@
     my $xmlfile = $tmpdir."/tmp/".$dom."_".$crs."_".$class."_classlist.xml";
     my $uname = '';
     my @state;
-    my @items = ('autharg','authtype','email','firstname','generation','lastname','middlename','studentID');
+    my @items = ('autharg','authtype','email','firstname','generation','lastname','middlename','studentID','credits','inststatus');
     my $p = HTML::Parser->new
     (
         xml_mode => 1,
@@ -856,7 +906,7 @@
     my ($dom,$crs,$courseinfo) = @_;
     my $owner;
     if (defined($dom) && defined($crs)) {
-        my %settings = &Apache::lonnet::get('environment',['internal.coursecode','internal.showphoto','description'],$dom,$crs);
+        my %settings = &Apache::lonnet::get('environment',['internal.coursecode','internal.showphoto','description','internal.defaultcredits'],$dom,$crs);
         if ( defined($settings{'internal.coursecode'}) ) {
             $$courseinfo{'inst_code'} = $settings{'internal.coursecode'};
         }
@@ -866,6 +916,9 @@
         if ( defined($settings{'internal.showphoto'}) ) {
             $$courseinfo{'showphoto'} = $settings{'internal.showphoto'};
         }
+        if ( defined($settings{'internal.credithours'}) ) {
+            $$courseinfo{'defaultcredits'} = $settings{'internal.defaultcredits'};
+        }
     }
     return;
 }
@@ -883,6 +936,8 @@
                   middlename => 8,
                   startdate  => 9,
                   studentID  => 10,
+                  credits    => 11,
+                  inststatus => 12,
                 );
     return %place;
 }
Index: loncom/enrollment/Autoenroll.pl
diff -u loncom/enrollment/Autoenroll.pl:1.32 loncom/enrollment/Autoenroll.pl:1.33
--- loncom/enrollment/Autoenroll.pl:1.32	Thu Aug 19 22:36:59 2010
+++ loncom/enrollment/Autoenroll.pl	Fri Mar  1 05:20:01 2013
@@ -1,7 +1,7 @@
 #!/usr/bin/perl
 #
 #Automated Enrollment script
-# $Id: Autoenroll.pl,v 1.32 2010/08/19 22:36:59 raeburn Exp $
+# $Id: Autoenroll.pl,v 1.33 2013/03/01 05:20:01 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -54,7 +54,7 @@
         my $run_enroll = 0;
         my $domsettings;
         my %domconfig =
-            &Apache::lonnet::get_dom('configuration',['autoenroll'],$dom);
+            &Apache::lonnet::get_dom('configuration',['autoenroll','coursedefaults'],$dom);
         if (ref($domconfig{'autoenroll'}) eq 'HASH') {
             $domsettings = $domconfig{'autoenroll'};
             if ($domsettings->{'run'} eq '1') {
@@ -74,6 +74,14 @@
         my %enrollvar = ();
         my %reply = ();
         my %LC_code = ();
+        my ($showcredits,$domdefcredits);
+        if ((ref($domconfig{'coursedefaults'}) eq 'HASH') &&
+            (ref($domconfig{'coursedefaults'}{'coursecredits'}) eq 'HASH')) {
+            if ($domconfig{'coursedefaults'}{'coursecredits'}{'official'}) {
+                $showcredits = 1;
+                $domdefcredits = $domconfig{'coursedefaults'}{'coursecredits'}{'official'};
+            }
+        }
         foreach my $key (sort keys %courses) {
             my %args = (
                          one_time => 1,
@@ -92,7 +100,7 @@
                     $enrollvar{$crs}{$item} = &HTML::Entities::decode($settings{$item});  
                 } elsif ($item eq 'default_enrollment_start_date') {
                     $enrollvar{$crs}{startdate} = $settings{$item};
-                }  elsif ($item eq 'default_enrollment_end_date') {
+                } elsif ($item eq 'default_enrollment_end_date') {
                     $enrollvar{$crs}{enddate} = $settings{$item};
                 }
             }
@@ -148,7 +156,11 @@
             if ($reply{$crs} > 0) {
                 if ( ($enrollvar{$crs}{autostart} < $timenow) && ( ($enrollvar{$crs}{autoend} > $timenow) || ($enrollvar{$crs}{autoend} == 0) ) ) {
                     if (($enrollvar{$crs}{autoadds} == 1) || ($enrollvar{$crs}{autodrops} == 1)) {
-                        my ($changecount,$response) = &LONCAPA::Enrollment::update_LC($dom,$crs,$enrollvar{$crs}{autoadds},$enrollvar{$crs}{autodrops},$enrollvar{$crs}{startdate},$enrollvar{$crs}{enddate},$enrollvar{$crs}{authtype},$enrollvar{$crs}{autharg},$affiliates{$crs},$LC_code{$crs},\$logmsg,\$newusermsg,'automated');
+                        my $defaultcredits = $domdefcredits;
+                        if ($enrollvar{$crs}{defaultcredits}) {
+                            $defaultcredits = $enrollvar{$crs}{defaultcredits};
+                        }
+                        my ($changecount,$response) = &LONCAPA::Enrollment::update_LC($dom,$crs,$enrollvar{$crs}{autoadds},$enrollvar{$crs}{autodrops},$enrollvar{$crs}{startdate},$enrollvar{$crs}{enddate},$enrollvar{$crs}{authtype},$enrollvar{$crs}{autharg},$showcredits,$defaultcredits,$affiliates{$crs},$LC_code{$crs},\$logmsg,\$newusermsg,'automated');
                         print $fh &mt('Messages start for [_1]',$crs)."\n";
                         print $fh "$logmsg\n";
                         print $fh &mt('Messages end for [_1]',$crs)."\n";
Index: loncom/interface/lonpopulate.pm
diff -u loncom/interface/lonpopulate.pm:1.75 loncom/interface/lonpopulate.pm:1.76
--- loncom/interface/lonpopulate.pm:1.75	Fri Mar  1 05:10:09 2013
+++ loncom/interface/lonpopulate.pm	Fri Mar  1 05:21:17 2013
@@ -1,5 +1,5 @@
 # automated enrollment configuration handler
-# $Id: lonpopulate.pm,v 1.75 2013/03/01 05:10:09 raeburn Exp $
+# $Id: lonpopulate.pm,v 1.76 2013/03/01 05:21:17 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -2726,12 +2726,25 @@
     my %settings = 
         &Apache::lonnet::get('environment',
             ['internal.coursecode','internal.sectionnums','internal.crosslistings',
-             'internal.authtype','internal.autharg','internal.showphoto'],
+             'internal.authtype','internal.autharg','internal.showphoto','internal.defaultcredits'],
             $dom,$crs);
     my $coursecode = $settings{'internal.coursecode'};
     my $authtype = $settings{'internal.authtype'};
     my $autharg = $settings{'internal.autharg'};
     my $showphotos = $settings{'internal.showphoto'};
+    my ($showcredits,$defaultcredits);
+    my %domdefaults = &Apache::lonnet::get_domain_defaults($dom);
+    if ($domdefaults{'officialcredits'} || $domdefaults{'unofficialcredits'}) {
+        $showcredits = 1;
+        $defaultcredits = $settings{'internal.defaultcredits'};
+        if ($defaultcredits eq '') {
+            if ($coursecode ne '') {
+                $defaultcredits = $domdefaults{'officialcredits'};   
+            } else {
+                $defaultcredits = $domdefaults{'unofficialcredits'};
+            }
+        }
+    }
     my ($startaccess,$endaccess) = &get_dates_from_form();
     if ( exists($env{'form.updateadds'}) ) {
         $updateadds = $env{'form.updateadds'};
@@ -2766,7 +2779,7 @@
                                  ": ".$outcome);
             }
 	    if ($reply{$crs} > 0) {
-		($changecount,$response) = &LONCAPA::Enrollment::update_LC($dom,$crs,$updateadds,$updatedrops,$startaccess,$endaccess,$authtype,$autharg,\@allcourses,\%LC_code,\$logmsg,\$newusermsg,"updatenow",\%phototypes);
+		($changecount,$response) = &LONCAPA::Enrollment::update_LC($dom,$crs,$updateadds,$updatedrops,$startaccess,$endaccess,$authtype,$autharg,$showcredits,$defaultcredits,\@allcourses,\%LC_code,\$logmsg,\$newusermsg,"updatenow",\%phototypes);
 	    } else {
 		$response = &mt('There was a problem retrieving institutional class list data for the course sections and crosslisted courses which contribute enrollment to this course.').' '.
                             &mt('No updates have been carried out, and the roster remains unchanged.');
@@ -2811,6 +2824,7 @@
     my $secidx=&Apache::loncoursedata::CL_SECTION;
     my $typeidx=&Apache::loncoursedata::CL_TYPE;
     my $lockedidx=&Apache::loncoursedata::CL_LOCKEDTYPE;
+    my $creditsidx=&Apache::loncoursedata::CL_CREDITS;
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                ['chgauto','chgmanual','lockchg','unlockchg']);
     my @typechglist = (&Apache::loncommon::get_env_multiple('form.chgauto'),
@@ -2818,7 +2832,7 @@
     my @lockchglist = (&Apache::loncommon::get_env_multiple('form.lockchg'),
 		       &Apache::loncommon::get_env_multiple('form.unlockchg'));
 
-    foreach my $student (sort @typechglist) {
+    foreach my $student (sort(@typechglist)) {
         my ($uname,$udom) = split(/:/,$student);
         my $sdata    = $classlist->{$student};
         my $section  = $sdata->[$secidx];
@@ -2827,6 +2841,7 @@
         my $end      = $sdata->[$endidx];
         my $type     = $sdata->[$typeidx];
         my $lock   = $sdata->[$lockedidx];
+        my $credits = $sdata->[$creditsidx];
         my $newlock = $lock;
         $chgtotal ++;
         my $newtype = 'auto';
@@ -2843,7 +2858,12 @@
             } elsif ($newtype eq '') {
                 $newlock = '1';
             }
-            my $modreply = &Apache::lonnet::modify_student_enrollment($udom,$uname,$uid,'','','','',$section,$end,$start,$newtype,$newlock,$cid,'','chgtype');
+            my $modreply = 
+                &Apache::lonnet::modify_student_enrollment($udom,$uname,$uid,'',
+                                                           '','','',$section,$end,
+                                                           $start,$newtype,
+                                                           $newlock,$cid,'',
+                                                           'chgtype',$credits);
             if ($modreply eq 'ok') {
                 $chgok ++;
                 $chg{$student} = &mt("Changed to $change");
@@ -2865,6 +2885,7 @@
         my $end      = $sdata->[$endidx];
         my $type     = $sdata->[$typeidx];
         my $lock   = $sdata->[$lockedidx];
+        my $credits = $sdata->[$creditsidx];
         my $newlock = 1;
         my $oldlockname = &mt('unlocked');
         my $newlockname = &mt('locked');
@@ -2875,7 +2896,7 @@
                 $newlockname = &mt('unlocked');
                 $oldlockname = &mt('locked'); 
             }
-            my $lockreply = &Apache::lonnet::modify_student_enrollment($udom,$uname,$uid,'','','','',$section,$end,$start,$type,$newlock,$cid,'','chgtype');
+            my $lockreply = &Apache::lonnet::modify_student_enrollment($udom,$uname,$uid,'','','','',$section,$end,$start,$type,$newlock,$cid,'','chgtype',$credits);
             if ($lockreply eq 'ok') {
                 $lockok ++;
                 $lockchg{$student} = &mt('Changed to [_1]',$newlockname);


More information about the LON-CAPA-cvs mailing list