--- loncom/interface/loncreatecourse.pm 2009/09/28 19:21:38 1.127 +++ loncom/interface/loncreatecourse.pm 2009/11/18 19:15:44 1.134 @@ -1,7 +1,7 @@ # The LearningOnline Network # Create a course # -# $Id: loncreatecourse.pm,v 1.127 2009/09/28 19:21:38 raeburn Exp $ +# $Id: loncreatecourse.pm,v 1.134 2009/11/18 19:15:44 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -111,15 +111,15 @@ sub print_course_creation_page { &Apache::loncommon::selectcourse_link ('ccrs','clonecourse','clonedomain',undef,undef,undef,$crstype); my $coursebrowserjs=&Apache::loncommon::coursebrowser_javascript($env{'request.role.domain'}); - my ($enroll_table,$access_table,$krbdef,$krbdefdom,$krbform,$intform,$locform, + my ($enroll_table,$krbdef,$krbdefdom,$krbform,$intform,$locform, $javascript_validations); + my $starttime = time; + my $endtime = time+(6*30*24*60*60); # 6 months from now, approx + my $access_table = &Apache::lonuserutils::date_setting_table($starttime, + $endtime,'create_defaultdates'); if ($crstype eq 'Course') { - my $starttime = time; - my $endtime = time+(6*30*24*60*60); # 6 months from now, approx $enroll_table = &Apache::lonuserutils::date_setting_table($starttime, $endtime,'create_enrolldates'); - $access_table = &Apache::lonuserutils::date_setting_table($starttime, - $endtime,'create_defaultdates'); ($krbdef,$krbdefdom) = &Apache::loncommon::get_kerberos_defaults($defdom); $javascript_validations=&Apache::lonuserutils::javascript_validations( @@ -172,7 +172,7 @@ function validate(formname) { 'stco' => "standard courses only", 'blnk' => "Blank", 'sllb' => "Syllabus", - 'navi' => "Navigate Contents", + 'navi' => "Course Contents", 'cid' => "Course ID", 'dmn' => "Domain", 'dsh' => "Date Shift", @@ -190,8 +190,6 @@ function validate(formname) { 'dsuc' => "Disable student use of chat rooms", 'acco' => "Access Control", 'snak' => "Students need access key to enter course", - 'kaut' => - 'Key authority (id@domain) if other than course', 'ow' => "Course Owner", 'cc' => "(will be assigned Course Coordinator role)", 'user' => "Username", @@ -204,8 +202,8 @@ function validate(formname) { 'dacu' => "Duration of automated classlist updates", 'dads' => 'Default Access Dates for Students', 'dacc' => "Default start and end dates for student access", - 'psam' => "Please select the Authentication mechanism", - 'pcda' => "Please choose the default authentication method to be used by new users added to this LON-CAPA domain by the automated enrollment process", + 'psam' => "Authentication mechanism", + 'pcda' => "Default authentication method for new users added to this domain by the automated enrollment process", 'nech' => "Notification of enrollment changes", 'nccl' => "Notification to course coordinator via LON-CAPA message when enrollment changes occur during the automated update?", 'ndcl' => "Notification to domain coordinator via LON-CAPA message when enrollment changes occur during the automated update?", @@ -213,31 +211,36 @@ function validate(formname) { 'rshm' => 'Resource Space Home', 'cgrs' => "Course Group Settings", 'cgrq' => 'Set a quota for the total disk space available for storage of course group portfolio files', - 'opco' => "Open Course", - 'ginf' => "Community Information", - 'gtit' => "Community Title", - 'ghsr' => "Community Home Server", - 'gidn' => "Community ID/Number", - 'grco' => "Community Content", - 'cngr' => "Completely new community", - 'cegr' => "Clone an existing community", - 'sagr' => "Do NOT generate as standard community", - 'stgo' => "standard communities only", - 'sgpf' => "Set community policy feedback to Coordinator", - 'scfg' => "Set content feedback to Coordinator", - 'dmrd' => "Disable member resource discussion", - 'dmuc' => "Disable member use of chat rooms", - 'mnak' => "Members need access key to enter community", - 'kaug' => - 'Key authority (id@domain) if other than community', - 'co' => "Community Owner", - 'gc' => "(will be assigned Coordinator role)", - 'gid' => "Community ID", - 'crgr' => "Create Community", - 'grts' => "Community Group Settings", - 'grtq' => "Set a quota for the total disk space available for storage of community group portfolio files.", - - ); + 'opco' => 'Open Course', + 'opcm' => 'Open Community', + ); + $lt{'kaut'} = &mt('Key authority ([_1]id:domain[_2]) if other than course','',''); + + if ($crstype eq 'Community') { + $lt{'cinf'} = &mt('Community Information'); + $lt{'ctit'} = &mt('Community Title'); + $lt{'chsr'} = &mt('Community Home Server'); + $lt{'cidn'} = &mt('Community ID/Number'); + $lt{'crco'} = &mt('Community Content'); + $lt{'cncr'} = &mt('Completely new community'); + $lt{'cecr'} = &mt('Clone an existing community'); + $lt{'sacr'} = &mt('Do NOT generate as standard community'); + $lt{'stco'} = &mt('standard communities only'); + $lt{'navi'} = &mt('Community Contents'); + $lt{'cid'} = &mt('Community ID'); + $lt{'scpf'} = &mt('Set community policy feedback to Coordinator'); + $lt{'scfc'} = &mt('Set content feedback to Coordinator'); + $lt{'dsrd'} = &mt('Disable member resource discussion'); + $lt{'dsuc'} = &mt('Disable member use of chat rooms'); + $lt{'dads'} = &mt('Default Access Dates for Members'); + $lt{'dacc'} = &mt('Default start and end dates for member access'); + $lt{'snak'} = &mt('Members need access key to enter course'); + $lt{'kaut'} = &mt('Key authority ([_1]id:domain[_2]) if other than community','',''); + $lt{'ow'} = &mt('Community Owner'); + $lt{'cc'} = &mt('(will be assigned Coordinator role)'); + $lt{'cgrs'} = &mt('Community Group Settings'); + $lt{'cgrq'} = &mt('Set a quota for the total disk space available for storage of community group portfolio files'); + } my $js = < var editbrowser = null; @@ -276,41 +279,41 @@ END 'Create_Courses'); $r->print($start_page.$crumbs); - if ($crstype eq 'Course') { - $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() + $r->print('
' + .&Apache::lonhtmlcommon::start_pick_box() - .&Apache::lonhtmlcommon::row_headline() + .&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'} .&Apache::lonhtmlcommon::row_closure() @@ -330,9 +333,10 @@ END .'
('.$lt{'cscs'}.')' .&Apache::lonhtmlcommon::row_closure() ); + } - # Table: New Course / Clone Course - $r->print(&Apache::lonhtmlcommon::row_headline() + # 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() @@ -404,17 +408,17 @@ END .&Apache::loncommon::end_data_table_row() .&Apache::loncommon::end_data_table() .&Apache::lonhtmlcommon::row_closure() - ); + ); - $r->print(&Apache::lonhtmlcommon::row_headline() + $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() + $r->print(&Apache::lonhtmlcommon::row_headline() .'

'.$lt{'assp'}.'

' .&Apache::lonhtmlcommon::row_closure() @@ -465,8 +469,9 @@ END .&Apache::lonhtmlcommon::row_title($lt{'rshm'}) .'' .&Apache::lonhtmlcommon::row_closure() - - .&Apache::lonhtmlcommon::row_headline() + ); + if ($crstype eq 'Course') { + $r->print(&Apache::lonhtmlcommon::row_headline() .'

'.$lt{'aens'}.'

' .&Apache::lonhtmlcommon::row_closure() @@ -509,8 +514,10 @@ END .''.$lt{'no'} .' ' .&Apache::lonhtmlcommon::row_closure() - - .&Apache::lonhtmlcommon::row_headline() + ); + } + + $r->print(&Apache::lonhtmlcommon::row_headline() .'

'.$lt{'cgrs'}.'

' .&Apache::lonhtmlcommon::row_closure() @@ -519,149 +526,26 @@ END .&Apache::lonhtmlcommon::row_closure(1) .&Apache::lonhtmlcommon::end_pick_box() - ); - $r->print(< + .'
' + ); + if ($crstype eq 'Course') { + $r->print('

- -

- -ENDDOCUMENT - +' + ); } elsif ($crstype eq 'Community') { - $r->print(< -

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

-

- -

- -

-

$lt{'ginf'}

-

- -

- -

- -

-

$lt{'grco'}

- - - -
$lt{'cngr'}$lt{'cegr'}
-

- -$lt{'smap'} -

- -
-($lt{'ocik'}): - -

-$lt{'fres'}
($lt{'stgo'}): - -  - -  - -

-
- -
- -
-
-
- -
 
-$lt{'asov'}. -
-

-

-

$lt{'mssg'}

-

- -
- -

-

$lt{'cmmn'}

-

- -
- -

-

$lt{'acco'}

-

- -
- -

-

$lt{'rshm'}

-

- -

-

$lt{'grts'}

-

-$lt{'grtq'} -Mb -

-
+ $r->print('

- -

- -ENDDOCUMENT + +

' + ); } - $r->print($end_page); + $r->print(''. + $end_page); } # ====================================================== Phase two: make course @@ -787,10 +671,14 @@ sub create_course { # Make the requested user a course coordinator or group coordinator # if (($ccdomain) && ($ccuname)) { + my $ccrole = 'cc'; + if ($crstype eq 'Community') { + $ccrole = 'co'; + } $r->print(&mt('Assigning role of '.$crstype.' Coordinator to [_1]:', ,''.$ccuname.':'.$ccdomain.'') .&Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid, - 'cc','','','','','createcourse').'

'); + $ccrole,'','','','','createcourse').'

'); } if ($env{'form.setkeys'}) { $r->print( @@ -831,14 +719,14 @@ sub print_intro_page { help => 'Batch_Creation', }, { internal_name => 'requestdisplay', - name => &mt('Approve or reject course requests'), + name => &mt('Approve or reject requests'), short_description => - &mt('Display course creation requests submitted by authorized users, held pending approval by a Domain Coordinator.'), + &mt('Display course and community creation requests submitted by authorized users, held pending approval by a Domain Coordinator.'), }, { internal_name => 'creationlog', - name => &mt('View course creation log'), + name => &mt('View creation log'), short_description => - &mt('Display information about when, how and by whom courses were created in this domain.'), + &mt('Display information about when, how and by whom courses and communities were created in this domain.'), }, ); my $options; @@ -979,13 +867,17 @@ sub print_creation_logs { &Apache::loncommon::start_data_table_header_row(). ' '.&mt('Creation Date').''. ''.&mt('Creator').''.&mt('Description').''. - ''.&mt('Course Owner(s)').''; + ''.&mt('Owner(s)').''; if (($curr{'type'} eq 'official') || ($curr{'type'} eq 'any')) { $tablehdr .= ''.&mt('Institutional Code').''; - } - $tablehdr .= ''.&mt('Course Type').''. - ''.&mt('Creation Context').''. - &Apache::loncommon::end_data_table_header_row(); + } + if ($curr{'type'} eq 'any') { + $tablehdr .= ''.&mt('Course Type').''; + } + if ($curr{'context'} eq 'any') { + $tablehdr .= ''.&mt('Creation Context').''; + } + $tablehdr .= &Apache::loncommon::end_data_table_header_row(); my ($minshown,$maxshown); $minshown = 1; my $count = 0; @@ -1106,7 +998,13 @@ sub print_creation_logs { if (($curr{'type'} eq 'official') || ($curr{'type'} eq 'any')) { $r->print(''.$courses{$cid}{'inst_code'}.''); } - $r->print(''.$showtype.''.$showcontext.''.&Apache::loncommon::end_data_table_row()."\n"); + if ($curr{'type'} eq 'any') { + $r->print(''.$showtype.''); + } + if ($curr{'context'} eq 'any') { + $r->print(''.$showcontext.''); + } + $r->print(''.&Apache::loncommon::end_data_table_row()."\n"); } if ($showntablehdr) { $r->print(&Apache::loncommon::end_data_table().'
'); @@ -1222,7 +1120,7 @@ sub creation_display_filter { # Server version info $output .= '

'. - &mt('Only courses created from servers running LON-CAPA [_1] or later are displayed.','2.9.0'); + &mt('Only courses and communities created from servers running LON-CAPA [_1] or later are displayed.','2.9.0'); if ($version) { $output .= ' '.&mt('This LON-CAPA server is version [_1]',$version); } @@ -1241,13 +1139,13 @@ sub course_types { } sub context_names { - my @contexts = qw(auto web dc_create requestcrs); + my @contexts = qw(auto web dc_create requestcourses); my %contextnames = &Apache::lonlocal::texthash ( - auto => 'Automated creation from batch file', - web => 'Batch creation from uploaded file', - dc_create => 'Single course created by Domain Coordinator', - requestcrs => 'Processing of submitted course request', + auto => 'Automated creation from batch file', + web => 'Batch creation from uploaded file', + dc_create => 'Course or community created by Dom. Coord.', + requestcourses => 'Processing of submitted course request', ); return (\@contexts,\%contextnames); } @@ -1386,8 +1284,8 @@ sub handler { &syllabuslink_javascript()."\n". '// ]]>'."\n". ''; - my $start_page=&Apache::loncommon::start_page('Course Creation Logs',$js); - my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Created Courses','Creation_Log',undef,'Creation_Log'); + my $start_page=&Apache::loncommon::start_page('Course/Community Creation Logs',$js); + my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Created Courses/Communities','Creation_Log',undef,'Creation_Log'); $r->print($start_page.$crumbs."\n".'

'); &print_creation_logs($r); $r->print('
'.&Apache::loncommon::end_page());