--- loncom/interface/loncoursequeueadmin.pm 2009/11/18 19:15:45 1.12 +++ loncom/interface/loncoursequeueadmin.pm 2009/12/20 02:05:57 1.12.2.3 @@ -1,7 +1,7 @@ # The LearningOnline Network # Utilities to administer domain course requests and course self-enroll requests # -# $Id: loncoursequeueadmin.pm,v 1.12 2009/11/18 19:15:45 raeburn Exp $ +# $Id: loncoursequeueadmin.pm,v 1.12.2.3 2009/12/20 02:05:57 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -366,7 +366,8 @@ sub update_request_queue { @existing,@missingreq,@invalidusers,@limitexceeded,@completed, @processing_errors,@warn_approves,@warn_rejects,@approvals, @rejections,@rejectionerrors,@nopermissions,%courseroles, - %communityroles,%domdefs,%approvalmsg,%rejectionmsg,$crstype); + %communityroles,%domdefs,%approvalmsg,%rejectionmsg,$crstype, + @warn_coursereqs); @approvals = &Apache::loncommon::get_env_multiple('form.approvereq'); @rejections = &Apache::loncommon::get_env_multiple('form.rejectreq'); $now = time; @@ -455,7 +456,10 @@ sub update_request_queue { my $uhome = &Apache::lonnet::homeserver($uname,$udom); if ($uhome ne 'no_host') { if (exists($requesthash{$uname.':'.$udom})) { - + if ($cdom eq 'gci' && $cnum eq '9615072b469884921gcil1') { + my $enresult = &enable_gci_submission($uname,$udom, + $access_start,$access_end); + } if (exists($classlist->{$uname.':'.$udom})) { if (ref($classlist->{$uname.':'.$udom}) eq 'ARRAY') { if (($classlist->{$uname.':'.$udom}->[$idx->{'status'}] eq 'Active') || @@ -501,6 +505,15 @@ sub update_request_queue { &Apache::lonnet::put($namespace,\%userrequest,$udom,$uname); if ($userresult ne 'ok') { push(@warn_approves,$uname.':'.$udom); + } elsif ($udom eq 'gci') { + my %changehash = ( + 'reqcrsotherdom.unofficial' => 'gcitest:autolimit=', + ); + my $reqresult = &Apache::lonnet::put('environment',\%changehash, + $udom,$uname); + if ($reqresult ne 'ok') { + push(@warn_coursereqs,$uname.':'.$udom); + } } } else { push(@processing_errors,$uname.':'.$udom); @@ -885,9 +898,33 @@ sub update_request_queue { $output .= '

'; } } + if (@warn_coursereqs) { + $output .= '

'..&mt("For the following users, an error occurred when setting rights to request creation of Concept Test courses:").'

'; + } return $output; } +sub enable_gci_submission { + my ($udom,$uname,$access_end,$access_start) = @_; + my $cdom = 'gci'; + my $cnum = '1H96711d710194bfegcil1'; + my ($stucounts,$idx,$classlist) = &get_student_counts($cdom,$cnum); + if (exists($classlist->{$uname.':'.$udom})) { + if (ref($classlist->{$uname.':'.$udom}) eq 'ARRAY') { + if (($classlist->{$uname.':'.$udom}->[$idx->{'status'}] eq 'Active') || + ($classlist->{$uname.':'.$udom}->[$idx->{'status'}] eq 'Future')) { + return; + } + } + } + return + &Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,undef,undef,undef,$access_end,$access_start,'selfenroll',undef,$cdom.'_'.$cnum,1); +} + sub get_student_counts { my ($cdom,$cnum) = @_; my (%idx,%stucounts); @@ -944,6 +981,9 @@ sub build_batchcreatehash { my ($dom,$context,$details,$owneremail,$domdefs) = @_; my %batchhash; my @items = qw{owner domain coursehome clonecrs clonedom datemode dateshift enrollstart enrollend accessstart accessend sections crosslists users}; + if ($dom eq 'gcitest') { + push(@items,'firstres'); + } if ((ref($details) eq 'HASH') && (ref($domdefs) eq 'HASH')) { my $emailenc = &Apache::lonnet::escape($owneremail); my $owner = $details->{'owner'}.':'.$details->{'domain'};