--- loncom/interface/loncreatecourse.pm 2010/05/24 06:36:54 1.139 +++ loncom/interface/loncreatecourse.pm 2013/07/15 14:32:45 1.148 @@ -1,7 +1,7 @@ # The LearningOnline Network # Create a course # -# $Id: loncreatecourse.pm,v 1.139 2010/05/24 06:36:54 raeburn Exp $ +# $Id: loncreatecourse.pm,v 1.148 2013/07/15 14:32:45 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -93,6 +93,7 @@ sub print_course_creation_page { $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 = '<select name="course_home" size="1">'."\n"; foreach my $server (sort(keys(%host_servers))) { @@ -159,6 +160,8 @@ function validate(formname) { 'csli' => "a comma separated list of institutional section numbers, each separated by a colon from the (optional) corresponding section ID to be used in LON-CAPA e.g., 001:1,002:2", 'crcs' => "Crosslisted courses", 'cscs' => "a comma separated list of course sections crosslisted with the current course, with each entry including the institutional course section name followed by a colon and then the (optional) sectionID to be used in LON-CAPA, e.g., fs03ent231001:ent1,fs03bot231001:bot1,fs03zol231002:zol2", + 'ccre' => "Course credits", + 'cred' => "the number of institutional credits students will earn by completing this course", 'crco' => "Course Content", 'cncr' => "Completely new course", 'cecr' => "Clone an existing course", @@ -299,7 +302,7 @@ END .&Apache::lonhtmlcommon::row_closure() .&Apache::lonhtmlcommon::row_title($lt{'ctit'}) - .'<input type="text" size="50" name="title" />' + .'<input type="text" size="80" name="title" />' .&Apache::lonhtmlcommon::row_closure() .&Apache::lonhtmlcommon::row_title($lt{'chsr'}) @@ -313,7 +316,9 @@ END if ($crstype eq 'Course') { $r->print(&Apache::lonhtmlcommon::row_headline() .'<h3>'.$lt{'iinf'}.'</h3>' - .$lt{'stat'} + .$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'}) @@ -331,8 +336,14 @@ END .'<br />('.$lt{'cscs'}.')' .&Apache::lonhtmlcommon::row_closure() ); + if ($domdefaults{'officialcredits'} || $domdefaults{'unofficialcredits'}) { + $r->print(&Apache::lonhtmlcommon::row_title($lt{'ccre'}) + .'<input type="text" size="3" name="defaultcredits" />' + .'<br />('.$lt{'cred'}.')' + .&Apache::lonhtmlcommon::row_closure() + ); + } } - # Table: New Course / Clone Course $r->print(&Apache::lonhtmlcommon::row_headline() .'<h3>'.$lt{'crco'}.'</h3>' @@ -405,7 +416,7 @@ END .' <input type="text" size="5" name="dateshift" value="365" />' .&Apache::lonhtmlcommon::row_closure() .&Apache::lonhtmlcommon::row_headline() - .$lt{'asov'} + .'<span class="LC_info">'.$lt{'asov'}.'</span>' .&Apache::lonhtmlcommon::row_closure(1) .&Apache::lonhtmlcommon::end_pick_box() .'</td>' @@ -537,7 +548,7 @@ END <p> <input type="hidden" name="prevphase" value="courseone" /> <input type="hidden" name="phase" value="coursetwo" /> -<input type="button" onClick="verify_message(this.form)" value="'.$lt{'opco'}.'" />' +<input type="button" onclick="verify_message(this.form)" value="'.$lt{'opco'}.'" />' ); } elsif ($crstype eq 'Community') { $r->print(' @@ -560,6 +571,8 @@ sub create_course { my $ccdomain=&LONCAPA::clean_domain($env{'form.ccdomain'}); my $crstype = 'Community'; my ($enrollstart,$enrollend,$startaccess,$endaccess); + my %domdefaults = + &Apache::lonnet::get_domain_defaults($env{'request.role.domain'}); if ($env{'form.phase'} eq 'coursetwo') { $crstype='Course'; @@ -635,6 +648,11 @@ sub create_course { firstres => $env{'form.firstres'} }; + if (($crstype eq 'Course') && + ($domdefaults{'officialcredits'} || $domdefaults{'unofficialcredits'})) { + $args->{'defaultcredits'} = $env{'form.defaultcredits'}; + } + # # Verify data # @@ -689,7 +707,7 @@ sub create_course { '<p><a href="/adm/managekeys?cid='.$crsudom.'_'.$crsunum.'">'.&mt('Manage Access Keys').'</a></p>'); } # Flush the course logs so reverse user roles immediately updated - &Apache::lonnet::flushcourselogs(); + $r->register_cleanup(\&Apache::lonnet::flushcourselogs); $r->print('<p>'.&mt('Roles will be active at next login').'.</p>'); } $r->print('<p><a href="/adm/createcourse?phase='.lc($crstype).'one">'. @@ -716,7 +734,7 @@ sub print_intro_page { url => '/adm/createcourse?phase=courseone', permission => 1, #help => '', - icon => 'ccrs.png', + icon => 'crsnew.png', linktitle => 'Create a new course by completing an online form.' }, { @@ -724,7 +742,7 @@ sub print_intro_page { url => '/adm/createcourse?phase=groupone', permission => $show_all_choices, #help => '', - icon => 'ccrs.png', + icon => 'crsnew.png', linktitle => 'Create a new collaborative community by completing an online form.' }, { @@ -732,7 +750,7 @@ sub print_intro_page { url => '/adm/createcourse?phase=batchone', permission => 1, help => 'Batch_Creation', - icon => 'ccrs.png', + icon => 'uplcrs.png', linktitle => 'Upload an attributes file containing specifications for one or more courses or communities in XML format.' }, ] @@ -744,15 +762,16 @@ sub print_intro_page { url => '/adm/createcourse?phase=requestdisplay', permission => $show_all_choices, #help => '', - icon => 'ccrs.png', + icon => 'rcrs.png', linktitle => 'Display course and community creation requests submitted by authorized users, held pending approval by a Domain Coordinator.' }, { - linktext => 'Display official course requests', + linktext => 'View pending official course requests', url => '/adm/createcourse?phase=pendingdisplay', permission => $show_all_choices, #help => '', - icon => 'ccrs.png', + icon => 'edit-find.png', + alttext => '', linktitle => 'Display official course requests submitted by authorized users, held pending validation of instructor status.' }, ] @@ -931,7 +950,7 @@ sub print_creation_logs { if ($numtitles) { if (($curr{'type'} eq 'official') || ($curr{'type'} eq 'unofficial')) { $instcodefilter = &instcode_srchstr($dom,$numtitles); - &Apache::courseclassifier::instcode_search_str($dom,$numtitles); + &Apache::courseclassifier::instcode_search_str($dom,$numtitles,\@codetitles); if ($curr{'type'} eq 'official') { $regexpok = 1; } else {