--- loncom/interface/courseprefs.pm 2010/09/17 23:57:33 1.8.2.14
+++ loncom/interface/courseprefs.pm 2012/06/22 20:33:15 1.50
@@ -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.50 2012/06/22 20:33:15 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',
+ 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,7 +548,7 @@ sub print_config_box {
my $output =
'