--- loncom/interface/loncreatecourse.pm 2002/08/08 20:37:37 1.10 +++ loncom/interface/loncreatecourse.pm 2013/07/22 18:06:51 1.150 @@ -1,7 +1,7 @@ # The LearningOnline Network # Create a course # -# $Id: loncreatecourse.pm,v 1.10 2002/08/08 20:37:37 matthew Exp $ +# $Id: loncreatecourse.pm,v 1.150 2013/07/22 18:06:51 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -25,42 +25,225 @@ # # http://www.lon-capa.org/ # -# (My Desk -# -# (Internal Server Error Handler -# -# (Login Screen -# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14, -# 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer) -# -# 3/1/1 Gerd Kortemeyer) -# -# 3/1 Gerd Kortemeyer) -# -# 2/14,2/16,2/17,7/6 Gerd Kortemeyer -# +### + +=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() + +=item courserequestbrowser_javascript() + +=item print_creation_logs() + +=item creation_display_filter() + +=item context_names() + +=item instcode_srchstr() + +=item syllabuslink_javascript() + +=back + +=cut + package Apache::loncreatecourse; use strict; use Apache::Constants qw(:common :http); use Apache::lonnet; +use Apache::loncommon; +use Apache::londocs; +use Apache::lonlocal; +use Apache::lonuserutils; +use Apache::lonclonecourse; +use LONCAPA::batchcreatecourse; +use LONCAPA; # ===================================================== Phase one: fill-in form sub print_course_creation_page { my $r=shift; - my $defdom=$ENV{'request.role.domain'}; - my %host_servers = &Apache::loncommon::get_library_servers($defdom); + my $crstype = 'Community'; + if ($env{'form.phase'} eq 'courseone') { + $crstype = 'Course'; + } + my $defdom=$env{'request.role.domain'}; + my %domdefaults = &Apache::lonnet::get_domain_defaults($defdom); + my %host_servers = &Apache::lonnet::get_servers($defdom,'library'); my $course_home = ''."\n"; foreach my $server (sort(keys(%host_servers))) { - $course_home .= - qq{$server $host_servers{$server}}; + $course_home .= qq{$server $host_servers{$server}}; } $course_home .= "\n\n"; my $domform = &Apache::loncommon::select_dom_form($defdom,'ccdomain'); - $r->print(< - - -The LearningOnline Network with CAPA - - - -Create a new Course - -Course Information +$coursebrowserjs +END + + my %titles = &Apache::lonlocal::texthash( + courseone => 'Create a New Course', + groupone => 'Create a New Community', + ); + my $start_page = + &Apache::loncommon::start_page($titles{$env{'form.phase'}},$js); + my $end_page = + &Apache::loncommon::end_page(); + my $crumbs = + &Apache::lonhtmlcommon::breadcrumbs($crstype.' Information', + 'Create_Course',undef, + 'Create_Courses'); + $r->print($start_page.$crumbs); + + $r->print('' + .&Apache::lonhtmlcommon::start_pick_box() + + .&Apache::lonhtmlcommon::row_headline() + .''.$lt{'ow'}.' '.$lt{'cc'}.'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'user'}) + .'' + .&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() + + .&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() + ); + if ($crstype eq 'Course') { + $r->print(&Apache::lonhtmlcommon::row_headline() + .''.$lt{'iinf'}.'' + .$lt{'stat'}.' ' + .&mt('Default credits can also be specified, if different from the domain defaults (official courses: [_1]; unofficial courses: [_2]).', + $domdefaults{'officialcredits'},$domdefaults{'unofficialcredits'}) + .&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() + ); + if ($domdefaults{'officialcredits'} || $domdefaults{'unofficialcredits'}) { + $r->print(&Apache::lonhtmlcommon::row_title($lt{'ccre'}) + .'' + .'('.$lt{'cred'}.')' + .&Apache::lonhtmlcommon::row_closure() + ); + } + } + # Table: New Course / Clone Course + $r->print(&Apache::lonhtmlcommon::row_headline() + .''.$lt{'crco'}.'' + .&Apache::loncommon::start_data_table() + .&Apache::loncommon::start_data_table_header_row() + .''.$lt{'cncr'}.'' + .' '.&mt('or').' ' + .''.$lt{'cecr'}.'' + .&Apache::loncommon::end_data_table_header_row() + .&Apache::loncommon::start_data_table_row() + + # New Course: + .'' + .&Apache::lonhtmlcommon::start_pick_box() + .&Apache::lonhtmlcommon::row_title($lt{'map'}) + .'' + .''.$lt{'smap'}.'' + .&Apache::lonhtmlcommon::row_closure() + .&Apache::lonhtmlcommon::row_title(''.$lt{'sacr'}.'') + .'' + .'('.$lt{'ocik'}.')' + .&Apache::lonhtmlcommon::row_closure() + .&Apache::lonhtmlcommon::row_title($lt{'fres'}) + .'' + .''.$lt{'blnk'} + .'' + .' '); + if ($crstype eq 'Community') { + $r->print('' + .''.$lt{'navi'} + .''); + } else { + $r->print('' + .''.$lt{'sllb'} + .'' + .' ' + .'' + .''.$lt{'navi'} + .''); + } + $r->print('('.$lt{'stco'}.')' + .&Apache::lonhtmlcommon::row_closure(1) + .&Apache::lonhtmlcommon::end_pick_box() + + .' ' + + # Clone Course: + .'' + .&Apache::lonhtmlcommon::start_pick_box() + .&Apache::lonhtmlcommon::row_title($lt{'cid'}) + .'' + .'' + .'' + .&Apache::lonhtmlcommon::row_closure(1) + .&Apache::lonhtmlcommon::row_title($lt{'dmn'}) + .'' + .$cloneform + .'' + .&Apache::lonhtmlcommon::row_closure() + .&Apache::lonhtmlcommon::row_title($lt{'dsh'}) + .'' + .' '.$lt{'ncd'} + .'' + .'' + .' '.$lt{'prd'} + .'' + .'' + .' '.$lt{'shd'} + .'' + .' ' + .&Apache::lonhtmlcommon::row_closure() + .&Apache::lonhtmlcommon::row_headline() + .''.$lt{'asov'}.'' + .&Apache::lonhtmlcommon::row_closure(1) + .&Apache::lonhtmlcommon::end_pick_box() + .'' + .&Apache::loncommon::end_data_table_row() + .&Apache::loncommon::end_data_table() + .&Apache::lonhtmlcommon::row_closure() + ); + + $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() + + .&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'}) + .'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_headline() + .''.$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() + ); + if ($crstype eq 'Course') { + $r->print(&Apache::lonhtmlcommon::row_headline() + .''.$lt{'aens'}.'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'aadd'}) + .''.$lt{'yes'}.'' + .''.$lt{'no'}.'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'audr'}) + .''.$lt{'yes'}.'' + .''.$lt{'no'}.'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'dacu'}) + .$enroll_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{'yes'}.'' + .''.$lt{'no'}.'' + .'' + .$lt{'ndcl'}.'' + .''.$lt{'yes'}.'' + .''.$lt{'no'}.'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'irsp'}) + .'' + .''.$lt{'yes'} + .' ' + .'' + .''.$lt{'no'} + .' ' + .&Apache::lonhtmlcommon::row_closure() + ); + } + + $r->print(&Apache::lonhtmlcommon::row_headline() + .''.$lt{'cgrs'}.'' + .&Apache::lonhtmlcommon::row_closure() + + .&Apache::lonhtmlcommon::row_title($lt{'cgrq'}) + .'Mb' + .&Apache::lonhtmlcommon::row_closure(1) + + .&Apache::lonhtmlcommon::end_pick_box() + .'' + ); + if ($crstype eq 'Course') { + $r->print(' -Course Title: - - -Top-level Map: - -Browse - -Course Home Server:$course_home - -Course ID/Number (optional) - - -Course Coordinator + + +' + ); + } elsif ($crstype eq 'Community') { + $r->print(' -Username: - -Domain: $domform - - - - - - -
-Course Title: - -
-Top-level Map: - -Browse -
-Course Home Server:$course_home -
-Course ID/Number (optional) - -
-
-Username: -
-Domain: $domform -
- - -