--- loncom/interface/loncreatecourse.pm 2007/08/23 21:54:40 1.104
+++ loncom/interface/loncreatecourse.pm 2009/07/27 22:35:12 1.123
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Create a course
#
-# $Id: loncreatecourse.pm,v 1.104 2007/08/23 21:54:40 albertel Exp $
+# $Id: loncreatecourse.pm,v 1.123 2009/07/27 22:35:12 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;
@@ -35,7 +67,7 @@ use Apache::lonnet;
use Apache::loncommon;
use Apache::londocs;
use Apache::lonlocal;
-use Apache::londropadd;
+use Apache::lonuserutils;
use Apache::lonclonecourse;
use LONCAPA::batchcreatecourse;
use LONCAPA;
@@ -44,7 +76,7 @@ use LONCAPA;
sub print_course_creation_page {
my $r=shift;
- my $crstype = 'Group';
+ my $crstype = 'Community';
if ($env{'form.phase'} eq 'courseone') {
$crstype = 'Course';
}
@@ -70,13 +102,13 @@ sub print_course_creation_page {
if ($crstype eq 'Course') {
my $starttime = time;
my $endtime = time+(6*30*24*60*60); # 6 months from now, approx
- $enroll_table = &Apache::londropadd::date_setting_table($starttime,
- $endtime,'create_enrolldates');
- $access_table = &Apache::londropadd::date_setting_table($starttime,
- $endtime,'create_defaultdates');
+ $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::londropadd::javascript_validations(
+ $javascript_validations=&Apache::lonuserutils::javascript_validations(
'createcourse',$krbdefdom);
my %param = ( formname => 'document.ccrs',
kerb_def_dom => $krbdefdom,
@@ -86,14 +118,16 @@ sub print_course_creation_page {
$intform = &Apache::loncommon::authform_internal(%param);
$locform = &Apache::loncommon::authform_local(%param);
} else {
+ my $title_alert = &mt('A Community title is required');
+ my $coord_alert = &mt('The username of the Coordinator is required');
$javascript_validations = qq|
function validate(formname) {
if (formname.title == '') {
- alert("A group title is required");
+ alert("$title_alert");
return;
}
if (formname.ccuname == '') {
- alert("The username of the group coordinator is required");
+ alert("$coord_alert");
}
formname.submit();
}
@@ -124,10 +158,14 @@ function validate(formname) {
'stco' => "standard courses only",
'blnk' => "Blank",
'sllb' => "Syllabus",
- 'navi' => "Navigate",
+ 'navi' => "Navigate Contents",
'cid' => "Course ID",
'dmn' => "Domain",
+ 'dsh' => "Date Shift",
'asov' => "Additional settings, if specified below, will override cloned settings",
+ 'ncd' => "Do not clone date parameters",
+ 'prd' => 'Clone date parameters as-is',
+ 'shd' => 'Shift date parameters by number of days',
'assp' => "Assessment Parameters",
'oaas' => "Open all assessments",
'mssg' => "Messaging",
@@ -135,7 +173,7 @@ function validate(formname) {
'scfc' => "Set content feedback to Course Coordinator",
'cmmn' => "Communication",
'dsrd' => "Disable student resource discussion",
- 'dsuc' => "Disable student use of chatrooms",
+ 'dsuc' => "Disable student use of chat rooms",
'acco' => "Access Control",
'snak' => "Students need access key to enter course",
'kaut' =>
@@ -149,8 +187,9 @@ function validate(formname) {
'no' => "No",
'audr' => "Automated drops",
'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",
+ '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",
'nech' => "Notification of enrollment changes",
'nccl' => "Notification to course coordinator via LON-CAPA message when enrollment changes occur during the automated update?",
@@ -158,29 +197,29 @@ function validate(formname) {
'irsp' => "Include retrieval of student photographs?",
'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.",
+ 'cgrq' => 'Set a quota for the total disk space available for storage of course group portfolio files',
'opco' => "Open Course",
- 'ginf' => "Group Information",
- 'gtit' => "Group Title",
- 'ghsr' => "Group Home Server",
- 'gidn' => "Group ID/Number",
- 'grco' => "Group Content",
- 'cngr' => "Completely new group",
- 'cegr' => "Clone an existing group",
- 'sagr' => "Do NOT generate as standard group",
- 'stgo' => "standard groups only",
- 'sgpf' => "Set group policy feedback to Group Coordinator",
- 'scfg' => "Set content feedback to Group Coordinator",
+ '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 chatrooms",
- 'mnak' => "Members need access key to enter group",
+ 'dmuc' => "Disable member use of chat rooms",
+ 'mnak' => "Members need access key to enter community",
'kaug' =>
- 'Key authority (id@domain) if other than group',
- 'gc' => "Group Coordinator",
- 'gid' => "Group ID",
- 'crgr' => "Create Group",
- 'grts' => "Group Teams Settings",
- 'grtq' => "Set a quota for the total disk space available for storage of group team portfolio files.",
+ 'Key authority (id@domain) if other than community',
+ 'gc' => "Coordinator",
+ '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.",
);
my $js = <
');
+ $r->print(&mt('Assigning role of '.$crstype.' Coordinator to [_1]:',
+ ,''.$ccuname.':'.$ccdomain.'')
+ .&Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid,
+ 'cc','','','','','createcourse').' ');
}
if ($env{'form.setkeys'}) {
$r->print(
@@ -694,18 +785,18 @@ sub create_course {
$r->print(' '.&mt('Roles will be active at next login').'.$lt{'ginf'}
@@ -470,7 +553,7 @@ ENDDOCUMENT
-
+
+
+
+
$lt{'asov'}.
@@ -496,12 +582,12 @@ $lt{'asov'}.
$lt{'cmmn'}
@@ -568,7 +654,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') {
@@ -616,6 +702,8 @@ sub create_course {
crsquota => $env{'form.crsquota'},
clonecourse => $env{'form.clonecourse'},
clonedomain => $env{'form.clonedomain'},
+ datemode => $env{'form.datemode'},
+ dateshift => $env{'form.dateshift'},
crsid => $env{'form.crsid'},
curruser => $env{'user.name'}.':'.$env{'user.domain'},
crssections => $env{'form.crssections'},
@@ -649,23 +737,26 @@ sub create_course {
# Check the veracity of the course coordinator
if (&Apache::lonnet::homeserver($ccuname,$ccdomain) eq 'no_host') {
$r->print(''.&Apache::loncommon::end_page());
+ $r->print('