--- loncom/interface/loncreatecourse.pm 2008/12/15 08:44:25 1.110.2.2 +++ loncom/interface/loncreatecourse.pm 2009/08/15 14:01:04 1.125 @@ -1,7 +1,7 @@ # The LearningOnline Network # Create a course # -# $Id: loncreatecourse.pm,v 1.110.2.2 2008/12/15 08:44:25 raeburn Exp $ +# $Id: loncreatecourse.pm,v 1.125 2009/08/15 14:01:04 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -27,6 +27,38 @@ # ### +=head1 NAME + +Apache::loncreatecourse.pm + +=head1 SYNOPSIS + +Allows domain coordinators to create new +courses and assign course coordinators. + +This is part of the LearningOnline Network with CAPA project +described at http://www.lon-capa.org. + +=head1 SUBROUTINES + +=over + +=item handler() + +=item print_course_creation_page() + +=item create_course() + +=item print_intro_page() + +=item upload_batchfile() + +=item process_batchfile() + +=back + +=cut + package Apache::loncreatecourse; use strict; @@ -44,11 +76,10 @@ use LONCAPA; sub print_course_creation_page { my $r=shift; - my $crstype = 'Course'; -# my $crstype = 'Group'; -# if ($env{'form.phase'} eq 'courseone') { -# $crstype = 'Course'; -# } + my $crstype = 'Community'; + if ($env{'form.phase'} eq 'courseone') { + $crstype = 'Course'; + } my $defdom=$env{'request.role.domain'}; my %host_servers = &Apache::lonnet::get_servers($defdom,'library'); my $course_home = '' + .&Apache::loncommon::studentbrowser_javascript() + .&Apache::loncommon::selectstudent_link('ccrs','ccuname','ccdomain') + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'dmn'},"","LC_odd_row_value") + .$domform + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_headline() .'

'.$lt{'cinf'}.'

' .&Apache::lonhtmlcommon::row_closure() @@ -344,6 +393,14 @@ END ); $r->print(&Apache::lonhtmlcommon::row_headline() + .'

'.$lt{'dads'}.'

' + .&Apache::lonhtmlcommon::row_closure() + .&Apache::lonhtmlcommon::row_title($lt{'dacc'}) + .$access_table + .&Apache::lonhtmlcommon::row_closure() + ); + + $r->print(&Apache::lonhtmlcommon::row_headline() .'

'.$lt{'assp'}.'

' .&Apache::lonhtmlcommon::row_closure() @@ -372,7 +429,7 @@ END .&Apache::lonhtmlcommon::row_closure() .&Apache::lonhtmlcommon::row_title($lt{'dsuc'}) - .'' .&Apache::lonhtmlcommon::row_closure() .&Apache::lonhtmlcommon::row_headline() @@ -413,10 +470,6 @@ END .$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.'
' @@ -449,23 +502,10 @@ END .&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(<

@@ -476,9 +516,19 @@ END ENDDOCUMENT - } elsif ($crstype eq 'Group') { + } elsif ($crstype eq 'Community') { $r->print(< +

$lt{'co'} $lt{'gc'}

+

+ +

+ +

$lt{'ginf'}

-

$lt{'grts'}

+

$lt{'grtq'} Mb


-

$lt{'gc'}

-

- -

- -

@@ -616,7 +656,7 @@ sub create_course { my $r=shift; my $ccuname =&LONCAPA::clean_username($env{'form.ccuname'}); my $ccdomain=&LONCAPA::clean_domain($env{'form.ccdomain'}); - my $crstype = 'Group'; + my $crstype = 'Community'; my ($enrollstart,$enrollend,$startaccess,$endaccess); if ($env{'form.phase'} eq 'coursetwo') { @@ -733,9 +773,9 @@ sub create_course { # 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, + $r->print(&mt('Assigning role of '.$crstype.' Coordinator to [_1]:', + ,''.$ccuname.':'.$ccdomain.'') + .&Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid, 'cc','','','','','createcourse').'

'); } if ($env{'form.setkeys'}) { @@ -747,35 +787,40 @@ sub create_course { $r->print('

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

'); } $r->print('

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

'. + &mt("Create Another $crstype").'

'. &Apache::loncommon::end_page()); } sub print_intro_page { my $r = shift; my $start_page = - &Apache::loncommon::start_page('Create a New Course'); + &Apache::loncommon::start_page('Create a New Course or Community'); my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Options','Create_Course',undef,'Create_Courses'); my $end_page = &Apache::loncommon::end_page(); - my $helplink=&Apache::loncommon::help_open_topic('Create_Course_GroupSpace',&mt('Help on Creating Courses and Groups')); + my $helplink=&Apache::loncommon::help_open_topic('Create_Course_Community',&mt('Help on Creating Courses and Communities')); my @choices = ({ internal_name => 'courseone', name => &mt('Create a single course'), short_description => &mt('Create a new course by completing an online form.'), }, -# { internal_name => 'groupone', -# 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.'), -# }, + { internal_name => 'groupone', + name => &mt('Create a single community'), + short_description => + &mt('Create a new collaborative community by completing an online form.'), + }, { internal_name => 'batchone', - name => &mt('Create courses by uploading an attributes file'), + name => &mt('Create courses/communities by uploading an attributes file'), short_description => - &mt('Upload an attributes file containing specifications for one or more courses in XML format.'), + &mt('Upload an attributes file containing specifications for one or more courses or communities in XML format.'), help => 'Batch_Creation', }, + { internal_name => 'requestdisplay', + name => &mt('Approve or reject course requests'), + short_description => + &mt('Display course creation requests submitted by authorized users held pending approval by a Domain Coordinator.'), + }, ); my $options; foreach my $choice (@choices) { @@ -800,18 +845,18 @@ ENDDOCUMENT sub upload_batchfile { my $r = shift; my $start_page = - &Apache::loncommon::start_page('Create a New Course or Group Space'); - my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Upload Course Attributes File','Create_Course',undef,'Create_Courses'); + &Apache::loncommon::start_page('Create a New Course or Community'); + my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Upload Course/Community Attributes File','Create_Course',undef,'Create_Courses'); my $end_page = &Apache::loncommon::end_page(); $r->print($start_page.$crumbs); - $r->print('

'.&mt('Upload a courses attributes file').'

'); + $r->print('

'.&mt('Upload a courses or groups attributes file').'

'); $r->print('
'. ''. - '

'. + '

'. '
'); + 'value="Create Courses/Communities" />'); $r->print($end_page); return; } @@ -819,7 +864,7 @@ sub upload_batchfile { sub process_batchfile { my $r = shift; my $start_page = - &Apache::loncommon::start_page('Create a New Course or Group Space'); + &Apache::loncommon::start_page('Create a New Course or Community'); my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Outcome','Create_Course',undef,'Create_Courses'); my $end_page = &Apache::loncommon::end_page(); @@ -912,6 +957,31 @@ sub handler { text=>"Creation Outcome", faq=>9,bug=>'Dom Coord Interface',}); &process_batchfile($r); + } elsif ($env{'form.phase'} eq 'requestdisplay') { + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>"/adm/createcourse?phase=$env{'form.phase'}", + text=>&mt('[_1] Display Request Queue',), + faq=>9,bug=>'Dom Coord Interface',}); + my $start_page=&Apache::loncommon::start_page('Display Requests'); + my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Requests','Course_Request',undef,'Course_Request'); + $r->print($start_page.$crumbs."\n".'
'. + &Apache::loncoursequeueadmin::display_queued_requests( + 'domain',$env{'request.role.domain'}).'
'. + &Apache::loncommon::end_page()); + } elsif ($env{'form.phase'} eq 'requestchange') { + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>"/adm/createcourse?phase=requestdisplay", + text=>&mt('[_1] Display Request Queue',), + faq=>9,bug=>'Dom Coord Interface',}, + {href=>"/adm/createcourse?phase=requestchange", + text=>&mt('[_1] Requests Updated',), + faq=>9,bug=>'Dom Coord Interface',},); + my $start_page=&Apache::loncommon::start_page('Update Requests Result'); + my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Requests Updated','Course_Request',undef,'Course_Request'); + $r->print($start_page.$crumbs."\n".'
'. + &Apache::loncoursequeueadmin::update_request_queue( + 'domain',$env{'request.role.domain'}).'
'. + &Apache::loncommon::end_page()); } else { &print_intro_page($r); }