'.
@@ -1144,7 +1162,7 @@ ENDTABLEHEADFOUR
' '.
"$bighash{'title_'.$rid}");
+ " TARGET=_self>$title");
if ($thistitle) {
$r->print(' ('.$thistitle.')');
@@ -1259,20 +1277,22 @@ ENDMAPONE
('firstname','middlename','lastname','generation', 'id'));
my $person=$name{'firstname'}.' '.$name{'middlename'}.' '
.$name{'lastname'}.' '.$name{'generation'};
- $r->print("User $uname \($person\) in \n");
+ $r->print(&mt("User")." $uname \($person\) ".
+ &mt('in')." \n");
} else {
- $r->print("all users in \n");
+ $r->print("".&mt('all').' '.&mt('users in')." \n");
}
- if ($csec) {$r->print("Section $csec of \n")};
+ if ($csec) {$r->print(&mt("Section")." $csec ".
+ &mt('of')." \n")};
$r->print("$coursename ");
$r->print("\n");
#---------------------------------------------------------------- print table
$r->print('
');
- $r->print('Parameter Name ');
- $r->print('Default Value ');
- $r->print('Parameter in Effect ');
+ $r->print(''.&mt('Parameter Name').' ');
+ $r->print(''.&mt('Default Value').' ');
+ $r->print(''.&mt('Parameter in Effect').' ');
foreach (sort keys %name) {
&print_row($r,$_,\%part,\%name,$mapid,\%default,
@@ -1338,18 +1358,18 @@ ENDMAPONE
('firstname','middlename','lastname','generation', 'id'));
my $person=$name{'firstname'}.' '.$name{'middlename'}.' '
.$name{'lastname'}.' '.$name{'generation'};
- $r->print(" User $uname \($person\) \n");
+ $r->print(" ".&mt("User")." $uname \($person\) \n");
} else {
- $r->print("ALL USERS \n");
+ $r->print("".&mt("ALL")." ".&mt("USERS")." \n");
}
- if ($csec) {$r->print("Section $csec \n")};
+ if ($csec) {$r->print(&mt("Section")." $csec \n")};
$r->print("\n");
#---------------------------------------------------------------- print table
$r->print('
');
- $r->print('Parameter Name ');
- $r->print('Default Value ');
- $r->print('Parameter in Effect ');
+ $r->print(''.&mt('Parameter Name').' ');
+ $r->print(''.&mt('Default Value').' ');
+ $r->print(''.&mt('Parameter in Effect').' ');
foreach (sort keys %name) {
&print_row($r,$_,\%part,\%name,$mapid,\%default,
@@ -1372,7 +1392,7 @@ ENDMAPONE
=item crsenv
-Show course data and parameters. This is a large routine that should
+Show and set course data and parameters. This is a large routine that should
be simplified and shortened... someday.
Inputs: $r
@@ -1390,50 +1410,71 @@ sub crsenv {
'Set Course Environment Parameters');
my $dom = $ENV{'course.'.$ENV{'request.course.id'}.'.domain'};
my $crs = $ENV{'course.'.$ENV{'request.course.id'}.'.num'};
-# -------------------------------------------------- Go through list of changes
+
+ #
+ # Go through list of changes
foreach (keys %ENV) {
- if ($_=~/^form\.(.+)\_setparmval$/) {
- my $name=$1;
- my $value=$ENV{'form.'.$name.'_value'};
- if ($name eq 'newp') {
- $name=$ENV{'form.newp_name'};
- }
- if ($name eq 'url') {
- $value=~s/^\/res\///;
- my $bkuptime=time;
- my @tmp = &Apache::lonnet::get
- ('environment',['url'],$dom,$crs);
- $setoutput.='Backing up previous URL: '.
- &Apache::lonnet::put
- ('environment',
- {'top level map backup '.$bkuptime => $tmp[1] },
- $dom,$crs).
- ' ';
+ next if ($_!~/^form\.(.+)\_setparmval$/);
+ my $name = $1;
+ my $value = $ENV{'form.'.$name.'_value'};
+ if ($name eq 'newp') {
+ $name = $ENV{'form.newp_name'};
+ }
+ if ($name eq 'url') {
+ $value=~s/^\/res\///;
+ my $bkuptime=time;
+ my @tmp = &Apache::lonnet::get
+ ('environment',['url'],$dom,$crs);
+ $setoutput.=&mt('Backing up previous URL').': '.
+ &Apache::lonnet::put
+ ('environment',
+ {'top level map backup '.$bkuptime => $tmp[1] },
+ $dom,$crs).
+ ' ';
+ }
+ #
+ # Deal with modified default spreadsheets
+ if ($name =~ /^spreadsheet_default_(classcalc|
+ studentcalc|
+ assesscalc)$/x) {
+ my $sheettype = $1;
+ if ($sheettype eq 'classcalc') {
+ # no need to do anything since viewing the sheet will
+ # cause it to be updated.
+ } elsif ($sheettype eq 'studentcalc') {
+ # expire all the student spreadsheets
+ &Apache::lonnet::expirespread('','','studentcalc');
+ } else {
+ # expire all the assessment spreadsheets
+ # this includes non-default spreadsheets, but better to
+ # be safe than sorry.
+ &Apache::lonnet::expirespread('','','assesscalc');
+ # expire all the student spreadsheets
+ &Apache::lonnet::expirespread('','','studentcalc');
}
- if ($name =~ /^spreadsheet_default_(classcalc|
- studentcalc|
- assesscalc)$/x) {
- my $sheettype = $1;
- if ($sheettype eq 'classcalc') {
- # no need to do anything since viewing the sheet will
- # cause it to be updated.
- } elsif ($sheettype eq 'studentcalc') {
- # expire all the student spreadsheets
- &Apache::lonnet::expirespread('','','studentcalc');
- } else {
- # expire all the default assessment spreadsheets
- }
+ }
+ #
+ # Deal with the enrollment dates
+ if ($name =~ /^default_enrollment_(start|end)_date$/) {
+ $value=&Apache::lonhtmlcommon::get_date_from_form($name.'_value');
+ }
+ #
+ # Let the user know we made the changes
+ if ($name) {
+ my $put_result = &Apache::lonnet::put('environment',
+ {$name=>$value},$dom,$crs);
+ if ($put_result eq 'ok') {
+ $setoutput.=&mt('Set').' '.$name.' '.&mt('to').' '.$value.' . ';
+ } else {
+ $setoutput.=&mt('Unable to set').' '.$name.' '.&mt('to').
+ ' '.$value.' '.&mt('due to').' '.$put_result.'. ';
}
-
- if ($name) {
- $setoutput.='Setting '.$name.' to '.
- $value.' : '.
- &Apache::lonnet::put
- ('environment',{$name=>$value},$dom,$crs).
- ' ';
- }
}
}
+# ------------------------- Re-init course environment entries for this session
+
+ &Apache::lonnet::coursedescription($ENV{'request.course.id'});
+
# -------------------------------------------------------- Get parameters again
my %values=&Apache::lonnet::dump('environment',$dom,$crs);
@@ -1443,16 +1484,20 @@ sub crsenv {
('url' => 'Top Level Map '.
'".
- 'Browse '.
+ 'Select Map '.
'Modification may make assessment data '.
'inaccessible ',
'description' => 'Course Description ',
'courseid' => 'Course ID or number '.
'(internal, optional)',
+ 'grading' => 'Grading '.
+ '"standard" or any other value. '.
+ 'Default for new courses is "standard".',
+
'default_xml_style' => 'Default XML Style File '.
'Browse ",
+ ",'sty')\">Select Style File ",
'question.email' => 'Feedback Addresses for Resource Content '.
'Questions (user:domain,'.
'user:domain(section;section;...;*;...),... )',
@@ -1465,6 +1510,17 @@ sub crsenv {
'pageseparators' => 'Visibly Separate Items on Pages '.
'("yes " for visible separation, '.
'changes will not show until next login)',
+
+ 'plc.roles.denied'=> 'Disallow live chatroom use for '.
+ 'Roles "st ": '.
+ 'student, "ta ": '.
+ 'TA, "in ": '.
+ 'instructor;role,role,... ) '.
+ Apache::loncommon::help_open_topic("Course_Disable_Discussion"),
+ 'plc.users.denied' =>
+ 'Disallow live chatroom use for Users '.
+ '(user:domain,user:domain,... )',
+
'pch.roles.denied'=> 'Disallow Resource Discussion for '.
'Roles "st ": '.
'student, "ta ": '.
@@ -1478,48 +1534,91 @@ sub crsenv {
=> 'Default Course Spreadsheet '.
'Browse ",
+ ",'spreadsheet')\">Select Spreadsheet File ",
'spreadsheet_default_studentcalc'
=> 'Default Student Spreadsheet '.
'Browse ",
+ ",'spreadsheet')\">Select Spreadsheet File ",
'spreadsheet_default_assesscalc'
=> 'Default Assessment Spreadsheet '.
'Browse ",
+ ",'spreadsheet')\">Select Spreadsheet File ",
'allow_limited_html_in_feedback'
=> 'Allow limited HTML in discussion posts '.
- '(Set value to yes to allow)',
+ '(Set value to "yes " to allow)',
'rndseed'
=> 'Randomization algorithm used '.
'Modifying this will make problems '.
'have different numbers and answers ',
'problem_stream_switch'
- => 'Allow problems to be splitted over pages '.
- ' (yes if allow anything else if not )'
- );
- foreach (keys(%values)) {
- unless ($descriptions{$_}) {
- $descriptions{$_}=$_;
+ => 'Allow problems to be split over pages '.
+ ' ("yes " if allowed, anything else if not)',
+ 'anonymous_quiz'
+ => 'Anonimous quiz/exam '.
+ ' (yes to avoid print students names )',
+ 'default_enrollment_start_date' => 'Default beginning date '.
+ 'when enrolling students ',
+ 'default_enrollment_end_date' => 'Default ending date '.
+ 'when enrolling students ',
+ 'languages' => 'Languages used ',
+ 'disable_receipt_display'
+ => 'Disable display of problem receipts '.
+ ' ("yes " to disable, anything else if not)'
+ );
+ my @Display_Order = ('url','description','courseid','grading',
+ 'default_xml_style','pageseparators',
+ 'question.email','comment.email','policy.email',
+ 'plc.roles.denied','plc.users.denied',
+ 'pch.roles.denied','pch.users.denied',
+ 'allow_limited_html_in_feedback',
+ 'languages',
+ 'rndseed',
+ 'problem_stream_switch',
+ 'disable_receipt_display',
+ 'spreadsheet_default_classcalc',
+ 'spreadsheet_default_studentcalc',
+ 'spreadsheet_default_assesscalc',
+ 'hideemptyrows',
+ 'default_enrollment_start_date',
+ 'default_enrollment_end_date',
+ );
+ foreach my $parameter (sort(keys(%values))) {
+ if (! $descriptions{$parameter}) {
+ $descriptions{$parameter}=$parameter;
+ push(@Display_Order,$parameter);
}
}
- foreach (sort keys %descriptions) {
+ foreach my $parameter (@Display_Order) {
+ my $description = $descriptions{$parameter};
# onchange is javascript to automatically check the 'Set' button.
my $onchange = 'onFocus="javascript:window.document.forms'.
- '[\'envform\'].elements[\''.$_.'_setparmval\']'.
+ "['envform'].elements['".$parameter."_setparmval']".
'.checked=true;"';
- $output.=''.$descriptions{$_}.' '.
- ' '.
- ' '.
- ' '."\n";
+ $output .= ''.$description.' ';
+ if ($parameter =~ /^default_enrollment_(start|end)_date$/) {
+ $output .= ''.
+ &Apache::lonhtmlcommon::date_setter('envform',
+ $parameter.'_value',
+ $values{$parameter},
+ $onchange).
+ ' ';
+ } else {
+ $output .= ''.
+ &Apache::lonhtmlcommon::textbox($parameter.'_value',
+ $values{$parameter},
+ 40,$onchange).' ';
+ }
+ $output .= ''.
+ &Apache::lonhtmlcommon::checkbox($parameter.'_setparmval').
+ ' ';
+ $output .= " \n";
}
my $onchange = 'onFocus="javascript:window.document.forms'.
'[\'envform\'].elements[\'newp_setparmval\']'.
'.checked=true;"';
- $output.='Create New Environment Variable '.
+ $output.=''.&mt('Create New Environment Variable').' '.
''.
'
ENDENV
}
+##################################################
+
+my $tableopen;
+
+sub tablestart {
+ if ($tableopen) {
+ return '';
+ } else {
+ $tableopen=1;
+ return ''.&mt('Parameter').' '.
+ &mt('Delete').' '.&mt('Set to ...').' ';
+ }
+}
+
+sub tableend {
+ if ($tableopen) {
+ $tableopen=0;
+ return '
';
+ } else {
+ return'';
+ }
+}
+
+sub overview {
+ my $r=shift;
+ my $bodytag=&Apache::loncommon::bodytag(
+ 'Set/Modify Course Assessment Parameters');
+ my $dom = $ENV{'course.'.$ENV{'request.course.id'}.'.domain'};
+ my $crs = $ENV{'course.'.$ENV{'request.course.id'}.'.num'};
+ $r->print(<
+
+LON-CAPA Course Environment
+
+$bodytag
+