--- loncom/interface/lonparmset.pm 2011/05/18 11:26:44 1.512
+++ loncom/interface/lonparmset.pm 2012/08/27 15:33:38 1.526
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.512 2011/05/18 11:26:44 foxr Exp $
+# $Id: lonparmset.pm,v 1.526 2012/08/27 15:33:38 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -204,8 +204,8 @@ Outputs: See list below:
Show assessment data and parameters. This is a large routine that should
be simplified and shortened... someday.
-Inputs: $r
-
+Inputs: $r - the Apache request object.
+
Returns: nothing
Variables used (guessed by Jeremy):
@@ -322,10 +322,10 @@ sub startSettingsScreen {
&mt('Course Settings').
' ');
- $r->print("\n".'
');
+ $r->print(&Apache::loncommon::start_data_table());
#
# This produces the headers
#
@@ -2514,7 +2533,7 @@ ENDTABLEHEADFOUR
}
} # end foreach ids
# -------------------------------------------------- End entry for one resource
- $r->print('
');
+ $r->print(&Apache::loncommon::end_data_table);
} # end of full
#--------------------------------------------------- Entry for parm level map
if ($parmlev eq 'map') {
@@ -2805,25 +2824,38 @@ sub storedata {
$tkey=~s/\.\[useropt\:$tuname\:$tudom\]\./\./;
}
if ($cmd eq 'set' || $cmd eq 'datepointer' || $cmd eq 'dateinterval') {
- my ($data, $typeof, $text);
+ my ($data, $typeof, $text, $name);
if ($cmd eq 'set') {
$data=$env{$key};
$typeof=$env{'form.typeof_'.$thiskey};
$text = &mt('Saved modified parameter for');
if ($typeof eq 'string_questiontype') {
+ $name = 'type';
+ } elsif ($typeof eq 'string_lenient') {
+ $name = 'lenient';
+ } elsif ($typeof eq 'string_discussvote') {
+ $name = 'discussvote';
+ } elsif ($typeof eq 'string_yesno') {
+ if ($thiskey =~ /\.retrypartial$/) {
+ $name = 'retrypartial';
+ }
+ }
+ if ($name ne '') {
my ($needsrelease,$needsnewer);
- $needsrelease = $Apache::lonnet::needsrelease{'parameter:type:'.$data};
+ $needsrelease = $Apache::lonnet::needsrelease{"parameter:$name:$data"};
if ($needsrelease) {
unless ($got_chostname) {
- ($chostname,$cmajor,$cminor)=&questiontype_release_vars();
+ ($chostname,$cmajor,$cminor)=¶meter_release_vars();
$got_chostname = 1;
}
- $needsnewer = &questiontype_releasecheck($data,$needsrelease,
- $chostname,$cmajor,
- $cminor);
+ $needsnewer = ¶meter_releasecheck($name,$data,
+ $needsrelease,
+ $chostname,$cmajor,
+ $cminor);
}
if ($needsnewer) {
- $r->print(' '.&oldversion_warning($data,$chostname,$cmajor,
+ $r->print(' '.&oldversion_warning($name,$data,
+ $chostname,$cmajor,
$cminor,$needsrelease));
next;
}
@@ -3058,7 +3090,7 @@ sub listdata {
$$resourcedata{$thiskey}));
} elsif ($thistype =~ m/^string/) {
$r->print(&string_selector($thistype,$thiskey,
- $$resourcedata{$thiskey}));
+ $$resourcedata{$thiskey},$name));
} else {
$r->print(&default_selector($thiskey,$$resourcedata{$thiskey}));
}
@@ -3132,6 +3164,14 @@ my %strings =
[ 'randomizetry', 'New Randomization Each N Tries (default N=1)'],
[ 'practice', 'Practice'],
[ 'surveycred', 'Survey (credit for submission)']],
+ 'string_lenient'
+ => [['yes', 'Yes' ],
+ [ 'no', 'No' ],
+ [ 'default', 'Default - only bubblesheet grading is lenient' ]],
+ 'string_discussvote'
+ => [['yes','Yes'],
+ ['notended','Yes, unless discussion ended'],
+ ['no','No']],
);
sub standard_string_options {
@@ -3143,33 +3183,37 @@ sub standard_string_options {
}
sub string_selector {
- my ($thistype, $thiskey, $showval) = @_;
+ my ($thistype, $thiskey, $showval, $name) = @_;
if (!exists($strings{$thistype})) {
return &default_selector($thiskey,$showval);
}
my %skiptype;
- if ($thistype eq 'string_questiontype') {
+ if (($thistype eq 'string_questiontype') ||
+ ($thistype eq 'string_lenient') ||
+ ($thistype eq 'string_discussvote') ||
+ ($name eq 'retrypartial')) {
my ($got_chostname,$chostname,$cmajor,$cminor);
foreach my $possibilities (@{ $strings{$thistype} }) {
next unless (ref($possibilities) eq 'ARRAY');
- my ($name, $description) = @{ $possibilities };
- my $needsrelease=$Apache::lonnet::needsrelease{'parameter:type:'.$name};
+ my ($parmval, $description) = @{ $possibilities };
+ my $needsrelease=$Apache::lonnet::needsrelease{"parameter:$name:$parmval"};
if ($needsrelease) {
unless ($got_chostname) {
- ($chostname,$cmajor,$cminor)=&questiontype_release_vars();
+ ($chostname,$cmajor,$cminor)=¶meter_release_vars();
$got_chostname = 1;
}
- my $needsnewer=&questiontype_releasecheck($name,$needsrelease,
- $chostname,$cmajor,
- $cminor);
+ my $needsnewer=¶meter_releasecheck($name,$parmval,$needsrelease,
+ $chostname,$cmajor,
+ $cminor);
if ($needsnewer) {
- $skiptype{$name} = 1;
+ $skiptype{$parmval} = 1;
}
}
}
}
+
my $result;
my $numinrow = 3;
@@ -3262,7 +3306,21 @@ sub newoverview {
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
&Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview',
text=>"Overview Mode"});
- my $start_page = &Apache::loncommon::start_page('Set Parameters');
+
+ my %loaditems = (
+ 'onload' => "showHide_courseContent(); resize_scrollbox('mapmenuscroll','1','1');",
+ );
+ my $js = '
+
+';
+ my $start_page = &Apache::loncommon::start_page('Set Parameters',$js,
+ {'add_entries' => \%loaditems,});
my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Overview');
$r->print($start_page.$breadcrumbs);
&startSettingsScreen($r,'parmset');
@@ -3294,7 +3352,7 @@ ENDOVER
my $pschp=$env{'form.pschp'};
my @psprt=&Apache::loncommon::get_env_multiple('form.psprt');
- if (!@psprt) { $psprt[0]='0'; }
+ if (!@psprt) { $psprt[0]='all'; }
my @selected_sections =
&Apache::loncommon::get_env_multiple('form.Section');
@@ -3328,7 +3386,7 @@ ENDOVER
$r->print('
');
#$r->print('
Step 1
');
$r->print('
');
- $r->print(&Apache::lonhtmlcommon::start_pick_box());
+ $r->print(&Apache::lonhtmlcommon::start_pick_box(undef,'parmlevel'));
&levelmenu($r,\%alllevs,$parmlev);
if ($parmlev ne 'general') {
$r->print(&Apache::lonhtmlcommon::row_closure());
@@ -3661,6 +3719,11 @@ ENDMAINFORMHEAD
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
my $vgr = &Apache::lonnet::allowed('vgr',$env{'request.course.id'});
my $mgr = &Apache::lonnet::allowed('mgr',$env{'request.course.id'});
+ my $dcm = &Apache::lonnet::allowed('dcm',$env{'request.course.id'});
+ if ((!$dcm) && ($env{'request.course.sec'} ne '')) {
+ $dcm = &Apache::lonnet::allowed('dcm',$env{'request.course.id'}.
+ '/'.$env{'request.course.sec'});
+ }
my $crstype = &Apache::loncommon::course_type();
my $lc_crstype = lc($crstype);
@@ -3680,7 +3743,12 @@ ENDMAINFORMHEAD
linktitle => "Reset access times for folders/maps, resources or the $lc_crstype." ,
icon => 'start-here.png' ,
},
-
+ { linktext => 'Blocking Communication/Resource Access',
+ url => '/adm/setblock',
+ permission => $dcm,
+ linktitle => 'Configure blocking of communication/collaboration and access to resources during an exam',
+ icon => 'comblock.png',
+ },
{ linktext => 'Set Parameter Setting Default Actions',
url => '/adm/parmset?action=setdefaults',
permission => $parm_permission,
@@ -4306,7 +4374,12 @@ sub parm_change_log {
my ($r)=@_;
&Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=settable',
text=>"Parameter Change Log"});
- $r->print(&Apache::loncommon::start_page('Parameter Change Log'));
+ my $js = ''."\n";
+ $r->print(&Apache::loncommon::start_page('Parameter Change Log',$js));
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Parameter Change Log'));
&startSettingsScreen($r,'parmset');
my %parmlog=&Apache::lonnet::dump('nohist_parameterlog',
@@ -4315,7 +4388,9 @@ sub parm_change_log {
if ((keys(%parmlog))[0]=~/^error\:/) { undef(%parmlog); }
- $r->print('