--- loncom/interface/courseprefs.pm 2010/09/17 23:57:33 1.8.2.14
+++ loncom/interface/courseprefs.pm 2012/12/31 14:43:09 1.52
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set configuration settings for a course
#
-# $Id: courseprefs.pm,v 1.8.2.14 2010/09/17 23:57:33 raeburn Exp $
+# $Id: courseprefs.pm,v 1.52 2012/12/31 14:43:09 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -122,27 +122,27 @@ Creates table used to display and set co
Inputs: $cdom,$items,$ordered,$settings,$rowtotal,$crstype
where $cdom is course's domain, $items is HASH ref for current config
-item, $ordered is ARRAY ref of items to include in row in
+item, $ordered is ARRAY ref of items to include in row in
display order, $settings is HASH ref of current values forrow,
-$rowtotal is SCALAR ref used to accumulate row count, $crstype is
+$rowtotal is SCALAR ref used to accumulate row count, $crstype is
course type.
Returns: $datatable
-HTML mark-up of data table which accumulates individual rows.
+HTML mark-up of data table which accumulates individual rows.
=item nothidepriv_row()
Creates row containing form elements used to display and set
-whether Domain coordinators who are currently included in
+whether Domain coordinators who are currently included in
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
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).
+HASH ref of the current values for nothideprivileged, $crstype is
+course type (Course or Community).
-Returns: $datatable
+Return: $datatable
HTML mark-up for Privileged users (Domain Coordinators) in staff listing.
=item print_hdrfmt_row()
@@ -163,7 +163,7 @@ for the "Print header format" row.
=item position_selector()
Creates a select box which can be used to reorder substitutions
-and text included in a printout header.
+and text included in a printout header.
Inputs: $pos,$num,$maxnum
where $pos is current position, $num is the unique identifier,
@@ -171,23 +171,23 @@ and $maxnum is the total number of items
and text in the printout header.
Returns: $output
-HTML mark-up for the selectbox and a hidden form element containing
-the current position.
+HTML mark-up for the selectbox and a hidden form element containing
+the current position.
=item substitution_selector()
-Creates a combination of select box for choosing an item
-(student name, course ID or assignment note) to substitute,
+Creates a combination of select box for choosing an item
+(student name, course ID or assignment note) to substitute,
and a corresponding size limit in the header used for printouts.
Inputs: $num,$subst,$limit,$crstype
-where $num is the unique identifier, $subst is the current
+where $num is the unique identifier, $subst is the current
substitution (n,c or a, for name, course or note respectively,
$limit is the current size limit (integer), and $crstype is
course type - course or community.
Returns: $output
-HTML mark-up for selectbox and textbox (separate table cells).
+HTML mark-up for selectbox and textbox (separate table cells).
=item change_clone()
@@ -215,6 +215,7 @@ use Apache::lonnet;
use Apache::loncommon();
use Apache::lonhtmlcommon();
use Apache::lonconfigsettings;
+use Apache::lonparmset;
use Apache::lonlocal;
use LONCAPA qw(:DEFAULT :match);
@@ -267,8 +268,8 @@ sub handler {
my %lt;
if ($crstype eq 'Community') {
%lt = (
- conf => 'Community Configuration',
- edit => 'Edit Community Configuration',
+ conf => 'Community Settings',
+ edit => 'Edit Community Settings',
gens => 'General community settings',
idnu => 'Community ID or number',
desc => 'Community Description',
@@ -286,7 +287,7 @@ sub handler {
defd => 'Default dates for member access',
stuv => 'Member-viewable membership list options',
stul => 'Member agreement needed to be listed',
- clas => 'Membership and Facilitator Listing',
+ clas => 'Membership and facilitator listing',
priv => 'Privileged users (Domain Coordinators) in facilitator listing',
defc => 'Default Community Spreadsheet',
defs => 'Default User Spreadsheet',
@@ -294,8 +295,8 @@ sub handler {
);
} else {
%lt = (
- conf => 'Course Configuration',
- edit => 'Edit Course Configuration',
+ conf => 'Course Settings',
+ edit => 'Edit Course Settings',
gens => 'General course settings',
idnu => 'Course ID or number',
desc => 'Course Description',
@@ -313,13 +314,14 @@ sub handler {
defd => 'Default dates for student access',
stuv => 'Student-viewable classlist options',
stul => 'Student agreement needed to be listed',
- clas => 'Classlists and Staff Listing',
+ clas => 'Classlists and staff listing',
priv => 'Privileged users (Domain Coordinators) in staff listing',
defc => 'Default Course Spreadsheet',
defs => 'Default Student Spreadsheet',
seme => 'Send message to student when clicking Done on Tasks',
);
}
+ $lt{'lcrv'} = 'Required LON-CAPA version';
&Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/courseprefs',
text=>$lt{'conf'}});
my $breadcrumbs =
@@ -335,6 +337,14 @@ sub handler {
return OK;
}
+ if ($phase eq 'releaseinfo') {
+ my $loncaparev = $env{'course.'.$cid.'.internal.releaserequired'};
+ if ($loncaparev) {
+ &display_loncaparev_constraints($r,$navmap,$loncaparev,$crstype);
+ return OK;
+ }
+ }
+
my %values=&Apache::lonnet::dump('environment',$cdom,$cnum);
my @prefs_order = ('courseinfo','localization','feedback','discussion',
'classlists','appearance','grading','printouts',
@@ -343,12 +353,10 @@ sub handler {
my %prefs = (
'courseinfo' =>
{ text => $lt{'gens'},
- help => 'Course_Environment',
- header => [{col1 => 'Setting',
- col2 => 'Value'}],
- ordered => ['owner','co-owners','description','courseid',
- 'categories','hidefromcat','externalsyllabus',
- 'cloners','url','rolenames'],
+ help => 'Course_Prefs_General',
+ ordered => ['owner','co-owners','loncaparev','description',
+ 'courseid','categories','hidefromcat',
+ 'externalsyllabus','cloners','url','rolenames'],
itemtext => {
'owner' => $lt{'ownr'},
'co-owners' => $lt{'cown'},
@@ -360,13 +368,12 @@ sub handler {
'externalsyllabus' => 'URL of Syllabus',
'url' => 'Top Level Map',
'rolenames' => $lt{'rept'},
+ 'loncaparev' => $lt{'lcrv'},
},
},
'localization' =>
- { text => 'Language/TimeZone/Locale',
- help => 'Course_Environment',
- header => [{col1 => 'Setting',
- col2 => 'Value',}],
+ { text => 'Language and time localization',
+ help => 'Course_Prefs_Language',
ordered => ['languages','timezone','datelocale'],
itemtext => {
languages => 'Languages used',
@@ -376,11 +383,9 @@ sub handler {
},
'feedback' =>
{ text => 'Feedback messages',
- help => 'Course_Environment',
+ help => 'Course_Prefs_Feedback',
header => [{col1 => 'Questions about:',
- col2 => 'Recipients'},
- {col1 => 'Questions about:',
- col2 => 'Custom Text'}],
+ col2 => 'Recipients'}],
ordered => ['question.email','comment.email','policy.email'],
itemtext => {
'question.email' => 'Resource Content',
@@ -390,25 +395,25 @@ sub handler {
},
'discussion' =>
{ text => 'Discussion and Chat',
- help => 'Course_Environment',
- header => [{col1 => 'Setting',
- col2 => 'Value',}],
+ help => 'Course_Prefs_Discussions',
ordered => ['pch.roles.denied','pch.users.denied',
'plc.roles.denied','plc.users.denied',
'allow_limited_html_in_feedback',
- 'allow_discussion_post_editing'],
+ 'allow_discussion_post_editing',
+ 'discussion_post_fonts'],
itemtext => {
'pch.roles.denied' => 'No Resource Discussion',
'pch.users.denied' => 'No Resource Discussion',
'plc.roles.denied' => 'No Chat room use',
'plc.users.denied' => 'No Chat room use',
- allow_limited_html_in_feedback => 'Allow limited HTML in discussion posts',
+ allow_limited_html_in_feedback => 'Allow limited HTML in discussion',
allow_discussion_post_editing => 'Users can edit/delete own discussion posts',
+ discussion_post_fonts => 'Discussion post fonts based on likes/unlikes',
},
},
'classlists' =>
{ text => $lt{'clas'},
- help => 'Course_Environment',
+ help => 'Course_Prefs_Classlists',
header => [{col1 => 'Type',
col2 => $lt{'defd'}},
{col1 => 'Setting',
@@ -430,14 +435,12 @@ sub handler {
},
'appearance' =>
{ text => 'Display of resources ',
- help => 'Course_Environment',
- header => [{col1 => 'Setting',
- col2 => 'Value'}],
+ help => 'Course_Prefs_Display',
ordered => ['default_xml_style','pageseparators',
'disable_receipt_display','texengine',
'tthoptions'],
itemtext => {
- default_xml_style => 'Default XML Style File',
+ default_xml_style => 'Default XML style file',
pageseparators => 'Visibly Separate Items on Pages',
disable_receipt_display => 'Disable display of problem receipts',
texengine => 'Force use of a specific math rendering engine',
@@ -446,9 +449,7 @@ sub handler {
},
'grading' =>
{ text => 'Grading',
- help => 'Course_Environment',
- header => [{col1 => 'Setting',
- col2 => 'Value',}],
+ help => 'Course_Prefs_Grading',
ordered => ['grading','rndseed',
'receiptalg','disablesigfigs'],
itemtext => {
@@ -461,25 +462,22 @@ sub handler {
},
'printouts' =>
{ text => 'Printout generation',
- help => 'Course_Environment',
- header => [{col1 => 'Setting',
- col2 => 'Value',}],
+ 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',
default_paper_size => 'Default paper type',
print_header_format => 'Print header format',
- disableexampointprint => 'Disable automatically printing point values on exams',
+ disableexampointprint => 'Disable automatically printing point values on bubblesheet exams',
+ canuse_pdfforms => 'Users can print problems as PDF forms and upload later for grading',
},
},
'spreadsheet' =>
{ text => 'Spreadsheets',
- help => 'Course_Environment',
- header => [{col1 => 'Setting',
- col2 => 'Value'}],
+ help => 'Course_Prefs_Spreadsheet',
ordered => ['spreadsheet_default_classcalc',
'spreadsheet_default_studentcalc',
'spreadsheet_default_assesscalc','hideemptyrows'],
@@ -492,9 +490,7 @@ sub handler {
},
'bridgetasks' =>
{ text => 'Bridge tasks',
- help => 'Course_Environment',
- header => [{col1 => 'Setting',
- col2 => 'Value'}],
+ help => 'Course_Prefs_Bridgetasks',
ordered => ['task_messages','task_grading',
'suppress_embed_prompt'],
itemtext => {
@@ -505,7 +501,7 @@ sub handler {
},
'other' =>
{ text => 'Other settings',
- help => 'Course_Environment',
+ help => 'Course_Prefs_Other',
header => [ {col1 => 'Item',
col2 => 'Value',
}],
@@ -515,15 +511,15 @@ sub handler {
my @allitems = &get_allitems(%prefs);
&Apache::lonconfigsettings::make_changes($r,$cdom,$phase,$context,
\@prefs_order,\%prefs,\%values,
- $cnum,undef,\@allitems);
+ $cnum,undef,\@allitems,'coursepref');
} elsif ($phase eq 'display') {
- my $jscript = &get_jscript($cdom,$phase,$crstype);
+ my $jscript = &get_jscript($cid,$cdom,$phase,$crstype);
my @allitems = &get_allitems(%prefs);
&Apache::lonconfigsettings::display_settings($r,$cdom,$phase,$context,
- \@prefs_order,\%prefs,\%values,undef,$jscript,\@allitems,$crstype);
+ \@prefs_order,\%prefs,\%values,undef,$jscript,\@allitems,$crstype,'coursepref');
} else {
&Apache::lonconfigsettings::display_choices($r,$phase,$context,
- \@prefs_order,\%prefs);
+ \@prefs_order,\%prefs,'coursepref');
}
return OK;
}
@@ -552,19 +548,27 @@ sub print_config_box {
my $output =
'
The server encountered an internal error or
misconfiguration and was unable to complete
your request.
Please contact the server administrator at
root@localhost to inform them of the time this error occurred,
and the actions you performed just before this error.
More information about this error may be available
in the server error log.