--- loncom/interface/loncreatecourse.pm 2006/11/02 21:06:06 1.98 +++ loncom/interface/loncreatecourse.pm 2008/09/25 17:44:11 1.109 @@ -1,7 +1,7 @@ # The LearningOnline Network # Create a course # -# $Id: loncreatecourse.pm,v 1.98 2006/11/02 21:06:06 albertel Exp $ +# $Id: loncreatecourse.pm,v 1.109 2008/09/25 17:44:11 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -35,7 +35,7 @@ use Apache::lonnet; use Apache::loncommon; use Apache::londocs; use Apache::lonlocal; -use Apache::londropadd; +use Apache::lonuserutils; use Apache::lonclonecourse; use LONCAPA::batchcreatecourse; use LONCAPA; @@ -49,7 +49,7 @@ sub print_course_creation_page { $crstype = 'Course'; } my $defdom=$env{'request.role.domain'}; - my %host_servers = &Apache::loncommon::get_library_servers($defdom); + my %host_servers = &Apache::lonnet::get_servers($defdom,'library'); my $course_home = ' -

- -

- -

-

$lt{'iinf'}

-

-$lt{'stat'} -

- -
-($lt{'toin'}) -

- -
-($lt{'csli'}) -

- -
-($lt{'cscs'}) -

-

$lt{'crco'}

+ + $r->print('
' + .&Apache::lonhtmlcommon::start_pick_box() + + .&Apache::lonhtmlcommon::row_headline() + .'

'.$lt{'cinf'}.'

' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'ctit'}) + .'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'chsr'}) + .$course_home + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'cidn'}.' ('.$lt{'opt'}.')') + .'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_headline() + .'

'.$lt{'iinf'}.'

' + .$lt{'stat'} + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'ccod'}) + .'' + .'
('.$lt{'toin'}.')' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'snid'}) + .'' + .'
('.$lt{'csli'}.')' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'crcs'}) + .'' + .'
('.$lt{'cscs'}.')' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_headline() + .'

'.$lt{'crco'}.'

' + ); + $r->print(< $lt{'cncr'}$lt{'cecr'} @@ -284,7 +289,7 @@ $lt{'stat'}    
+
+
+ +
 
$lt{'asov'}. -

$lt{'assp'}

-

- -

-

$lt{'mssg'}

-

- -
- -

-

$lt{'cmmn'}

-

- -
- -

-

$lt{'acco'}

-

- -
- -

-

$lt{'rshm'}

-

- -

-

-

$lt{'aens'}

-$lt{'aesc'} -

-

-$lt{'aadd'} - - -

-$lt{'audr'} - - -

-$lt{'dacu'} -$enroll_table -

-$lt{'dacc'} -$access_table -

-$lt{'psam'}.
-$lt{'pcda'}. -

-$krbform -
-$intform -
-$locform -

-$lt{'nech'}
-$lt{'nccl'}
- - -
-$lt{'ndcl'}
- - -

-$lt{'irsp'} - - -

-

-

$lt{'cgrs'}

-$lt{'cgrq'} -Mb -

-
-

$lt{'cc'}

-

- -

- -

+MYEND + + +$r->print(' ' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_headline() + .'

'.$lt{'assp'}.'

' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'oaas'}) + .'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_headline() + .'

'.$lt{'mssg'}.'

' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'scpf'}) + .'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'scfc'}) + .'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_headline() + .'

'.$lt{'cmmn'}.'

' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'dsrd'}) + .'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'dsuc'}) + .''.$lt{'acco'}.'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'snak'}) + .'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'kaut'}) + .'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_headline() + .'

'.$lt{'rshm'}.'

' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'rshm'}) + .'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_headline() + .'

'.$lt{'aens'}.'

' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'aadd'}) + .'' + .'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'audr'}) + .'' + .'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'dacu'}) + .$enroll_table + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'dacc'}) + .$access_table + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'psam'}) + .$lt{'pcda'}.'
' + .$krbform.'
' + .$intform.'
' + .$locform + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'nech'}) + .$lt{'nccl'}.'
' + .'' + .'' + .'
' + .$lt{'ndcl'}.'
' + .'' + .'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'irsp'}) + .' ' + .' ' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_headline() + .'

'.$lt{'cgrs'}.'

' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'cgrq'}) + .'Mb' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_headline() + .'

'.$lt{'cc'}.'

' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'user'}) + .'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'dmn'},"","LC_odd_row_value") + .$domform + .&Apache::lonhtmlcommon::row_closure(1) + + .&Apache::lonhtmlcommon::end_pick_box() + ); + + $r->print(< @@ -431,6 +450,7 @@ $lt{'cgrq'}

ENDDOCUMENT + } elsif ($crstype eq 'Group') { $r->print(< @@ -470,7 +490,7 @@ ENDDOCUMENT    

+
+
+ +
 
$lt{'asov'}. @@ -496,12 +519,12 @@ $lt{'asov'}.


$lt{'cmmn'}

@@ -566,10 +589,8 @@ ENDDOCUMENT sub create_course { my $r=shift; - my $ccuname=$env{'form.ccuname'}; - my $ccdomain=$env{'form.ccdomain'}; - $ccuname=~s/\W//g; - $ccdomain=~s/\W//g; + my $ccuname =&LONCAPA::clean_username($env{'form.ccuname'}); + my $ccdomain=&LONCAPA::clean_domain($env{'form.ccdomain'}); my $crstype = 'Group'; my ($enrollstart,$enrollend,$startaccess,$endaccess); @@ -577,7 +598,6 @@ sub create_course { $crstype='Course'; $enrollstart=&Apache::lonhtmlcommon::get_date_from_form('startenroll'); $enrollend=&Apache::lonhtmlcommon::get_date_from_form('endenroll'); - } $startaccess = &Apache::lonhtmlcommon::get_date_from_form('startaccess'); $endaccess = &Apache::lonhtmlcommon::get_date_from_form('endaccess'); @@ -619,6 +639,8 @@ sub create_course { crsquota => $env{'form.crsquota'}, clonecourse => $env{'form.clonecourse'}, clonedomain => $env{'form.clonedomain'}, + datemode => $env{'form.datemode'}, + dateshift => $env{'form.dateshift'}, crsid => $env{'form.crsid'}, curruser => $env{'user.name'}.':'.$env{'user.domain'}, crssections => $env{'form.crssections'}, @@ -652,45 +674,54 @@ sub create_course { # Check the veracity of the course coordinator if (&Apache::lonnet::homeserver($ccuname,$ccdomain) eq 'no_host') { $r->print('
'); - $r->print(&mt('No such user').' '.$ccuname.' '.&mt('at').' '.$ccdomain.'.
'); - $r->print(&mt("Please click Back on your browser and select another user, or ")); - $r->print(' - - - - -
'.&Apache::loncommon::end_page()); + $r->print('
' + .&mt('No such user [_1] at domain [_2].',''.$ccuname.'',''.$ccdomain.'') + .'
'); + $r->print(&mt('Please click Back on your browser and select another user, or [_1]Create User[_2]' + , '' + .'' + .'' + .'' + ) + .''.&Apache::loncommon::end_page() + ); return; } # Check the proposed home server for the course - my %host_servers = &Apache::loncommon::get_library_servers - ($env{'request.role.domain'}); + my %host_servers = + &Apache::lonnet::get_servers($env{'request.role.domain'},'library'); if (! exists($host_servers{$env{'form.course_home'}})) { - $r->print(&mt('Invalid home server for course').': '. - $env{'form.course_home'}.&Apache::loncommon::end_page()); + $r->print(&mt('Invalid home server for course: [_1]' + ,$env{'form.course_home'}.&Apache::loncommon::end_page())); return; } my ($courseid,$crsudom,$crsunum); - $r->print(&Apache::loncommon::construct_course($args,\$logmsg,\$courseid,\$crsudom,\$crsunum,$env{'user.domain'},$env{'user.name'})); - -# -# Make the requested user a course coordinator or group coordinator -# - if (($ccdomain) && ($ccuname)) { - $r->print(&mt('Assigning role of [_1] Coordinator to [_2] at [_3]:', - $crstype,$ccuname,$ccdomain). - &Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid, - 'cc').'

'); - } - if ($env{'form.setkeys'}) { - $r->print( - '

'.&mt('Manage Access Keys').'

'); - } -# Flush the course logs so reverse user roles immediately updated - &Apache::lonnet::flushcourselogs(); - $r->print('

'.&mt('Roles will be active at next login').'.

'. - '

'. + my ($success,$output) = + &Apache::loncommon::construct_course($args,\$logmsg,\$courseid, + \$crsudom,\$crsunum, + $env{'user.domain'}, + $env{'user.name'}); + $r->print($output); + if ($success) { + # + # Make the requested user a course coordinator or group coordinator + # + if (($ccdomain) && ($ccuname)) { + $r->print(&mt('Assigning role of [_1] Coordinator to [_2] at [_3]: ', + $crstype,$ccuname,$ccdomain). + &Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid, + 'cc','','','','','createcourse').'

'); + } + if ($env{'form.setkeys'}) { + $r->print( + '

'.&mt('Manage Access Keys').'

'); + } + # Flush the course logs so reverse user roles immediately updated + &Apache::lonnet::flushcourselogs(); + $r->print('

'.&mt('Roles will be active at next login').'.

'); + } + $r->print('

'. &mt('Create Another [_1]',$crstype).'

'. &Apache::loncommon::end_page()); } @@ -710,14 +741,14 @@ sub print_intro_page { &mt('Create a new course by completing an online form.'), }, { internal_name => 'groupone', - name => &mt('Create a single collaborative group space '), + name => &mt('Create a single collaborative group space'), short_description => - &mt('Create a new group space for non-course use by completing an online form .'), + &mt('Create a new group space for non-course use by completing an online form.'), }, { internal_name => 'batchone', name => &mt('Create courses/groups by uploading an attributes file'), short_description => - &mt('Upload an attributes file containing specifications for one or more courses or groups in XML format'), + &mt('Upload an attributes file containing specifications for one or more courses or groups in XML format.'), help => 'Batch_Creation', }, ); @@ -796,7 +827,8 @@ sub process_batchfile { } } } - $r->print($start_page.$crumbs.$result.$end_page); + $r->print($start_page.$crumbs.$logmsg.$result.'
'. + &mt('Creation options menu').''.$end_page); }