--- loncom/interface/courseprefs.pm 2016/10/24 18:10:08 1.49.2.21
+++ loncom/interface/courseprefs.pm 2016/02/20 00:12:39 1.75
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set configuration settings for a course
#
-# $Id: courseprefs.pm,v 1.49.2.21 2016/10/24 18:10:08 raeburn Exp $
+# $Id: courseprefs.pm,v 1.75 2016/02/20 00:12:39 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -137,7 +137,7 @@ whether Domain coordinators who are curr
advanced course user .db file for a course are to be hidden (e.g.,
in syllabus, or from course user lists).
-Inputs: $cdom,$item,$settings,$crstype,$noedit
+Inputs: $cdom,$item,$settings,$crstype
where $cdom is course domain, item is nothideprivileged, $settings is
HASH ref of the current values for nothideprivileged, $crstype is
course type (Course or Community).
@@ -235,9 +235,9 @@ sub handler {
my $cid = $env{'request.course.id'};
my ($cnum,$cdom,$chome) = &get_course($cid);
my $crstype = &Apache::loncommon::course_type();
- my ($parm_permission,$allowed) = &get_permission($cid);
+ my $parm_permission = &Apache::lonnet::allowed('opa',$cid);
my $navmap = Apache::lonnavmaps::navmap->new();
- if ($allowed && $navmap) {
+ if ($parm_permission && $navmap) {
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
} else {
@@ -310,7 +310,7 @@ sub handler {
idnu => 'Course ID or number',
unco => 'Unique code',
desc => 'Course Description',
- cred => 'Student credits',
+ cred => 'Student credits',
ownr => 'Course Owner',
cown => 'Course Co-owners',
catg => 'Categorize course',
@@ -344,12 +344,12 @@ sub handler {
$phase = $env{'form.phase'};
}
- if (($phase eq 'categorizecourse') && ($parm_permission->{'categorizecourse'})) {
+ if ($phase eq 'categorizecourse') {
&assign_course_categories($r,$crstype);
return OK;
}
- if (($phase eq 'releaseinfo') && ($parm_permission->{'releaseinfo'})) {
+ if ($phase eq 'releaseinfo') {
my $loncaparev = $env{'course.'.$cid.'.internal.releaserequired'};
if ($loncaparev) {
if (&display_loncaparev_constraints($r,$navmap,$loncaparev,$crstype)) {
@@ -382,7 +382,7 @@ sub handler {
'co-owners' => $lt{'cown'},
'description' => $lt{'desc'},
'courseid' => $lt{'idnu'},
- 'uniquecode' => $lt{'unco'},
+ 'uniquecode' => $lt{'unco'},
'categories' => $lt{'catg'},
'hidefromcat' => $lt{'excc'},
'cloners' => $lt{'clon'},
@@ -493,7 +493,7 @@ sub handler {
help => 'Course_Prefs_Printouts',
ordered => ['problem_stream_switch','suppress_tries',
'default_paper_size','print_header_format',
- 'disableexampointprint'],
+ 'disableexampointprint','canuse_pdfforms'],
itemtext => {
problem_stream_switch => 'Allow problems to be split over pages',
suppress_tries => 'Suppress number of tries in printing',
@@ -535,52 +535,23 @@ sub handler {
}],
},
);
- if (($phase eq 'process') && ($parm_permission->{'process'})) {
+ if ($phase eq 'process') {
my @allitems = &get_allitems(%prefs);
&Apache::lonconfigsettings::make_changes($r,$cdom,$phase,$context,
\@prefs_order,\%prefs,\%values,
- $cnum,undef,\@allitems,
- 'coursepref',$parm_permission);
- } elsif (($phase eq 'display') && ($parm_permission->{'display'})) {
+ $cnum,undef,\@allitems,'coursepref');
+ } elsif ($phase eq 'display') {
my $jscript = &get_jscript($cid,$cdom,$phase,$crstype,\%values);
my @allitems = &get_allitems(%prefs);
&Apache::lonconfigsettings::display_settings($r,$cdom,$phase,$context,
- \@prefs_order,\%prefs,\%values,undef,$jscript,\@allitems,$crstype,
- 'coursepref',$parm_permission);
+ \@prefs_order,\%prefs,\%values,undef,$jscript,\@allitems,$crstype,'coursepref');
} else {
&Apache::lonconfigsettings::display_choices($r,$phase,$context,
- \@prefs_order,\%prefs,
- 'coursepref',$parm_permission);
+ \@prefs_order,\%prefs,'coursepref');
}
return OK;
}
-sub get_permission {
- my ($cid) = @_;
- my %permission;
- my $allowed = 0;
- return (\%permission,$allowed) unless ($cid);
- if (&Apache::lonnet::allowed('opa',$cid)) {
- %permission= (
- 'pickactions' => 1,
- 'categorizecourse' => 1,
- 'releaseinfo' => 1,
- 'process' => 1,
- 'display' => 1,
- );
- } elsif (&Apache::lonnet::allowed('vpa',$env{'request.course.id'})) {
- %permission = (
- 'pickactions' => 1,
- 'releaseinfo' => 1,
- 'display' => 1,
- );
- }
- foreach my $perm (values(%permission)) {
- if ($perm) { $allowed=1; last; }
- }
- return (\%permission,$allowed);
-}
-
sub get_allitems {
my (%prefs) = @_;
my @allitems;
@@ -598,15 +569,9 @@ sub get_allitems {
}
sub print_config_box {
- my ($r,$cdom,$phase,$action,$item,$settings,$allitems,$crstype,$parm_permission) = @_;
+ my ($r,$cdom,$phase,$action,$item,$settings,$allitems,$crstype) = @_;
my $ordered = $item->{'ordered'};
my $itemtext = $item->{'itemtext'};
- my $noedit;
- if (ref($parm_permission) eq 'HASH') {
- unless ($parm_permission->{'process'}) {
- $noedit = 1;
- }
- }
my $rowtotal = 0;
my $output =
'
@@ -641,9 +606,9 @@ sub print_config_box {
}
$rowtotal ++;
if ($action eq 'feedback') {
- $output .= &print_feedback('top',$cdom,$settings,$ordered,$itemtext,\$rowtotal,$noedit);
+ $output .= &print_feedback('top',$cdom,$settings,$ordered,$itemtext,\$rowtotal);
} elsif ($action eq 'classlists') {
- $output .= &print_classlists('top',$cdom,$settings,$itemtext,\$rowtotal,$crstype,$noedit);
+ $output .= &print_classlists('top',$cdom,$settings,$itemtext,\$rowtotal,$crstype);
}
$output .= '
@@ -664,7 +629,7 @@ sub print_config_box {
$output .= &mt($item->{'header'}->[1]->{'col2'}).'
';
if ($action eq 'classlists') {
- $output .= &print_classlists('middle',$cdom,$settings,$itemtext,\$rowtotal,$crstype,$noedit).
+ $output .= &print_classlists('middle',$cdom,$settings,$itemtext,\$rowtotal,$crstype).
'
@@ -703,27 +668,27 @@ sub print_config_box {
}
$rowtotal ++;
if ($action eq 'courseinfo') {
- $output .= &print_courseinfo($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit);
+ $output .= &print_courseinfo($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype);
} elsif ($action eq 'localization') {
- $output .= &print_localization($cdom,$settings,$ordered,$itemtext,\$rowtotal,$noedit);
+ $output .= &print_localization($cdom,$settings,$ordered,$itemtext,\$rowtotal);
} elsif ($action eq 'feedback') {
- $output .= &print_feedback('bottom',$cdom,$settings,$ordered,$itemtext,\$rowtotal,$noedit);
+ $output .= &print_feedback('bottom',$cdom,$settings,$ordered,$itemtext,\$rowtotal);
} elsif ($action eq 'discussion') {
- $output .= &print_discussion($cdom,$settings,$ordered,$itemtext,\$rowtotal,$noedit);
+ $output .= &print_discussion($cdom,$settings,$ordered,$itemtext,\$rowtotal);
} elsif (($action eq 'classlists') || ($action eq 'viewableroster')) {
- $output .= &print_classlists('bottom',$cdom,$settings,$itemtext,\$rowtotal,$crstype,$noedit);
+ $output .= &print_classlists('bottom',$cdom,$settings,$itemtext,\$rowtotal,$crstype);
} elsif ($action eq 'appearance') {
- $output .= &print_appearance($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit);
+ $output .= &print_appearance($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype);
} elsif ($action eq 'grading') {
- $output .= &print_grading($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit);
+ $output .= &print_grading($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype);
} elsif ($action eq 'printouts') {
- $output .= &print_printouts($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit);
+ $output .= &print_printouts($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype);
} elsif ($action eq 'spreadsheet') {
- $output .= &print_spreadsheet($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit);
+ $output .= &print_spreadsheet($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype);
} elsif ($action eq 'bridgetasks') {
- $output .= &print_bridgetasks($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit);
+ $output .= &print_bridgetasks($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype);
} elsif ($action eq 'other') {
- $output .= &print_other($cdom,$settings,$allitems,\$rowtotal,$crstype,$noedit);
+ $output .= &print_other($cdom,$settings,$allitems,\$rowtotal,$crstype);
}
$output .= '
@@ -1116,14 +1081,14 @@ sub process_changes {
my ($classorder,$classtitles) = &discussion_vote_classes();
my $fontchange = 0;
foreach my $class (@{$classorder}) {
- my $ext_entry = $entry.'_'.$class;
+ my $ext_entry = $entry.'_'.$class;
my $size = $env{'form.'.$ext_entry.'_size'};
my $unit = $env{'form.'.$ext_entry.'_unit'};
my $weight = $env{'form.'.$ext_entry.'_weight'};
my $style = $env{'form.'.$ext_entry.'_style'};
my $other = $env{'form.'.$ext_entry.'_other'};
$size =~ s/,//g;
- $unit =~ s/,//g;
+ $unit =~ s/,//g;
$weight =~ s/,//g;
$style =~ s/,//g;
$other =~ s/[^\w;:\s\-\%.]//g;
@@ -1131,7 +1096,7 @@ sub process_changes {
$newvalues{$ext_entry} = join(',',($size.$unit,$weight,$style,$other));
my $current = $values->{$ext_entry};
if ($values->{$ext_entry} eq '') {
- $current = ',,,';
+ $current = ',,,';
}
if ($newvalues{$ext_entry} ne $current) {
$changes->{$ext_entry} = $newvalues{$ext_entry};
@@ -1140,7 +1105,7 @@ sub process_changes {
}
if ($fontchange) {
$changes->{$entry} = 1;
- }
+ }
} elsif ($entry eq 'nothideprivileged') {
my @curr_nothide;
my @new_nothide;
@@ -1215,7 +1180,7 @@ sub process_changes {
my $newtext = $maxnum-1;
$newhdr[$env{'form.printfmthdr_pos_'.$newtext}] = $env{'form.printfmthdr_text_'.$newtext};
$newvalues{$entry} = join('',@newhdr);
- } elsif (($entry eq 'languages') ||
+ } elsif (($entry eq 'languages') ||
($entry eq 'checkforpriv')) {
my $settings;
my $total = $env{'form.'.$entry.'_total'};
@@ -1231,7 +1196,7 @@ sub process_changes {
}
if ($env{'form.'.$entry.'_'.$total} ne '') {
my $new = $env{'form.'.$entry.'_'.$total};
- if ($entry eq 'languages') {
+ if ($entry eq 'languages') {
my %langchoices = &get_lang_choices();
if ($langchoices{$new}) {
$settings .= $new;
@@ -1776,7 +1741,7 @@ sub get_jscript {
$local_to_standard{$code_order[$i]} = $standardnames[$i];
}
foreach my $cloner (@cloners) {
- if (($cloner !~ /^\Q*:\E$match_domain$/) &&
+ if (($cloner !~ /^\Q*:\E$match_domain$/) &&
($cloner !~ /^$match_username\:$match_domain$/)) {
foreach my $item (split(/\&/,$cloner)) {
my ($key,$val) = split(/\=/,$item);
@@ -1878,7 +1843,7 @@ function syllabusinfo() {
}
ENDSCRIPT
$jscript = '