--- loncom/interface/loncreatecourse.pm 2016/04/15 19:27:37 1.162
+++ loncom/interface/loncreatecourse.pm 2017/08/11 00:24:53 1.167
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Create a course
#
-# $Id: loncreatecourse.pm,v 1.162 2016/04/15 19:27:37 raeburn Exp $
+# $Id: loncreatecourse.pm,v 1.167 2017/08/11 00:24:53 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -106,7 +106,8 @@ sub print_course_creation_page {
$course_home .= qq{>$server $host_servers{$server}};
}
$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
@@ -189,7 +190,8 @@ function validate(formname) {
'oaas' => "Open all assessments",
'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",
@@ -236,7 +238,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');
@@ -484,6 +487,10 @@ END
.''
.&Apache::lonhtmlcommon::row_closure()
+ .&Apache::lonhtmlcommon::row_title($lt{'scof'})
+ .''
+ .&Apache::lonhtmlcommon::row_closure()
+
.&Apache::lonhtmlcommon::row_headline()
.'
'.$lt{'cmmn'}.'
'
.&Apache::lonhtmlcommon::row_closure()
@@ -680,6 +687,7 @@ sub create_course {
endaccess => $endaccess,
setpolicy => $env{'form.setpolicy'},
setcontent => $env{'form.setcontent'},
+ setcomment => $env{'form.setcomment'},
reshome => $env{'form.reshome'},
setkeys => $env{'form.setkeys'},
keyauth => $env{'form.keyauth'},
@@ -766,7 +774,7 @@ sub create_course {
}
sub print_intro_page {
- my ($r,$show_all_choices,$cancreate) = @_;
+ my ($r,$show_all_choices,$cancreate,$permission) = @_;
my $start_page =
&Apache::loncommon::start_page('Create a New Course, Community or Placement Test');
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Options','Create_Course',undef,'Create_Courses');
@@ -775,6 +783,10 @@ sub print_intro_page {
my $helplink=&Apache::loncommon::help_open_topic('Create_Course_Community',&mt('Help on Creating Courses and Communities'));
# Create menu
+ my $approve = 'Display requests awaiting approval';
+ if ($permission->{'create'}) {
+ $approve = 'Approve or reject requests';
+ }
my @menu;
@menu =
({ categorytitle => 'Course/Community Creation',
@@ -782,7 +794,7 @@ sub print_intro_page {
{
linktext => 'Create a single course',
url => '/adm/createcourse?phase=courseone',
- permission => 1,
+ permission => $permission->{'create'},
#help => '',
icon => 'crsnew.png',
linktitle => 'Create a new course by completing an online form.'
@@ -790,7 +802,7 @@ sub print_intro_page {
{
linktext => 'Create a single community',
url => '/adm/createcourse?phase=groupone',
- permission => $cancreate->{'Community'},
+ permission => $permission->{'create'} && $cancreate->{'Community'},
#help => '',
icon => 'crsnew.png',
linktitle => 'Create a new collaborative community by completing an online form.'
@@ -798,7 +810,7 @@ sub print_intro_page {
{
linktext => 'Create a single placement test',
url => '/adm/createcourse?phase=placementone',
- permission => $cancreate->{'Placement'},
+ permission => $permission->{'create'} && $cancreate->{'Placement'},
#help => '',
icon => 'crsnew.png',
linktitle => 'Create a new placement test by completing an online form.'
@@ -806,7 +818,7 @@ sub print_intro_page {
{
linktext => 'Create courses/communities/placement tests by uploading an attributes file',
url => '/adm/createcourse?phase=batchone',
- permission => 1,
+ permission => $permission->{'create'},
help => 'Batch_Creation',
icon => 'uplcrs.png',
linktitle => 'Upload an attributes file containing specifications for one or more courses, communities or placement tests in XML format.'
@@ -816,7 +828,7 @@ sub print_intro_page {
{ categorytitle => 'Course/Community Requests',
items => [
{
- linktext => 'Approve or reject requests',
+ linktext => $approve,
url => '/adm/createcourse?phase=requestdisplay',
permission => $show_all_choices,
#help => '',
@@ -1291,6 +1303,20 @@ ENDJS
}
+sub get_permission {
+ my ($dom) = @_;
+ my ($allowed,%permission);
+ if (&Apache::lonnet::allowed('ccc',$dom)) {
+ $allowed = 1;
+ %permission = (
+ create => 1,
+ );
+ } elsif (&Apache::lonnet::allowed('dcc',$dom)) {
+ $allowed = 1;
+ }
+ return ($allowed,\%permission);
+}
+
# ===================================================================== Handler
sub handler {
my $r = shift;
@@ -1301,28 +1327,28 @@ sub handler {
return OK;
}
- my $show_all_choices = 0;
- my $primary_rev = &Apache::lonnet::get_server_loncaparev($env{'request.role.domain'});
- my %cancreate = (
- Community => 0,
- Placement => 0,
- );
-
- if (($primary_rev ne 'refused') && ($primary_rev ne 'error') &&
- ($primary_rev ne 'unknown_cmd') && ($primary_rev ne 'no_such_host')) {
- $show_all_choices = 1;
- my ($primary_major,$primary_minor) = split(/\./,$primary_rev);
- foreach my $key (keys(%cancreate)) {
- my ($needsmajor,$needsminor) =
- split(/\./,$Apache::lonnet::needsrelease{'course:crstype:'.$key});
- unless (($needsmajor > $primary_major) ||
- (($needsmajor == $primary_major) && ($needsminor > $primary_minor))) {
- $cancreate{$key} = 1;
+ my ($allowed,$permission) = &get_permission($env{'request.role.domain'});
+ if ($allowed) {
+ my $show_all_choices = 0;
+ my $primary_rev = &Apache::lonnet::get_server_loncaparev($env{'request.role.domain'});
+ my %cancreate = (
+ Community => 0,
+ Placement => 0,
+ );
+ if (($primary_rev ne 'refused') && ($primary_rev ne 'error') &&
+ ($primary_rev ne 'unknown_cmd') && ($primary_rev ne 'no_such_host')) {
+ $show_all_choices = 1;
+ my ($primary_major,$primary_minor) = split(/\./,$primary_rev);
+ foreach my $key (keys(%cancreate)) {
+ my ($needsmajor,$needsminor) =
+ split(/\./,$Apache::lonnet::needsrelease{'course:crstype:'.$key});
+ unless (($needsmajor > $primary_major) ||
+ (($needsmajor == $primary_major) && ($needsminor > $primary_minor))) {
+ $cancreate{$key} = 1;
+ }
}
}
- }
- if (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) {
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
@@ -1333,11 +1359,12 @@ sub handler {
({href=>"/adm/createcourse",
text=>"Creation Options",
faq=>79,bug=>'Dom Coord Interface',});
- if (($env{'form.phase'} eq 'coursetwo') ||
- (($env{'form.phase'} eq 'grouptwo') &&
+ if (($permission->{'create'}) &&
+ (($env{'form.phase'} eq 'coursetwo') ||
+ (($env{'form.phase'} eq 'grouptwo') &&
($cancreate{'Community'})) ||
(($env{'form.phase'} eq 'placementtwo') &&
- ($cancreate{'Placement'}))) {
+ ($cancreate{'Placement'})))) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"/adm/createcourse?phase=$env{'form.prevphase'}",
text=>&mt('[_1] Creation Settings',),
@@ -1347,23 +1374,26 @@ sub handler {
text=>"Creation Outcome",
faq=>9,bug=>'Dom Coord Interface',});
&create_course($r);
- } elsif (($env{'form.phase'} eq 'courseone') ||
- (($env{'form.phase'} eq 'groupone') &&
- ($cancreate{'Community'})) ||
- (($env{'form.phase'} eq 'placementone') &&
- ($cancreate{'Placement'}))) {
+ } elsif (($permission->{'create'}) &&
+ (($env{'form.phase'} eq 'courseone') ||
+ (($env{'form.phase'} eq 'groupone') &&
+ ($cancreate{'Community'})) ||
+ (($env{'form.phase'} eq 'placementone') &&
+ ($cancreate{'Placement'})))) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"/adm/createcourse?phase=$env{'form.phase'}",
text=>&mt('[_1] Creation Settings',),
faq=>9,bug=>'Dom Coord Interface',});
&print_course_creation_page($r);
- } elsif ($env{'form.phase'} eq 'batchone') {
+ } elsif (($permission->{'create'}) &&
+ ($env{'form.phase'} eq 'batchone')) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"/adm/createcourse?phase=$env{'form.phase'}",
text=>"Upload Description File",
faq=>9,bug=>'Dom Coord Interface',});
&upload_batchfile($r);
- } elsif ($env{'form.phase'} eq 'batchtwo') {
+ } elsif (($permission->{'create'}) &&
+ ($env{'form.phase'} eq 'batchtwo')) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"/adm/createcourse?phase=$env{'form.prevphase'}",
text=>"Upload Description File",
@@ -1381,11 +1411,16 @@ sub handler {
my $js = &courserequestbrowser_javascript();
my $start_page=&Apache::loncommon::start_page('Display Requests',$js);
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Requests','Course_Requests',undef,'Course_Requests');
+ my $context = 'domain';
+ unless ($permission->{'create'}) {
+ $context = 'helpdesk';
+ }
$r->print($start_page.$crumbs."\n".''.
&Apache::loncoursequeueadmin::display_queued_requests(
- 'domain',$env{'request.role.domain'}).'
'.
+ $context,$env{'request.role.domain'}).''.
&Apache::loncommon::end_page());
- } elsif (($env{'form.phase'} eq 'requestchange') && ($show_all_choices)) {
+ } elsif (($permission->{'create'}) &&
+ ($env{'form.phase'} eq 'requestchange') && ($show_all_choices)) {
if ($env{'form.queue'} eq 'pending') {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"/adm/createcourse?phase=pendingdisplay",
@@ -1415,11 +1450,16 @@ sub handler {
my $js = &courserequestbrowser_javascript();
my $start_page=&Apache::loncommon::start_page('Display Pending Queue',$js);
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Pending Queue','Course_Requests',undef,'Course_Requests');
+ my $context = 'pending';
+ unless ($permission->{'create'}) {
+ $context = 'displaypending';
+ }
$r->print($start_page.$crumbs."\n".''.
&Apache::loncoursequeueadmin::display_queued_requests(
- 'pending',$env{'request.role.domain'}).'
'.
+ $context,$env{'request.role.domain'}).''.
&Apache::loncommon::end_page());
- } elsif (($env{'form.phase'} eq 'requestvalidation') && ($show_all_choices)) {
+ } elsif (($permission->{'create'}) &&
+ ($env{'form.phase'} eq 'requestvalidation') && ($show_all_choices)) {
my $js = &courserequestbrowser_javascript();
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"/adm/createcourse?phase=pendingdisplay",
@@ -1446,7 +1486,7 @@ sub handler {
&print_creation_logs($r);
$r->print(''.&Apache::loncommon::end_page());
} else {
- &print_intro_page($r,$show_all_choices,\%cancreate);
+ &print_intro_page($r,$show_all_choices,\%cancreate,$permission);
}
} else {
$env{'user.error.msg'}=