--- loncom/interface/lonparmset.pm 2006/07/03 12:59:58 1.319
+++ loncom/interface/lonparmset.pm 2006/08/09 21:11:34 1.331
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.319 2006/07/03 12:59:58 foxr Exp $
+# $Id: lonparmset.pm,v 1.331 2006/08/09 21:11:34 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -508,21 +508,26 @@ sub storeparm_by_symb_inner {
Format a value for output.
-Inputs: $value, $type
+Inputs: $value, $type, $editable
Returns: $value, formatted for output. If $type indicates it is a date,
localtime($value) is returned.
+$editable will return an icon to click on
=cut
##################################################
##################################################
sub valout {
- my ($value,$type)=@_;
+ my ($value,$type,$editable)=@_;
my $result = '';
# Values of zero are valid.
if (! $value && $value ne '0') {
- $result = ' ';
+ if ($editable) {
+ $result = '* ';
+ } else {
+ $result=' ';
+ }
} else {
if ($type eq 'date_interval') {
my ($sec,$min,$hour,$mday,$mon,$year)=gmtime($value);
@@ -590,7 +595,7 @@ sub plink {
return '
';
+ &valout($value,$type,1).'';
}
sub page_js {
@@ -655,7 +660,7 @@ sub startpage {
&page_js(),
{'add_entries' => \%loaditems,});
my $breadcrumbs =
- &Apache::lonhtmlcommon::breadcrumbs('Table Mode Parameter Setting');
+ &Apache::lonhtmlcommon::breadcrumbs('Table Mode Parameter Setting','Table_Mode');
$r->print(<';
my $start_page =
- &Apache::loncommon::start_page('Set Course Environment Parameters',
+ &Apache::loncommon::start_page('Set Course Environment',
$browse_js);
my $end_page =
&Apache::loncommon::end_page();
@@ -2584,15 +2589,6 @@ sub listdata {
$oldpart=$part;
}
#
-# Preset defaults?
-#
- my ($hour,$min,$sec,$val)=('','','','');
- unless ($$resourcedata{$thiskey}) {
- my ($parmname)=($thiskey=~/\.(\w+)$/);
- ($hour,$min,$sec,$val)=&preset_defaults($parmname);
- }
-
-#
# Ready to print
#
$r->print(&tablestart().
@@ -2608,7 +2604,7 @@ sub listdata {
&Apache::lonhtmlcommon::date_setter('parmform',
$jskey,
$$resourcedata{$thiskey},
- '',1,'','',$hour,$min,$sec).
+ '',1,'','').
' '.
&date_sanity_info($$resourcedata{$thiskey})
);
@@ -2616,8 +2612,6 @@ sub listdata {
my $showval;
if (defined($$resourcedata{$thiskey})) {
$showval=$$resourcedata{$thiskey};
- } else {
- $showval=$val;
}
$r->print(' print(' ');
@@ -3003,10 +2995,12 @@ ENDMAINFORMHEAD
my $vgr = &Apache::lonnet::allowed('vgr',$env{'request.course.id'});
my @menu =
- (
- { text => 'Set Course Environment Parameters',
+ ( { divider=>'Settings for Your Course',
+ },
+ { text => 'Set Course Environment',
action => 'crsenv',
permission => $parm_permission,
+ help => 'Course_Environment',
},
{ text => 'Set Portfolio Metadata',
action => 'setrestrictmeta',
@@ -3016,29 +3010,34 @@ ENDMAINFORMHEAD
url => '/adm/slotrequest?command=showslots',
permission => $vgr,
},
- { divider => 1,
+ { text => 'Set Parameter Setting Default Actions',
+ action => 'setdefaults',
+ permission => $parm_permission,
+ },
+ { divider => 'New and Existing Parameter Settings for Your Resources',
},
{ text => 'Set/Modify Resource Parameters - Helper Mode',
url => '/adm/helper/parameter.helper',
permission => $parm_permission,
+ help => 'Parameter_Helper',
},
- { text => 'Modify Resource Parameters - Overview Mode',
- action => 'setoverview',
- permission => $parm_permission,
- },
- { text => 'Set Resource Parameters - Overview Mode',
+ { text => 'Set/Modify Resource Parameters - Overview Mode',
action => 'newoverview',
permission => $parm_permission,
+ help => 'Parameter_Overview',
},
{ text => 'Set/Modify Resource Parameters - Table Mode',
action => 'settable',
permission => $parm_permission,
- help => 'Cascading_Parameters',
+ help => 'Table_Mode',
},
- { text => 'Set Parameter Setting Default Actions',
- action => 'setdefaults',
+ { divider => 'Existing Parameter Settings for Your Resources',
+ },
+ { text => 'Modify Resource Parameters - Overview Mode',
+ action => 'setoverview',
permission => $parm_permission,
- },
+ help => 'Parameter_Overview',
+ },
{ text => 'Parameter Change Log and Course Blog Posting/User Notification',
action => 'parameterchangelog',
permission => $parm_permission,
@@ -3047,7 +3046,7 @@ ENDMAINFORMHEAD
my $menu_html = '';
foreach my $menu_item (@menu) {
if ($menu_item->{'divider'}) {
- $menu_html .= ' ';
+ $menu_html .= ''.&mt($menu_item->{'divider'}).' ';
next;
}
next if (! $menu_item->{'permission'});
@@ -3315,14 +3314,16 @@ ENDYESNO
}
sub components {
- my ($key,$uname,$udom,$exeuser,$exedomain)=@_;
- my $typeflag=0;
- if ($key=~/\.type$/) {
+ my ($key,$uname,$udom,$exeuser,$exedomain,$typeflag)=@_;
+
+ if ($typeflag) {
$key=~s/\.type$//;
- $typeflag=1;
}
+
+ my ($middle,$part,$name)=
+ ($key=~/^$env{'request.course.id'}\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/);
my $issection;
- my ($middle,$part,$name)=($key=~/^$env{'request.course.id'}\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/);
+
my $section=&mt('All Students');
if ($middle=~/^\[(.*)\]/) {
$issection=$1;
@@ -3346,31 +3347,33 @@ sub components {
$realmdescription=&mt('resource').' '.&Apache::lonnet::gettitle($middle);
}
my $what=$part.'.'.$name;
- return ($realm,$section,$name,$part,$typeflag,
+ return ($realm,$section,$name,$part,
$what,$middle,$uname,$udom,$issection,$realmdescription);
}
+my %standard_parms;
+sub load_parameter_names {
+ open(my $config,"<$Apache::lonnet::perlvar{'lonTabDir'}/packages.tab");
+ while (my $configline=<$config>) {
+ if ($configline !~ /\S/ || $configline=~/^\#/) { next; }
+ chomp($configline);
+ my ($short,$plain)=split(/:/,$configline);
+ my (undef,$name,$type)=split(/\&/,$short,3);
+ if ($type eq 'display') {
+ $standard_parms{$name} = $plain;
+ }
+ }
+ close($config);
+ $standard_parms{'int_pos'} = 'Positive Integer';
+ $standard_parms{'int_zero_pos'} = 'Positive Integer or Zero';
+ %standard_parms=&Apache::lonlocal::texthash(%standard_parms);
+}
+
sub standard_parameter_names {
my ($name)=@_;
- my %standard_parms=&Apache::lonlocal::texthash('duedate' => 'Due Date',
- 'answerdate' => 'Answer Date',
- 'opendate' => 'Open Date',
- 'maxtries' => 'Max. Number of Tries',
- 'weight' => 'Weight',
- 'date_start' => 'Starting Date',
- 'date_end' => 'Ending Date',
- 'interval' => 'Time Interval Length',
- 'tol' => 'Numerical Tolerance',
- 'sig' => 'Significant Digits',
- 'contentopen' => 'Content Opening Date',
- 'contentclose' => 'Content Closing Date',
- 'discussend' => 'End of Discussion Time',
- 'discusshide' => 'Discussion Hidden',
- 'problemstatus' => 'Problem Status Visible',
- 'int_pos' => 'Positive Integer',
- 'int_zero_pos' => 'Positive Integer or Zero',
- 'hinttries' => 'Number of Tries till Hints appear',
- 'numbubbles' => 'Number of Bubbles in Exam Mode');
+ if (!%standard_parms) {
+ &load_parameter_names();
+ }
if ($standard_parms{$name}) {
return $standard_parms{$name};
} else {
@@ -3385,17 +3388,17 @@ sub standard_parameter_names {
sub parm_change_log {
my ($r)=@_;
- &startpage($r);
+ $r->print(&Apache::loncommon::start_page('Parameter Change Log'));
+ $r->print(&Apache::lonhtmlcommon::breadcrumbs('Parameter Change Log'));
+
my %parmlog=&Apache::lonnet::dump('nohist_parameterlog',
$env{'course.'.$env{'request.course.id'}.'.domain'},
$env{'course.'.$env{'request.course.id'}.'.num'});
if ((keys(%parmlog))[0]=~/^error\:/) { undef(%parmlog); }
- $r->print('');
my $courseopt=&Apache::lonnet::get_courseresdata($env{'course.'.$env{'request.course.id'}.'.num'},
$env{'course.'.$env{'request.course.id'}.'.domain'});
@@ -3421,6 +3426,8 @@ sub parm_change_log {
foreach my $id (sort { $parmlog{$b}{'exe_time'}<=>$parmlog{$a}{'exe_time'} } (keys(%parmlog))) {
my @changes=keys(%{$parmlog{$id}{'logentry'}});
my $count=$#changes+1;
+ if (!$env{'form.includetypes'}) { $count=int($count/2); }
+ if ($count == 0) { $count = 1; }
my $time =
&Apache::lonlocal::locallocaltime($parmlog{$id}{'exe_time'});
my $plainname =
@@ -3447,10 +3454,15 @@ sub parm_change_log {
my $makenewrow=0;
my %istype=();
foreach my $changed (reverse(sort(@changes))) {
- my $value=$parmlog{$id}{'logentry'}->{$changed};
- my ($realm,$section,$parmname,$part,$typeflag,$what,$middle,$uname,$udom,$issection,$realmdescription)=
- &components($changed,$parmlog{$id}{'uname'},$parmlog{$id}{'udom'});
- if ($typeflag) { $istype{$parmname}=$value; }
+ my $value=$parmlog{$id}{'logentry'}{$changed};
+ my $typeflag = ($changed =~/\.type$/ &&
+ !exists($parmlog{$id}{'logentry'}{$changed.'.type'}));
+ my ($realm,$section,$parmname,$part,$what,$middle,$uname,$udom,$issection,$realmdescription)=
+ &components($changed,$parmlog{$id}{'uname'},$parmlog{$id}{'udom'},undef,undef,$typeflag);
+ if ($typeflag) {
+ $istype{$parmname}=$value;
+ if (!$env{'form.includetypes'}) { next; }
+ }
if ($makenewrow) { $r->print($row_start); } else { $makenewrow=1; }
$r->print(''.$realm.' '.$section.' '.
&standard_parameter_names($parmname).' '.
@@ -3500,7 +3512,6 @@ sub parm_change_log {
|| $shown<=$env{'form.show'})) { last; }
}
$r->print(&Apache::loncommon::end_data_table());
- $r->print('');
$r->print(&Apache::loncommon::end_page());
}
@@ -3539,7 +3550,8 @@ sub handler {
&Apache::lonhtmlcommon::add_breadcrumb({href=>"/adm/parmset",
text=>"Parameter Manager",
faq=>10,
- bug=>'Instructor Interface'});
+ bug=>'Instructor Interface',
+ help => 'Parameter_Manager'});
# ----------------------------------------------------- Needs to be in a course
my $parm_permission =
@@ -3564,6 +3576,8 @@ sub handler {
# the table mode
if ((($env{'form.command'} eq 'set') && ($env{'form.url'})
&& (!$env{'form.dis'})) || ($env{'form.symb'})) {
+ &Apache::lonhtmlcommon::add_breadcrumb({help=>'Problem_Parameters',
+ text=>"Problem Parameters"});
&assessparms($r);
} elsif (! exists($env{'form.action'})) {