--- loncom/interface/loncreatecourse.pm 2009/11/04 14:12:19 1.133
+++ loncom/interface/loncreatecourse.pm 2010/08/28 20:18:17 1.142
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Create a course
#
-# $Id: loncreatecourse.pm,v 1.133 2009/11/04 14:12:19 raeburn Exp $
+# $Id: loncreatecourse.pm,v 1.142 2010/08/28 20:18:17 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -61,8 +61,6 @@ described at http://www.lon-capa.org.
=item creation_display_filter()
-=item course_types()
-
=item context_names()
=item instcode_srchstr()
@@ -111,15 +109,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(
@@ -202,8 +200,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?",
@@ -361,15 +359,21 @@ END
.''
- .' '
- .'');
+ }
+ $r->print('
('.$lt{'stco'}.')'
.&Apache::lonhtmlcommon::row_closure(1)
.&Apache::lonhtmlcommon::end_pick_box()
@@ -694,7 +698,7 @@ sub create_course {
}
sub print_intro_page {
- my $r = shift;
+ my ($r,$show_all_choices) = @_;
my $start_page =
&Apache::loncommon::start_page('Create a New Course or Community');
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Options','Create_Course',undef,'Create_Courses');
@@ -702,51 +706,78 @@ sub print_intro_page {
&Apache::loncommon::end_page();
my $helplink=&Apache::loncommon::help_open_topic('Create_Course_Community',&mt('Help on Creating Courses and Communities'));
- my @choices = ({ internal_name => 'courseone',
- name => &mt('Create a single course'),
- short_description =>
- &mt('Create a new course by completing an online form.'),
- },
- { internal_name => 'groupone',
- name => &mt('Create a single community'),
- short_description =>
- &mt('Create a new collaborative community by completing an online form.'),
- },
- { internal_name => 'batchone',
- name => &mt('Create courses/communities by uploading an attributes file'),
- short_description =>
- &mt('Upload an attributes file containing specifications for one or more courses or communities in XML format.'),
- help => 'Batch_Creation',
- },
- { internal_name => 'requestdisplay',
- name => &mt('Approve or reject course requests'),
- short_description =>
- &mt('Display course creation requests submitted by authorized users, held pending approval by a Domain Coordinator.'),
- },
- { internal_name => 'creationlog',
- name => &mt('View course creation log'),
- short_description =>
- &mt('Display information about when, how and by whom courses were created in this domain.'),
- },
+ # Create menu
+ my @menu;
+ @menu =
+ ({ categorytitle => 'Course/Community Creation',
+ items => [
+ {
+ linktext => 'Create a single course',
+ url => '/adm/createcourse?phase=courseone',
+ permission => 1,
+ #help => '',
+ icon => 'crsnew.png',
+ linktitle => 'Create a new course by completing an online form.'
+ },
+ {
+ linktext => 'Create a single community',
+ url => '/adm/createcourse?phase=groupone',
+ permission => $show_all_choices,
+ #help => '',
+ icon => 'crsnew.png',
+ linktitle => 'Create a new collaborative community by completing an online form.'
+ },
+ {
+ linktext => 'Create courses/communities by uploading an attributes file',
+ url => '/adm/createcourse?phase=batchone',
+ permission => 1,
+ help => 'Batch_Creation',
+ icon => 'uplcrs.png',
+ linktitle => 'Upload an attributes file containing specifications for one or more courses or communities in XML format.'
+ },
+ ]
+ },
+ { categorytitle => 'Course/Community Requests',
+ items => [
+ {
+ linktext => 'Approve or reject requests',
+ url => '/adm/createcourse?phase=requestdisplay',
+ permission => $show_all_choices,
+ #help => '',
+ icon => 'rcrs.png',
+ linktitle => 'Display course and community creation requests submitted by authorized users, held pending approval by a Domain Coordinator.'
+ },
+ {
+ linktext => 'View pending official course requests',
+ url => '/adm/createcourse?phase=pendingdisplay',
+ permission => $show_all_choices,
+ #help => '',
+ icon => 'edit-find.png',
+ alttext => '',
+ linktitle => 'Display official course requests submitted by authorized users, held pending validation of instructor status.'
+ },
+ ]
+ },
+ { categorytitle => 'Administration',
+ items => [
+ {
+ linktext => 'View creation log',
+ url => '/adm/createcourse?phase=creationlog',
+ permission => $show_all_choices,
+ #help => '',
+ icon => 'document-properties.png',
+ linktitle => 'Display information about when, how and by whom courses and communities were created in this domain.'
+ },
+ ]
+ },
+ );
+
+ $r->print(
+ $start_page
+ .$crumbs
+ .&Apache::lonhtmlcommon::generate_menu(@menu)
+ .$end_page
);
- my $options;
- foreach my $choice (@choices) {
- $options .='
'. @@ -1061,14 +1096,14 @@ sub creation_display_filter { &Apache::lonhtmlcommon::date_setter($formname,'created_before_date', $curr->{'created_before_date'},undef, undef,undef,undef,undef,undef,undef,$nolink); - $output .= ' | '.&mt('Window during which course was created:').' '. + $output .= ' | '.&mt('Window during which course/community was created:').' '. '
| '.
''; - my ($types,$typenames) = &course_types(); + my ($types,$typenames) = &Apache::loncommon::course_types(); if (ref($types) eq 'ARRAY') { if (@{$types} > 1) { $output .= ' | '.
@@ -1116,28 +1151,10 @@ sub creation_display_filter {
# Update Display button
$output .= ' '. ''. - ' '; - - # Server version info - $output .= ''. - &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); - } - $output .= ' '; + ' '; return $output; } -sub course_types { - my @types = qw(official unofficial community); - my %typename = ( - official => 'Official course', - unofficial => 'Unofficial course', - community => 'Community', - ); - return (\@types,\%typename); -} - sub context_names { my @contexts = qw(auto web dc_create requestcourses); my %contextnames = @@ -1204,6 +1221,13 @@ sub handler { return OK; } + my $show_all_choices = 0; + my $primary_rev = &Apache::lonnet::get_server_loncaparev($env{'request.role.domain'}); + if (($primary_rev ne 'refused') && ($primary_rev ne 'error') && + ($primary_rev ne 'unknown_cmd') && ($primary_rev ne 'no_such_host')) { + $show_all_choices = 1; + } + if (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) { &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; @@ -1216,7 +1240,8 @@ sub handler { text=>"Creation Options", faq=>79,bug=>'Dom Coord Interface',}); if (($env{'form.phase'} eq 'coursetwo') || - ($env{'form.phase'} eq 'grouptwo')) { + (($env{'form.phase'} eq 'grouptwo') && + ($show_all_choices))) { &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/createcourse?phase=$env{'form.prevphase'}", text=>&mt('[_1] Creation Settings',), @@ -1227,7 +1252,8 @@ sub handler { faq=>9,bug=>'Dom Coord Interface',}); &create_course($r); } elsif (($env{'form.phase'} eq 'courseone') || - ($env{'form.phase'} eq 'groupone')) { + (($env{'form.phase'} eq 'groupone') && + ($show_all_choices))) { &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/createcourse?phase=$env{'form.phase'}", text=>&mt('[_1] Creation Settings',), @@ -1249,7 +1275,7 @@ sub handler { text=>"Creation Outcome", faq=>9,bug=>'Dom Coord Interface',}); &process_batchfile($r); - } elsif ($env{'form.phase'} eq 'requestdisplay') { + } elsif (($env{'form.phase'} eq 'requestdisplay') && ($show_all_choices)) { &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/createcourse?phase=$env{'form.phase'}", text=>&mt('[_1] Display Request Queue',), @@ -1261,21 +1287,53 @@ sub handler { &Apache::loncoursequeueadmin::display_queued_requests( 'domain',$env{'request.role.domain'}).''. &Apache::loncommon::end_page()); - } elsif ($env{'form.phase'} eq 'requestchange') { + } elsif (($env{'form.phase'} eq 'requestchange') && ($show_all_choices)) { + if ($env{'form.queue'} eq 'pending') { + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>"/adm/createcourse?phase=pendingdisplay", + text=>&mt('Display Pending Queue',), + faq=>9,bug=>'Dom Coord Interface',}); + } else { + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>"/adm/createcourse?phase=requestdisplay", + text=>&mt('[_1] Display Request Queue',), + faq=>9,bug=>'Dom Coord Interface',}); + } &Apache::lonhtmlcommon::add_breadcrumb - ({href=>"/adm/createcourse?phase=requestdisplay", - text=>&mt('[_1] Display Request Queue',), - faq=>9,bug=>'Dom Coord Interface',}, - {href=>"/adm/createcourse?phase=requestchange", - text=>&mt('[_1] Requests Updated',), - faq=>9,bug=>'Dom Coord Interface',},); + ({href=>"/adm/createcourse?phase=requestchange", + text=>&mt('[_1] Requests Updated',), + faq=>9,bug=>'Dom Coord Interface',},); my $start_page=&Apache::loncommon::start_page('Update Requests Result'); my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Requests Updated','Course_Request',undef,'Course_Request'); $r->print($start_page.$crumbs."\n".' '.
&Apache::loncoursequeueadmin::update_request_queue(
'domain',$env{'request.role.domain'}).' '.
&Apache::loncommon::end_page());
- } elsif ($env{'form.phase'} eq 'creationlog') {
+ } elsif (($env{'form.phase'} eq 'pendingdisplay') && ($show_all_choices)) {
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"/adm/createcourse?phase=$env{'form.phase'}",
+ text=>&mt('Display Pending Queue',),
+ faq=>9,bug=>'Dom Coord Interface',});
+ my $js = &courserequestbrowser_javascript();
+ my $start_page=&Apache::loncommon::start_page('Display Pending Queue',$js);
+ my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Pending Queue','Course_Request',undef,'Course_Request');
+ $r->print($start_page.$crumbs."\n".''.
+ &Apache::loncoursequeueadmin::display_queued_requests(
+ 'pending',$env{'request.role.domain'}).' '.
+ &Apache::loncommon::end_page());
+ } elsif (($env{'form.phase'} eq 'requestvalidation') && ($show_all_choices)) {
+ my $js = &courserequestbrowser_javascript();
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"/adm/createcourse?phase=pendingdisplay",
+ text=>&mt('Display Pending Queue'),},
+ {href=>"/adm/createcourse?phase=requestvalidation",
+ text=>&mt('Validation Attempted'),},);
+ my $start_page=&Apache::loncommon::start_page('Requests Validation Result',$js);
+ my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Validation Attempted','Course_Request',undef,'Course_Request');
+ $r->print($start_page.$crumbs."\n".''.
+ &Apache::loncoursequeueadmin::process_official_reqs('domain',$env{'request.role.domain'}).' '.
+ &Apache::loncommon::end_page());
+ } elsif (($env{'form.phase'} eq 'creationlog') && ($show_all_choices)) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"/adm/createcourse?phase=creationlog",
text=>&mt('[_1] Display Creation History',),});
@@ -1290,7 +1348,7 @@ sub handler {
&print_creation_logs($r);
$r->print(''.&Apache::loncommon::end_page());
} else {
- &print_intro_page($r);
+ &print_intro_page($r,$show_all_choices);
}
} else {
$env{'user.error.msg'}=
|