--- loncom/interface/courseprefs.pm 2022/01/16 18:27:09 1.49.2.29
+++ loncom/interface/courseprefs.pm 2015/05/21 23:26:35 1.71
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set configuration settings for a course
#
-# $Id: courseprefs.pm,v 1.49.2.29 2022/01/16 18:27:09 raeburn Exp $
+# $Id: courseprefs.pm,v 1.71 2015/05/21 23:26:35 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)) {
@@ -375,18 +375,18 @@ sub handler {
help => 'Course_Prefs_General',
ordered => ['owner','co-owners','loncaparev','description',
'clonedfrom','courseid','uniquecode','categories',
- 'hidefromcat','syllabus','cloners','url',
+ 'hidefromcat','externalsyllabus','cloners','url',
'rolenames'],
itemtext => {
'owner' => $lt{'ownr'},
'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'},
- 'syllabus' => 'Syllabus status',
+ 'externalsyllabus' => 'Syllabus status',
'url' => 'Top Level Map',
'rolenames' => $lt{'rept'},
'loncaparev' => $lt{'lcrv'},
@@ -464,7 +464,7 @@ sub handler {
help => 'Course_Prefs_Display',
ordered => ['default_xml_style','pageseparators',
'disable_receipt_display','texengine',
- 'tthoptions','uselcmath','usejsme','inline_chem'],
+ 'tthoptions','uselcmath','usejsme'],
itemtext => {
default_xml_style => 'Default XML style file',
pageseparators => 'Visibly Separate Items on Pages',
@@ -473,7 +473,6 @@ sub handler {
tthoptions => 'Default set of options to pass to tth/m when converting TeX',
uselcmath => 'Student formula entry uses inline preview, not DragMath pop-up',
usejsme => 'Molecule editor uses JSME (HTML5) in place of JME (Java)',
- inline_chem => 'Chemical reaction response uses inline preview, not pop-up',
},
},
'grading' =>
@@ -494,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',
@@ -536,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;
@@ -599,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 =
'
@@ -642,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 .= '
@@ -665,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).
'
@@ -704,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 .= '
@@ -764,8 +728,7 @@ sub process_changes {
(!$can_categorize));
next if (($entry eq 'loncaparev') ||
($entry eq 'owner') ||
- ($entry eq 'clonedfrom') ||
- ($entry eq 'syllabus'));
+ ($entry eq 'clonedfrom'));
push(@ordered,$entry);
}
} elsif ($action eq 'classlists') {
@@ -944,9 +907,7 @@ sub process_changes {
$autocoowner = $domconf{'autoenroll'}{'co-owners'};
}
}
- if ($autocoowner) {
- $newvalues{'co-owners'} = $values->{'internal.co-owners'};
- } else {
+ unless ($autocoowner) {
my @keepcoowners = &Apache::loncommon::get_env_multiple('form.coowners');
my @pendingcoowners = &Apache::loncommon::get_env_multiple('form.pendingcoowners');
my @invitecoowners = &Apache::loncommon::get_env_multiple('form.invitecoowners');
@@ -970,19 +931,19 @@ sub process_changes {
my $udom = $env{'user.domain'};
my $pendingcoowners = $values->{'internal.pendingco-owners'};
my @pendingcoown = split(',',$pendingcoowners);
- if ($env{'form.pending_coowner'}) {
+ if ($env{'form.pending_coowoner'}) {
foreach my $item (@pendingcoown) {
unless ($item eq $uname.':'.$udom) {
push(@newpending,$item);
}
}
@newcoown = @currcoown;
- if ($env{'form.pending_coowner'} eq 'accept') {
+ if ($env{'form.pending_coowoner'} eq 'accept') {
unless (grep(/^\Q$uname\E:\Q$udom\E$/,@currcoown)) {
push(@newcoown,$uname.':'.$udom);
}
}
- } elsif ($env{'form.remove_coowner'}) {
+ } elsif ($env{'form.remove_coowoner'}) {
foreach my $item (@currcoown) {
unless ($item eq $uname.':'.$udom) {
push(@newcoown,$item);
@@ -991,8 +952,6 @@ sub process_changes {
if ($pendingcoowners ne '') {
@newpending = @pendingcoown;
}
- } else {
- @newcoown = @currcoown;
}
$newvalues{'pendingco-owners'} = join(',',sort(@newpending));
$newvalues{'co-owners'} = join(',',sort(@newcoown));
@@ -1122,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;
@@ -1137,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};
@@ -1146,7 +1105,7 @@ sub process_changes {
}
if ($fontchange) {
$changes->{$entry} = 1;
- }
+ }
} elsif ($entry eq 'nothideprivileged') {
my @curr_nothide;
my @new_nothide;
@@ -1221,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'};
@@ -1237,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;
@@ -1480,8 +1439,7 @@ sub store_changes {
$displayval = &Apache::lonlocal::locallocaltime($displayval);
} elsif ($key eq 'categories') {
$displayval = $env{'form.categories_display'};
- } elsif (($key eq 'canuse_pdfforms') || ($key eq 'usejsme') ||
- ($key eq 'uselcmath') || ($key eq 'inline_chem')) {
+ } elsif (($key eq 'canuse_pdfforms') || ($key eq 'usejsme') || ($key eq 'uselcmath')) {
if ($changes->{$item}{$key} eq '1') {
$displayval = &mt('Yes');
} elsif ($changes->{$item}{$key} eq '0') {
@@ -1513,12 +1471,12 @@ sub store_changes {
}
}
unless (&Apache::lonnet::is_course_owner($cdom,$cnum)) {
- if ($env{'form.pending_coowner'} eq 'accept') {
+ if ($env{'form.pending_coowoner'} eq 'accept') {
$displayval = &mt('on');
- } elsif ($env{'form.pending_coowner'} eq 'decline') {
+ } elsif ($env{'form.pending_coowoner'} eq 'decline') {
$displayval = '';
$output .= ''.&Apache::lonhtmlcommon::confirm_success(&mt('Invitation to be co-owner declined')).'';
- } elsif ($env{'form.remove_coowner'}) {
+ } elsif ($env{'form.remove_coowoner'}) {
$displayval = &mt('off');
}
if ($displayval) {
@@ -1783,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);
@@ -1885,7 +1843,7 @@ function syllabusinfo() {
}
ENDSCRIPT
$jscript = '