[LON-CAPA-cvs] cvs: loncom /interface lonrequestcourse.pm
raeburn
raeburn@source.lon-capa.org
Sat, 15 Aug 2009 01:59:04 -0000
This is a MIME encoded message
--raeburn1250301544
Content-Type: text/plain
raeburn Sat Aug 15 01:59:04 2009 EDT
Modified files:
/loncom/interface lonrequestcourse.pm
Log:
- Changing names of hash keys used in storage of request data for consistency with nomeclature used in details hash in &batchcreatecourse::build_course().
- Adding option to select a course home server if there are multiple library servers in the course's domain.
- Process course sections, crosslisted courses and course personnel into data structures expected by &batchcreatecourse::build_course().
- Institutional status type where no assigned status exists is "default" not "other".
--raeburn1250301544
Content-Type: text/plain
Content-Disposition: attachment; filename="raeburn-20090815015904.txt"
Index: loncom/interface/lonrequestcourse.pm
diff -u loncom/interface/lonrequestcourse.pm:1.12 loncom/interface/lonrequestcourse.pm:1.13
--- loncom/interface/lonrequestcourse.pm:1.12 Wed Aug 12 14:39:23 2009
+++ loncom/interface/lonrequestcourse.pm Sat Aug 15 01:59:04 2009
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Request a course
#
-# $Id: lonrequestcourse.pm,v 1.12 2009/08/12 14:39:23 raeburn Exp $
+# $Id: lonrequestcourse.pm,v 1.13 2009/08/15 01:59:04 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -276,30 +276,33 @@
},
courseinfo => {
cdescr => 'text',
- clonecourse => 'text',
- clonedomain => 'selectbox',
+ clonecrs => 'text',
+ clonedom => 'selectbox',
datemode => 'radio',
dateshift => 'text',
},
enrollment => {
- startaccess_month => 'selectbox',
- startaccess_hour => 'selectbox',
- endaccess_month => 'selectbox',
- endaccess_hour => 'selectbox',
- startaccess_day => 'text',
- startaccess_year => 'text',
- startaccess_minute => 'text',
- startaccess_second => 'text',
- endaccess_day => 'text',
- endaccess_year => 'text',
- endaccess_minute => 'text',
- endaccess_second => 'text',
+ accessstart_month => 'selectbox',
+ accessstart_hour => 'selectbox',
+ accessend_month => 'selectbox',
+ accessend_hour => 'selectbox',
+ accessstart_day => 'text',
+ accessstart_year => 'text',
+ accessstart_minute => 'text',
+ accessstart_second => 'text',
+ accessend_day => 'text',
+ accessend_year => 'text',
+ accessend_minute => 'text',
+ accessend_second => 'text',
no_end_date => 'checkbox',
},
personnel => {
persontotal => 'hidden',
addperson => 'checkbox',
},
+ review => {
+ cnum => 'hidden',
+ },
},
view => {
crstype => {
@@ -308,6 +311,13 @@
},
},
);
+ my %servers = &Apache::lonnet::get_servers($dom,'library');
+ my $numlib = keys(%servers);
+ if ($numlib > 1) {
+ $elements{'new'}{'courseinfo'}{'chome'} = 'selectbox';
+ } else {
+ $elements{'new'}{'courseinfo'}{'chome'} = 'hidden';
+ }
my (@codetitles,%cat_titles,%cat_order,@code_order,$lastitem);
&Apache::lonnet::auto_possible_instcodes($dom,\@codetitles,\%cat_titles,
\%cat_order,\@code_order);
@@ -324,18 +334,18 @@
if (&Apache::lonnet::auto_run('',$dom)) {
my %extras = (
sectotal => 'hidden',
- startenroll_month => 'selectbox',
- startenroll_hour => 'selectbox',
- endenroll_month => 'selectbox',
- endenroll_hour => 'selectbox',
- startenroll_day => 'text',
- startenroll_year => 'text',
- startenroll_minute => 'text',
- startenroll_second => 'text',
- endenroll_day => 'text',
- endenroll_year => 'text',
- endenroll_minute => 'text',
- endenroll_second => 'text',
+ enrollstart_month => 'selectbox',
+ enrollstart_hour => 'selectbox',
+ enrollend_month => 'selectbox',
+ enrollend_hour => 'selectbox',
+ enrollstart_day => 'text',
+ enrollstart_year => 'text',
+ enrollstart_minute => 'text',
+ enrollstart_second => 'text',
+ enrollend_day => 'text',
+ enrollend_year => 'text',
+ enrollend_minute => 'text',
+ enrollend_second => 'text',
crosslisttotal => 'hidden',
addcrosslist => 'checkbox',
autoadds => 'radio',
@@ -376,16 +386,16 @@
$persontotal = 1;
}
for (my $i=0; $i<$persontotal; $i++) {
- $people{'person_'.$i.'_uname'} = 'text',
- $people{'person_'.$i.'_dom'} = 'selectbox',
- $people{'person_'.$i.'_hidedom'} = 'hidden',
- $people{'person_'.$i.'_first'} = 'text',
- $people{'person_'.$i.'_last'} = 'text',
- $people{'person_'.$i.'_email'} = 'text',
- $people{'person_'.$i.'_role'} = 'selectbox',
- $people{'person_'.$i.'_sec'} = 'selectbox',
- $people{'person_'.$i.'_newsec'} = 'text',
- $people{'person_'.$i.'_sections'} = 'hidden',
+ $people{'person_'.$i.'_uname'} = 'text',
+ $people{'person_'.$i.'_dom'} = 'selectbox',
+ $people{'person_'.$i.'_hidedom'} = 'hidden',
+ $people{'person_'.$i.'_firstname'} = 'text',
+ $people{'person_'.$i.'_lastname'} = 'text',
+ $people{'person_'.$i.'_emailaddr'} = 'text',
+ $people{'person_'.$i.'_role'} = 'selectbox',
+ $people{'person_'.$i.'_sec'} = 'selectbox',
+ $people{'person_'.$i.'_newsec'} = 'text',
+ $people{'person_'.$i.'_sections'} = 'hidden',
}
my %personnelhash = (%{$elements{'new'}{'personnel'}},%people);
%{$elements{'new'}{'personnel'}} = %personnelhash;
@@ -707,6 +717,7 @@
\%cat_order,\@code_order);
}
my $result = &print_request_outcome($dom,\@codetitles,\@code_order);
+ $r->print($result);
}
my @excluded = ('counter');
my %elements = &form_elements($dom);
@@ -875,7 +886,7 @@
$persontotal ++;
}
my $userlinktxt = &mt('Set User');
- my @items = ('uname','dom','last','first','email','hidedom');
+ my @items = ('uname','dom','lastname','firstname','emailaddr','hidedom');
my $roleoptions;
my @roles = &Apache::lonuserutils::roles_by_context('course');
@@ -963,9 +974,9 @@
'</span>').
'<table><tr><td align="center" valign="top">'.&mt('Username').'<br />'.$uname_form.'</td>'."\n".
'<td align="center" valign="top" colspan="2">'.&mt('Domain').'<br />'.$udom_form.'</td></tr><tr>'."\n".
- '<td align="center" valign="top">'.&mt('First Name').'<br />'.$form_elems{'first'}.'</td>'."\n".
- '<td align="center" valign="top">'.&mt('Last Name').'<br />'.$form_elems{'last'}.'</td>'."\n".
- '<td align="center" valign="top">'.&mt('E-mail').'<br />'.$form_elems{email}.'</td></tr>'."\n".
+ '<td align="center" valign="top">'.&mt('First Name').'<br />'.$form_elems{'firstname'}.'</td>'."\n".
+ '<td align="center" valign="top">'.&mt('Last Name').'<br />'.$form_elems{'lastname'}.'</td>'."\n".
+ '<td align="center" valign="top">'.&mt('E-mail').'<br />'.$form_elems{'emailaddr'}.'</td></tr>'."\n".
'<tr><td align="center" valign="top">'.&mt('Role').'<br />'.$roleselector.'</td>'."\n".
'<td'.$seccolspan.' align="center" valign="top">'.&mt('Section(s)').'<br />'.$sectionselector.'</td>'."\n".
'</tr></table>'.&Apache::lonhtmlcommon::row_closure();
@@ -996,7 +1007,7 @@
($env{'form.crstype'} eq $crstype));
next unless (($status eq 'approval') || ($status eq 'pending'));
if (ref($requests{$key}{'details'}) eq 'HASH') {
- $entry = $key.':'.$crstype.':'.$requests{$key}{'details'}{'cdesc'};
+ $entry = $key.':'.$crstype.':'.$requests{$key}{'details'}{'cdescr'};
if ($crstype eq 'official') {
$entry .= ':'.$requests{$key}{'details'}{'instcode'};
}
@@ -1116,12 +1127,12 @@
$section_headers = '<th>'.&mt('Sections').'</th>'.
'<th>'.&mt('Crosslistings').'</th>';
- my ($startenroll,$endenroll) = &dates_from_form('startenroll','endenroll');
+ my ($enrollstart,$enrollend) = &dates_from_form('enrollstart','enrollend');
my @autoroster = (&mt('No'),&mt('Yes'));
$enroll_values = '<td>'.$autoroster[$env{'form.autoadds'}].'</td>'.
'<td>'.$autoroster[$env{'form.autodrops'}].'</td>'.
- '<td>'.&Apache::lonlocal::locallocaltime($startenroll).'</td>'.
- '<td>'.&Apache::lonlocal::locallocaltime($endenroll).'</td>';
+ '<td>'.&Apache::lonlocal::locallocaltime($enrollstart).'</td>'.
+ '<td>'.&Apache::lonlocal::locallocaltime($enrollend).'</td>';
$section_values = '<td><table class="LC_innerpickbox"><tr><th>'.
&mt('Institutional section').'</th>'.
'<th>'.&mt('LON-CAPA section').'</th></tr>';
@@ -1177,12 +1188,12 @@
my %ctxt = &clone_text();
$inst_headers .= '<th>'.&mt('Clone From').'</th>';
- if (($env{'form.clonecourse'} =~ /^$match_name$/) &&
- ($env{'form.clonedomain'} =~ /^$match_domain$/)) {
+ if (($env{'form.clonecrs'} =~ /^$match_name$/) &&
+ ($env{'form.clonedom'} =~ /^$match_domain$/)) {
my %coursehash =
- &Apache::lonnet::courseiddump($env{'form.clonedomain'},'.',1,'.','.',
- $env{'form.clonecourse'},undef,undef,'.');
- my $cloneid = $env{'form.clonedomain'}.'_'.$env{'form.clonecourse'};
+ &Apache::lonnet::courseiddump($env{'form.clonedom'},'.',1,'.','.',
+ $env{'form.clonecrs'},undef,undef,'.');
+ my $cloneid = $env{'form.clonedom'}.'_'.$env{'form.clonecrs'};
if (ref($coursehash{$cloneid}) eq 'HASH') {
$inst_headers .= '<th>'.$ctxt{'dsh'}.'</th>';
my $clonedesc = $coursehash{$cloneid}{'description'};
@@ -1190,9 +1201,9 @@
$inst_values .= '<td>'.$clonedesc.' ';
if ($cloneinst ne '') {
- $inst_values .= &mt('([_1] in [_2])',$cloneinst,$env{'form.clonedomain'});
+ $inst_values .= &mt('([_1] in [_2])',$cloneinst,$env{'form.clonedom'});
} else {
- $inst_values .= &mt('(from [_1])',$env{'form.clonedomain'});
+ $inst_values .= &mt('(from [_1])',$env{'form.clonedom'});
}
$inst_values .= '</td><td>';
if ($env{'form.datemode'} eq 'preserve') {
@@ -1211,12 +1222,12 @@
}
$enroll_headers .= '<th>'.&mt('Access Starts').'</th>'.
'<th>'.&mt('Access Ends').'</th>';
- my ($startaccess,$endaccess) = &dates_from_form('startaccess','endaccess');
- $enroll_values .= '<td>'.&Apache::lonlocal::locallocaltime($startaccess).'</td>';
- if ($endaccess == 0) {
+ my ($accessstart,$accessend) = &dates_from_form('accessstart','accessend');
+ $enroll_values .= '<td>'.&Apache::lonlocal::locallocaltime($accessstart).'</td>';
+ if ($accessend == 0) {
$enroll_values .= '<td>'.&mt('No end date').'</td>';
} else {
- $enroll_values .= '<td>'.&Apache::lonlocal::locallocaltime($endaccess).'</td>';
+ $enroll_values .= '<td>'.&Apache::lonlocal::locallocaltime($accessend).'</td>';
}
my $container = 'Course';
@@ -1233,8 +1244,8 @@
for (my $i=0; $i<$env{'form.persontotal'}; $i++) {
if ($env{'form.person_'.$i.'_uname'} ne '') {
$personnel_values .=
- '<tr><td>'.$env{'form.person_'.$i.'_first'}.' '.
- $env{'form.person_'.$i.'_last'}.'</td>'.
+ '<tr><td>'.$env{'form.person_'.$i.'_firstname'}.' '.
+ $env{'form.person_'.$i.'_lastname'}.'</td>'.
'<td>'.$env{'form.person_'.$i.'_uname'}.':'.
$env{'form.person_'.$i.'_dom'}.'</td>'.
'<td>'.&Apache::lonnet::plaintext($env{'form.person_'.$i.'_role'},
@@ -1282,7 +1293,7 @@
my ($startname,$endname) = @_;
my $startdate = &Apache::lonhtmlcommon::get_date_from_form($startname);
my $enddate = &Apache::lonhtmlcommon::get_date_from_form($endname);
- if ($endname eq 'endaccess') {
+ if ($endname eq 'accessend') {
if (exists($env{'form.no_end_date'}) ) {
$enddate = 0;
}
@@ -1294,10 +1305,19 @@
my ($dom,$formname,$crstype) = @_;
my $output = '<div>'.&Apache::lonhtmlcommon::start_pick_box().
&Apache::lonhtmlcommon::row_title('Course Description').
- '<input type="text" size="40" name="cdescr" />'.
- &Apache::lonhtmlcommon::row_closure(1).
- &Apache::lonhtmlcommon::end_pick_box().'</div>'.
- '<div>'.&clone_form($dom,$formname,$crstype).'</div>'."\n";
+ '<input type="text" size="40" name="cdescr" />';
+ my ($home_server_pick,$numlib) =
+ &Apache::loncommon::home_server_form_item($dom,'chome',
+ 'default','hide');
+ if ($numlib > 1) {
+ $output .= &Apache::lonhtmlcommon::row_closure().
+ &Apache::lonhtmlcommon::row_title(
+ &mt('Home Server for Course'));
+ }
+ $output .= $home_server_pick.
+ &Apache::lonhtmlcommon::row_closure(1).
+ &Apache::lonhtmlcommon::end_pick_box().'</div>'.
+ '<div>'.&clone_form($dom,$formname,$crstype).'</div>'."\n";
return $output;
}
@@ -1307,14 +1327,14 @@
if ($crstype eq 'community') {
$type = 'Community';
}
- my $cloneform = &Apache::loncommon::select_dom_form($dom,'clonedomain').
- &Apache::loncommon::selectcourse_link($formname,'clonecourse','clonedomain','','','',$type);
+ my $cloneform = &Apache::loncommon::select_dom_form($dom,'clonedom').
+ &Apache::loncommon::selectcourse_link($formname,'clonecrs','clonedom','','','',$type);
my %lt = &clone_text();
my $output .=
&Apache::lonhtmlcommon::start_pick_box().
&Apache::lonhtmlcommon::row_title($lt{'cid'}).'<label>'.
- '<input type="text" size="25" name="clonecourse" value="" onfocus="this.blur();'.
- 'opencrsbrowser('."'$formname','clonecourse','clonedomain','','','','$type'".');" />'.
+ '<input type="text" size="25" name="clonecrs" value="" onfocus="this.blur();'.
+ 'opencrsbrowser('."'$formname','clonecrs','clonedom','','','','$type'".');" />'.
'</label>'.&Apache::lonhtmlcommon::row_closure(1).'<label>'.
&Apache::lonhtmlcommon::row_title($lt{'dmn'}).'</label>'.
$cloneform.'</label>'.&Apache::lonhtmlcommon::row_closure().
@@ -1469,7 +1489,7 @@
sub print_request_outcome {
my ($dom,$codetitles,$code_order) = @_;
- my ($output,$cnum,$now,$req_notifylist,$crstype,$startenroll,$endenroll,
+ my ($output,$cnum,$now,$req_notifylist,$crstype,$enrollstart,$enrollend,
%sections,%crosslistings,%personnel,@baduname,@missingdom,%domconfig,);
$cnum = $env{'form.cnum'};
unless ($cnum =~ /^$match_courseid$/) {
@@ -1487,12 +1507,13 @@
$crstype = $env{'form.crstype'};
if ($crstype eq 'official') {
if (&Apache::lonnet::auto_run('',$dom)) {
- ($startenroll,$endenroll)=&dates_from_form('startenroll','endenroll');
+ ($enrollstart,$enrollend)=&dates_from_form('enrollstart','enrollend');
}
for (my $i=0; $i<$env{'form.sectotal'}; $i++) {
if ($env{'form.sec_'.$i}) {
if ($env{'form.secnum_'.$i} ne '') {
- $sections{$env{'form.secnum_'.$i}} = $env{'form.loncapasec_'.$i};
+ $sections{$i}{'inst'} = $env{'form.secnum_'.$i};
+ $sections{$i}{'loncapa'} = $env{'form.loncapasec_'.$i};
}
}
}
@@ -1507,7 +1528,8 @@
}
}
$xlistinfo .= $env{'form.crosslist_'.$i.'_instsec'};
- $crosslistings{$xlistinfo} = $env{'form.crosslist_'.$i.'_lcsec'};
+ $crosslistings{$i}{'inst'} = $xlistinfo;
+ $crosslistings{$i}{'loncapa'} = $env{'form.crosslist_'.$i.'_lcsec'};
}
}
}
@@ -1517,13 +1539,41 @@
my $udom = $env{'form.person_'.$i.'_uname'};
if (($uname =~ /^$match_username$/) && ($udom =~ /^$match_domain$/)) {
if (&Apache::lonnet::domain($udom) ne '') {
- $personnel{$uname.':'.$udom} = {
- first => $env{'form.person_'.$i.'_first'},
- last => $env{'form.person_'.$i.'_last'},
- email => $env{'form.person_'.$i.'_email'},
- role => $env{'form.person_'.$i.'_role'},
- sections => $env{'form.person_'.$i.'_sections'},
- };
+ unless (ref($personnel{$uname.':'.$udom}) eq 'HASH') {
+ $personnel{$uname.':'.$udom} = {
+ firstname => $env{'form.person_'.$i.'_firstname'},
+ lastname => $env{'form.person_'.$i.'_lastname'},
+ emailaddr => $env{'form.person_'.$i.'_emailaddr'},
+ };
+ }
+ my $role = $env{'form.person_'.$i.'_role'};
+ unless ($role eq '') {
+ if (ref(@{$personnel{$uname.':'.$udom}{'roles'}}) eq 'ARRAY') {
+ my @curr_roles = @{$personnel{$uname.':'.$udom}{'roles'}};
+ unless (grep(/^\Q$role\E$/,@curr_roles)) {
+ push(@{$personnel{$uname.':'.$udom}{'roles'}},$role);
+ }
+ } else {
+ @{$personnel{$uname.':'.$udom}{'roles'}} = ($role);
+ }
+ if ($role eq 'cc') {
+ @{$personnel{$uname.':'.$udom}{$role}{'usec'}} = ();
+ } else {
+ my @currsec;
+ if ($env{'form.person_'.$i.'_sections'} ne '') {
+ my @sections = split(',',$env{'form.person_'.$i.'_sections'});
+ foreach my $sec (@sections) {
+ next if ($sec eq '');
+ if (@currsec > 0) {
+ unless(grep(/^\Q$sec\E$/,@currsec)) {
+ push(@currsec,$sec);
+ }
+ }
+ }
+ }
+ @{$personnel{$uname.':'.$udom}{$role}{'usec'}} = @currsec;
+ }
+ }
} else {
push(@missingdom,$uname.':'.$udom);
}
@@ -1531,30 +1581,30 @@
push(@baduname,$uname.':'.$udom);
}
}
-
- my ($startaccess,$endaccess) = &dates_from_form('startaccess','endacess');
+ my ($accessstart,$accessend) = &dates_from_form('accessstart','accessend');
my $details = {
owner => $env{'user.name'},
domain => $env{'user.domain'},
cdom => $dom,
cnum => $cnum,
- cdesc => $env{'form.cdesc'},
+ coursehome => $env{'form.chome'},
+ cdescr => $env{'form.cdescr'},
crstype => $env{'form.crstype'},
instcode => $env{'form.instcode'},
- clonedomain => $env{'form.clonedomain'},
- clonecourse => $env{'form.clonecourse'},
+ clonedom => $env{'form.clonedom'},
+ clonecrs => $env{'form.clonecrs'},
datemode => $env{'form.datemode'},
dateshift => $env{'form.datshift'},
sectotal => $env{'form.sectotal'},
sections => \%sections,
crosslisttotal => $env{'form.crosslisttotal'},
- crosslistings => \%crosslistings,
+ crosslists => \%crosslistings,
autoadds => $env{'form.autoadds'},
autodrops => $env{'form.autodrops'},
- startenroll => $startenroll,
- endenroll => $endenroll,
- startaccess => $startaccess,
- endaccess => $endaccess,
+ enrollstart => $enrollstart,
+ enrollend => $enrollend,
+ accessstart => $accessstart,
+ accessend => $accessend,
personnel => \%personnel,
};
my @inststatuses;
@@ -1601,15 +1651,22 @@
if ($crstype eq 'community') {
$type = 'Community';
}
- my ($logmsg,$newusermsg,$addresult,$enrollcount,$output,$keysmsg,%longroles);
+ my %domdefs = &Apache::lonnet::get_domain_defaults($dom);
+ my ($logmsg,$newusermsg,$addresult,$enrollcount,$response,$keysmsg,%longroles);
my @roles = &Apache::lonuserutils::roles_by_context('course');
foreach my $role (@roles) {
$longroles{$role}=&Apache::lonnet::plaintext($role,$type);
}
- my %reqdetails = &build_batchcreatehash($details);
- my $cid = &LONCAPA::batchcreatecourse::build_course($dom,$cnum,'request',\%reqdetails,\%longroles,\$logmsg,\$newusermsg,\$addresult,\$enrollcount,\$output,\$keysmsg,$env{'user.domain'},$env{'user.name'},$cnum);
+ my $owneremail;
+ my %emails = &Apache::loncommon::getemails();
+ foreach my $email ('permanentemail','critnotification','notification') {
+ $owneremail = $emails{$email};
+ last if ($owneremail ne '');
+ }
+ my %reqdetails = &build_batchcreatehash($dom,$details,$owneremail,\%domdefs);
+ my $cid = &LONCAPA::batchcreatecourse::build_course($dom,$cnum,'requestcourses',\%reqdetails,\%longroles,\$logmsg,\$newusermsg,\$addresult,\$enrollcount,\$output,\$keysmsg,$env{'user.domain'},$env{'user.name'},$cnum,$crstype);
$disposition = 'created';
- if ($cid eq $cnum) {
+ if ($cid eq "/$dom/$cnum") {
$disposition = 'created';
$output = &mt('Your course request has been processed and the course has been created.').'<br />'.&mt('You will need to logout and log-in again to be able to select a role in the course.');
} else {
@@ -1623,7 +1680,7 @@
crstype => $crstype,
ownername => $env{'user.name'},
ownerdom => $env{'user.domain'},
- description => $env{'form.cdesc'},
+ description => $env{'form.cdescr'},
},
};
my $putresult = &Apache::lonnet::newput_dom('courserequestqueue',$request,
@@ -1673,8 +1730,8 @@
$storeresult = 'error: invalid requestkey format';
}
if ($storeresult ne 'ok') {
- $output .= '<span class="LC_warning">'.&mt('An error occurred saving a record of the details of your request.').'</span><br />';
- &logthis("Error saving course request - $requestkey for $env{'user.name'}:$env{'user.domain'} - $storeresult");
+ $output .= '<span class="LC_warning">'.&mt('An error occurred saving a record of the details of your request: [_1].',$storeresult).'</span><br />';
+ &Apache::lonnet::logthis("Error saving course request - $requestkey for $env{'user.name'}:$env{'user.domain'} - $storeresult");
}
}
return $output;
@@ -1704,7 +1761,7 @@
if ($userenv{'inststatus'} ne '') {
@{$inststatuses} = split(',',$userenv{'inststatus'});
} else {
- @{$inststatuses} = ('other');
+ @{$inststatuses} = ('default');
}
foreach my $status (@{$inststatuses}) {
if (exists($settings{$crstype}{$status})) {
@@ -1722,6 +1779,7 @@
}
}
my $maxlimit = 0;
+
foreach my $key (sort(keys(%alltasks))) {
if ($key =~ /^autolimit=(\d*)$/) {
if ($1 eq '') {
@@ -1796,10 +1854,33 @@
}
sub build_batchcreatehash {
- my ($details) = @_;
+ my ($dom,$details,$owneremail,$domdefs) = @_;
my %batchhash;
- if (ref($details) eq 'HASH') {
-
+ my @items = qw{owner domain coursehome clonecrs clonedom datemode dateshift enrollstart enrollend accessstart accessend sections crosslists users};
+ if ((ref($details) eq 'HASH') && (ref($domdefs) eq 'HASH')) {
+ my $emailenc = &Apache::lonnet::escape($owneremail);
+ my $owner = $details->{'owner'}.':'.$details->{'domain'};
+ foreach my $item (@items) {
+ $batchhash{$item} = $details->{$item};
+ }
+ $batchhash{'title'} = $details->{'cdescr'};
+ $batchhash{'coursecode'} = $details->{'instcode'};
+ $batchhash{'emailenc'} = $emailenc;
+ $batchhash{'adds'} = $details->{'autoadds'};
+ $batchhash{'drops'} = $details->{'autodrops'};
+ $batchhash{'authtype'} = $domdefs->{'auth_def'};
+ $batchhash{'authparam'} = $domdefs->{'auth_arg_def'};
+ if ($details->{'crstype'} eq 'community') {
+ $batchhash{'crstype'} = 'Community';
+ } else {
+ $batchhash{'crstype'} = 'Course';
+ }
+ $batchhash{'users'}{$details->{$owner}} = {
+ firstname => $env{'environment.first'},
+ lastname => $env{'environment.last'},
+ emailenc => $emailenc,
+ email => $owneremail,
+ };
}
return %batchhash;
}
@@ -1809,16 +1890,16 @@
my %reqinfo = &get_request_settings($request_id,$dom);
my %stored;
$stored{'cdescr'} = &unescape($reqinfo{'description'});
- $stored{'startaccess'} = $reqinfo{'startaccess'};
- $stored{'endaccess'} = $reqinfo{'endaccess'};
- if ($stored{'endaccess'} == 0) {
+ $stored{'accessstart'} = $reqinfo{'accessstart'};
+ $stored{'accessend'} = $reqinfo{'accessend'};
+ if ($stored{'accessend'} == 0) {
$stored{'no_end_date'} = 1;
}
- $stored{'startenroll'} = $reqinfo{'startenroll'};
- $stored{'endenroll'} = $reqinfo{'endenroll'};
+ $stored{'enrollstart'} = $reqinfo{'enrollstart'};
+ $stored{'enrollend'} = $reqinfo{'enrollend'};
$stored{'crosslist'} = $reqinfo{'crosslist'};
- $stored{'clonecourse'} = $reqinfo{'clonecourse'};
- $stored{'clonedomain'} = $reqinfo{'clonedomain'};
+ $stored{'clonecrs'} = $reqinfo{'clonecrs'};
+ $stored{'clonedom'} = $reqinfo{'clonedom'};
$stored{'sections'} = $reqinfo{'sections'};
$stored{'personnel'} = $reqinfo{'personnel'};
--raeburn1250301544--