--- loncom/interface/loncoursequeueadmin.pm 2013/12/24 19:15:10 1.38 +++ loncom/interface/loncoursequeueadmin.pm 2013/12/25 09:52:42 1.39 @@ -1,7 +1,7 @@ # The LearningOnline Network # Utilities to administer domain course requests and course self-enroll requests # -# $Id: loncoursequeueadmin.pm,v 1.38 2013/12/24 19:15:10 raeburn Exp $ +# $Id: loncoursequeueadmin.pm,v 1.39 2013/12/25 09:52:42 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -224,6 +224,11 @@ sub send_selfserve_notification { if (ref($textstr) eq 'ARRAY') { push(@rawmsg,@{$textstr}); } + } elsif ($context eq 'uniquecode') { + $rawsubj = 'Course Identifier'; + if (ref($textstr) eq 'ARRAY') { + push(@rawmsg,@{$textstr}); + } } my @to_notify = split(/,/,$notifylist); my $numsent = 0; @@ -534,7 +539,7 @@ sub update_request_queue { @processing_errors,@warn_approves,@warn_rejects,@approvals,@warn_dels, @rejections,@rejectionerrors,@nopermissions,%courseroles,@toremove, %communityroles,%domdefs,%approvalmsg,%rejectionmsg,$crstype,$queue, - $firsturl); + $firsturl,$uniquecode,%codes); my $count=0; while (my @course = &Apache::loncommon::get_env_multiple('form.'.$count.'radioreq')) { if ($course[0] =~ /^\d+:.*/) { @@ -609,6 +614,9 @@ sub update_request_queue { if (ref($domconfig{'requestcourses'}{'notify'}) eq 'HASH') { $notifylist = $domconfig{'requestcourses'}{'notify'}{'approval'}; } + if ($domconfig{'requestcourses'}{'uniquecode'}) { + $uniquecode = 1; + } } $approvalmsg{'course'} = [{ @@ -784,10 +792,10 @@ sub update_request_queue { $ownerdom,$ownername); if ((ref($history{'details'}) eq 'HASH') && ($history{'disposition'} eq $queue)) { - my ($logmsg,$newusermsg,$addresult,$enrollcount,$response,$keysmsg); + my ($logmsg,$newusermsg,$addresult,$enrollcount,$response,$keysmsg,$code); my $result = &course_creation($cdom,$cnum,$context,$history{'details'},\$logmsg, \$newusermsg,\$addresult,\$enrollcount, - \$response,\$keysmsg,\%domdefs,$longroles); + \$response,\$keysmsg,\%domdefs,$longroles,\$code); if ($result eq 'created') { if ($crstype eq 'community') { $approvedmsg = $approvalmsg{'community'}; @@ -799,6 +807,14 @@ sub update_request_queue { if (ref($approvedmsg->[1]) eq 'HASH') { $approvedmsg->[1]->{'args'} = [$firsturl]; } + if ($code) { + push(@{$approvedmsg}, + { + mt => 'Students can automatically select your course by entering this code: [_1]', + args => [$code], + }); + $codes{$cnum} = $code; + } } push(@completed,$cnum); @@ -1048,6 +1064,9 @@ sub update_request_queue { } my $syllabuslink = &Apache::loncommon::syllabuswrapper($showcourse,$cnum,$cdom); + if ($uniquecode && $codes{$cnum}) { + $syllabuslink .= &mt('Unique code: [_1]',$codes{$cnum}); + } $output .= '
  • '.$syllabuslink.'
  • '; } $output .= '

    '; @@ -1309,7 +1328,7 @@ sub get_student_counts { sub course_creation { my ($dom,$cnum,$context,$details,$logmsg,$newusermsg,$addresult,$enrollcount,$output, - $keysmsg,$domdefs,$longroles) = @_; + $keysmsg,$domdefs,$longroles,$coderef) = @_; unless ((ref($details) eq 'HASH') && (ref($domdefs) eq 'HASH') && (ref($longroles) eq 'HASH')) { return 'error: Invalid request'; @@ -1332,7 +1351,7 @@ sub course_creation { my %reqdetails = &build_batchcreatehash($dom,$context,$details,$owneremail,$domdefs); my $cid = &LONCAPA::batchcreatecourse::build_course($dom,$cnum,'requestcourses', \%reqdetails,$longroles,$logmsg,$newusermsg,$addresult, - $enrollcount,$output,$keysmsg,$ownerdom,$ownername,$cnum,$crstype); + $enrollcount,$output,$keysmsg,$ownerdom,$ownername,$cnum,$crstype,$coderef); if ($cid eq "/$dom/$cnum") { $result = 'created'; } else { @@ -1344,7 +1363,7 @@ sub course_creation { 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}; + my @items = qw{owner domain coursehome clonecrs clonedom datemode dateshift enrollstart enrollend accessstart accessend sections crosslists users uniquecode}; if ((ref($details) eq 'HASH') && (ref($domdefs) eq 'HASH')) { my $emailenc = &escape($owneremail); my $owner = $details->{'owner'}.':'.$details->{'domain'}; @@ -1700,8 +1719,8 @@ sub process_official_reqs { } $reqstatus = $disposition; if ($disposition eq 'process') { - my ($logmsg,$newusermsg,$addresult,$enrollcount,$response,$keysmsg); - my $result = &course_creation($dom,$cnum,'domain',$history{'details'},\$logmsg,\$newusermsg,\$addresult,\$enrollcount,\$response,\$keysmsg,\%domdefs,\%longroles); + my ($logmsg,$newusermsg,$addresult,$enrollcount,$response,$keysmsg,$code); + my $result = &course_creation($dom,$cnum,'domain',$history{'details'},\$logmsg,\$newusermsg,\$addresult,\$enrollcount,\$response,\$keysmsg,\%domdefs,\%longroles,\$code); if ($result eq 'created') { $disposition = 'created'; $reqstatus = 'created';