--- loncom/interface/loncreatecourse.pm 2014/01/30 19:00:09 1.156
+++ loncom/interface/loncreatecourse.pm 2021/08/31 17:23:27 1.176
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Create a course
#
-# $Id: loncreatecourse.pm,v 1.156 2014/01/30 19:00:09 bisitz Exp $
+# $Id: loncreatecourse.pm,v 1.176 2021/08/31 17:23:27 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -80,9 +80,12 @@ use Apache::loncommon;
use Apache::londocs;
use Apache::lonlocal;
use Apache::lonuserutils;
-use Apache::lonclonecourse;
use LONCAPA::batchcreatecourse;
-use LONCAPA;
+use LONCAPA qw(:DEFAULT :match);
+
+my $registered_flush;
+my $registered_instcats;
+my $modified_dom;
# ===================================================== Phase one: fill-in form
@@ -91,6 +94,8 @@ sub print_course_creation_page {
my $crstype = 'Community';
if ($env{'form.phase'} eq 'courseone') {
$crstype = 'Course';
+ } elsif ($env{'form.phase'} eq 'placementone') {
+ $crstype = 'Placement';
}
my $defdom=$env{'request.role.domain'};
my %domdefaults = &Apache::lonnet::get_domain_defaults($defdom);
@@ -99,12 +104,13 @@ sub print_course_creation_page {
foreach my $server (sort(keys(%host_servers))) {
$course_home .= qq{};
}
$course_home .= "\n\n";
- my $domform = &Apache::loncommon::select_dom_form($defdom,'ccdomain');
+ my ($trusted,$untrusted) = &Apache::lonnet::trusted_domains('enroll',$defdom);
+ my $domform = &Apache::loncommon::select_dom_form($defdom,'ccdomain',undef,undef,undef,$trusted,$untrusted);
my $cloneform=&Apache::loncommon::select_dom_form
($env{'request.role.domain'},'clonedomain').
&Apache::loncommon::selectcourse_link
@@ -116,7 +122,9 @@ sub print_course_creation_page {
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 $openallfrom =
+ &Apache::lonhtmlcommon::date_setter('ccrs','openallfrom',$starttime);
+ if (($crstype eq 'Course') || ($crstype eq 'Placement')) {
$enroll_table = &Apache::lonuserutils::date_setting_table($starttime,
$endtime,'create_enrolldates');
($krbdef,$krbdefdom) =
@@ -133,6 +141,8 @@ sub print_course_creation_page {
} else {
my $title_alert = &mt('A Community title is required');
my $coord_alert = &mt('The username of the Coordinator is required');
+ &js_escape(\$title_alert);
+ &js_escape(\$coord_alert);
$javascript_validations = qq|
function validate(formname) {
if (formname.title == '') {
@@ -158,7 +168,7 @@ function validate(formname) {
'snid' => "Section Numbers and corresponding LON-CAPA section IDs",
'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",
+ '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) section ID to be used in LON-CAPA, e.g., fs03ent231001:ent1,fs03bot231001:bot1,fs03zol231002:zol2",
'ccre' => "Course credits",
'crcd' => "Create six character course identifier to share with students",
'cred' => "the number of institutional credits students will earn by completing this course",
@@ -181,11 +191,17 @@ function validate(formname) {
'ncd' => "Do not clone date parameters",
'prd' => 'Clone date parameters as-is',
'shd' => 'Shift date parameters by number of days',
+ 'dpl' => 'URL shortcuts (for deep linking)',
+ 'nsl' => 'Do not clone URL shortcuts',
+ 'tsl' => 'Transfer URL shortcuts from existing course to new course',
+ 'csl' => 'Create new URL shortcuts in new course',
'assp' => "Assessment Parameters",
'oaas' => "Open all assessments",
+ 'sta' => "starting from:",
'mssg' => "Messaging",
'scpf' => "Set course policy feedback to Course Coordinator",
- 'scfc' => "Set content feedback to Course Coordinator",
+ 'scfc' => "Set resource content feedback to Course Coordinator",
+ 'scof' => "Set course content feedback to Course Coordinator",
'cmmn' => "Communication",
'dsrd' => "Disable student resource discussion",
'dsuc' => "Disable student use of chat rooms",
@@ -212,6 +228,7 @@ function validate(formname) {
'cgrq' => 'Set a quota for the total disk space available for storage of course group portfolio files',
'opco' => 'Open Course',
'opcm' => 'Open Community',
+ 'oppt' => 'Open Placement Test',
);
$lt{'kaut'} = &mt('Key authority ([_1]id:domain[_2]) if other than course','','');
$lt{'toin'} = &mt('to interface with institutional data, e.g., [_1]fs13glg231[_2] for [_3]Fall 2013 Geology 231[_4]','','','','');
@@ -231,7 +248,8 @@ function validate(formname) {
$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{'scfc'} = &mt('Set resource content feedback to Coordinator');
+ $lt{'scof'} = &mt('Set community 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');
@@ -242,9 +260,25 @@ function validate(formname) {
$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');
+ $lt{'tsl'} = &mt('Transfer URL shortcuts from existing community to new community');
+ $lt{'csl'} = &mt('Create new URL shortcuts in new community');
+ } elsif ($crstype eq 'Placement') {
+ $lt{'cinf'} = &mt('Placement Test Information');
+ $lt{'ctit'} = &mt('Placement Test Title');
+ $lt{'chsr'} = &mt('Placement Test Home Server');
+ $lt{'cidn'} = &mt('Placement Test ID/Number');
+ $lt{'crco'} = &mt('Placement Test Content');
+ $lt{'cncr'} = &mt('Completely new placement test');
+ $lt{'cecr'} = &mt('Clone an existing placement test');
+ $lt{'sacr'} = &mt('Do NOT generate as standard placement test');
+ $lt{'stco'} = &mt('standard placement tests only');
+ $lt{'navi'} = &mt('Placement Test Contents');
+ $lt{'cid'} = &mt('Placement Test ID');
}
my $js = <
+//
$coursebrowserjs
END
@@ -270,6 +306,7 @@ END
my %titles = &Apache::lonlocal::texthash(
courseone => 'Create a New Course',
groupone => 'Create a New Community',
+ placementone=> 'Create a New Placement Test',
);
my $start_page =
&Apache::loncommon::start_page($titles{$env{'form.phase'}},$js);
@@ -281,7 +318,7 @@ END
'Create_Courses');
$r->print($start_page.$crumbs);
- $r->print('