version 1.110.2.2, 2008/12/15 08:44:25
|
version 1.121, 2009/04/04 21:47:40
|
Line 27
|
Line 27
|
# |
# |
### |
### |
|
|
|
=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; |
package Apache::loncreatecourse; |
|
|
use strict; |
use strict; |
Line 44 use LONCAPA;
|
Line 76 use LONCAPA;
|
|
|
sub print_course_creation_page { |
sub print_course_creation_page { |
my $r=shift; |
my $r=shift; |
my $crstype = 'Course'; |
my $crstype = 'Group'; |
# my $crstype = 'Group'; |
if ($env{'form.phase'} eq 'courseone') { |
# if ($env{'form.phase'} eq 'courseone') { |
$crstype = 'Course'; |
# $crstype = 'Course'; |
} |
# } |
|
my $defdom=$env{'request.role.domain'}; |
my $defdom=$env{'request.role.domain'}; |
my %host_servers = &Apache::lonnet::get_servers($defdom,'library'); |
my %host_servers = &Apache::lonnet::get_servers($defdom,'library'); |
my $course_home = '<select name="course_home" size="1">'."\n"; |
my $course_home = '<select name="course_home" size="1">'."\n"; |
Line 125 function validate(formname) {
|
Line 156 function validate(formname) {
|
'stco' => "standard courses only", |
'stco' => "standard courses only", |
'blnk' => "Blank", |
'blnk' => "Blank", |
'sllb' => "Syllabus", |
'sllb' => "Syllabus", |
'navi' => "Navigate", |
'navi' => "Navigate Contents", |
'cid' => "Course ID", |
'cid' => "Course ID", |
'dmn' => "Domain", |
'dmn' => "Domain", |
'dsh' => "Date Shift", |
'dsh' => "Date Shift", |
Line 140 function validate(formname) {
|
Line 171 function validate(formname) {
|
'scfc' => "Set content feedback to Course Coordinator", |
'scfc' => "Set content feedback to Course Coordinator", |
'cmmn' => "Communication", |
'cmmn' => "Communication", |
'dsrd' => "Disable student resource discussion", |
'dsrd' => "Disable student resource discussion", |
'dsuc' => "Disable student use of chatrooms", |
'dsuc' => "Disable student use of chat rooms", |
'acco' => "Access Control", |
'acco' => "Access Control", |
'snak' => "Students need access key to enter course", |
'snak' => "Students need access key to enter course", |
'kaut' => |
'kaut' => |
Line 154 function validate(formname) {
|
Line 185 function validate(formname) {
|
'no' => "No", |
'no' => "No", |
'audr' => "Automated drops", |
'audr' => "Automated drops", |
'dacu' => "Duration of automated classlist updates", |
'dacu' => "Duration of automated classlist updates", |
|
'dads' => 'Default Access Dates for Students', |
'dacc' => "Default start and end dates for student access", |
'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", |
'pcda' => "Please choose the default authentication method to be used by new users added to this LON-CAPA domain by the automated enrollment process", |
Line 163 function validate(formname) {
|
Line 195 function validate(formname) {
|
'irsp' => "Include retrieval of student photographs?", |
'irsp' => "Include retrieval of student photographs?", |
'rshm' => 'Resource Space Home', |
'rshm' => 'Resource Space Home', |
'cgrs' => "Course Group Settings", |
'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", |
'opco' => "Open Course", |
'ginf' => "Group Information", |
'ginf' => "Group Information", |
'gtit' => "Group Title", |
'gtit' => "Group Title", |
Line 177 function validate(formname) {
|
Line 209 function validate(formname) {
|
'sgpf' => "Set group policy feedback to Group Coordinator", |
'sgpf' => "Set group policy feedback to Group Coordinator", |
'scfg' => "Set content feedback to Group Coordinator", |
'scfg' => "Set content feedback to Group Coordinator", |
'dmrd' => "Disable member resource discussion", |
'dmrd' => "Disable member resource discussion", |
'dmuc' => "Disable member use of chatrooms", |
'dmuc' => "Disable member use of chat rooms", |
'mnak' => "Members need access key to enter group", |
'mnak' => "Members need access key to enter group", |
'kaug' => |
'kaug' => |
'Key authority (<tt>id@domain</tt>) if other than group', |
'Key authority (<tt>id@domain</tt>) if other than group', |
Line 227 END
|
Line 259 END
|
$r->print($start_page.$crumbs); |
$r->print($start_page.$crumbs); |
|
|
if ($crstype eq 'Course') { |
if ($crstype eq 'Course') { |
$r->print('<form action="/adm/createcourse" method="post" name="ccrs">' |
$r->print('<form action="/adm/createcourse" method="post" name="ccrs"><div class="LC_createcourse">' |
.'<div class="LC_createcourse">' |
|
.&Apache::lonhtmlcommon::start_pick_box() |
.&Apache::lonhtmlcommon::start_pick_box() |
|
|
.&Apache::lonhtmlcommon::row_headline() |
.&Apache::lonhtmlcommon::row_headline() |
Line 344 END
|
Line 375 END
|
); |
); |
|
|
$r->print(&Apache::lonhtmlcommon::row_headline() |
$r->print(&Apache::lonhtmlcommon::row_headline() |
|
.'<h3>'.$lt{'dads'}.'</h3>' |
|
.&Apache::lonhtmlcommon::row_closure() |
|
.&Apache::lonhtmlcommon::row_title($lt{'dacc'}) |
|
.$access_table |
|
.&Apache::lonhtmlcommon::row_closure() |
|
); |
|
|
|
$r->print(&Apache::lonhtmlcommon::row_headline() |
.'<h3>'.$lt{'assp'}.'</h3>' |
.'<h3>'.$lt{'assp'}.'</h3>' |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
|
|
Line 372 END
|
Line 411 END
|
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
|
|
.&Apache::lonhtmlcommon::row_title($lt{'dsuc'}) |
.&Apache::lonhtmlcommon::row_title($lt{'dsuc'}) |
.'<input type="checkbox" name="disablechat" /' |
.'<input type="checkbox" name="disablechat" />' |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
|
|
.&Apache::lonhtmlcommon::row_headline() |
.&Apache::lonhtmlcommon::row_headline() |
Line 413 END
|
Line 452 END
|
.$enroll_table |
.$enroll_table |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
|
|
.&Apache::lonhtmlcommon::row_title($lt{'dacc'}) |
|
.$access_table |
|
.&Apache::lonhtmlcommon::row_closure() |
|
|
|
.&Apache::lonhtmlcommon::row_title($lt{'psam'}) |
.&Apache::lonhtmlcommon::row_title($lt{'psam'}) |
.$lt{'pcda'}.'<br />' |
.$lt{'pcda'}.'<br />' |
.$krbform.'<br />' |
.$krbform.'<br />' |
Line 733 sub create_course {
|
Line 768 sub create_course {
|
# Make the requested user a course coordinator or group coordinator |
# Make the requested user a course coordinator or group coordinator |
# |
# |
if (($ccdomain) && ($ccuname)) { |
if (($ccdomain) && ($ccuname)) { |
$r->print(&mt('Assigning role of [_1] Coordinator to [_2] at [_3]: ', |
$r->print(&mt('Assigning role of '.$crstype.' Coordinator to [_1]:', |
$crstype,$ccuname,$ccdomain). |
,'<i>'.$ccuname.':'.$ccdomain.'</i>') |
&Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid, |
.&Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid, |
'cc','','','','','createcourse').'<p>'); |
'cc','','','','','createcourse').'<p>'); |
} |
} |
if ($env{'form.setkeys'}) { |
if ($env{'form.setkeys'}) { |
Line 747 sub create_course {
|
Line 782 sub create_course {
|
$r->print('<p>'.&mt('Roles will be active at next login').'.</p>'); |
$r->print('<p>'.&mt('Roles will be active at next login').'.</p>'); |
} |
} |
$r->print('<p><a href="/adm/createcourse?phase='.lc($crstype).'one">'. |
$r->print('<p><a href="/adm/createcourse?phase='.lc($crstype).'one">'. |
&mt('Create Another [_1]',$crstype).'</a></p>'. |
&mt("Create Another $crstype").'</a></p>'. |
&Apache::loncommon::end_page()); |
&Apache::loncommon::end_page()); |
} |
} |
|
|
sub print_intro_page { |
sub print_intro_page { |
my $r = shift; |
my $r = shift; |
my $start_page = |
my $start_page = |
&Apache::loncommon::start_page('Create a New Course'); |
&Apache::loncommon::start_page('Create a New Course or Group Space'); |
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Options','Create_Course',undef,'Create_Courses'); |
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Options','Create_Course',undef,'Create_Courses'); |
my $end_page = |
my $end_page = |
&Apache::loncommon::end_page(); |
&Apache::loncommon::end_page(); |
Line 765 sub print_intro_page {
|
Line 800 sub print_intro_page {
|
short_description => |
short_description => |
&mt('Create a new course by completing an online form.'), |
&mt('Create a new course by completing an online form.'), |
}, |
}, |
# { internal_name => 'groupone', |
{ internal_name => 'groupone', |
# name => &mt('Create a single collaborative group space'), |
name => &mt('Create a single collaborative group space'), |
# short_description => |
short_description => |
# &mt('Create a new group space for non-course use by completing an online form.'), |
&mt('Create a new group space for non-course use by completing an online form.'), |
# }, |
}, |
{ internal_name => 'batchone', |
{ internal_name => 'batchone', |
name => &mt('Create courses by uploading an attributes file'), |
name => &mt('Create courses/groups by uploading an attributes file'), |
short_description => |
short_description => |
&mt('Upload an attributes file containing specifications for one or more courses in XML format.'), |
&mt('Upload an attributes file containing specifications for one or more courses or groups in XML format.'), |
help => 'Batch_Creation', |
help => 'Batch_Creation', |
}, |
}, |
); |
); |
Line 801 sub upload_batchfile {
|
Line 836 sub upload_batchfile {
|
my $r = shift; |
my $r = shift; |
my $start_page = |
my $start_page = |
&Apache::loncommon::start_page('Create a New Course or Group Space'); |
&Apache::loncommon::start_page('Create a New Course or Group Space'); |
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Upload Course Attributes File','Create_Course',undef,'Create_Courses'); |
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Upload Course/Group Attributes File','Create_Course',undef,'Create_Courses'); |
my $end_page = |
my $end_page = |
&Apache::loncommon::end_page(); |
&Apache::loncommon::end_page(); |
$r->print($start_page.$crumbs); |
$r->print($start_page.$crumbs); |
$r->print('<h3>'.&mt('Upload a courses attributes file').'</h3>'); |
$r->print('<h3>'.&mt('Upload a courses or groups attributes file').'</h3>'); |
$r->print('<form name="batchcreate" method="post" '. |
$r->print('<form name="batchcreate" method="post" '. |
'enctype="multipart/form-data" action="/adm/createcourse">'. |
'enctype="multipart/form-data" action="/adm/createcourse">'. |
'<input type="file" name="coursecreatorxml" />'. |
'<input type="file" name="coursecreatorxml" />'. |
'<input type="hidden" name="phase" value="batchtwo"><br /><br />'. |
'<input type="hidden" name="phase" value="batchtwo" /><br /><br />'. |
'<input type="submit" name="batchsubmit" '. |
'<input type="submit" name="batchsubmit" '. |
'value="Create Courses/Groups" /></form>'); |
'value="Create Courses/Groups" /></form>'); |
$r->print($end_page); |
$r->print($end_page); |