--- loncom/interface/lonparmset.pm 2006/04/18 02:13:49 1.292
+++ loncom/interface/lonparmset.pm 2006/04/26 14:52:22 1.296
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.292 2006/04/18 02:13:49 www Exp $
+# $Id: lonparmset.pm,v 1.296 2006/04/26 14:52:22 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -394,30 +394,8 @@ sub storeparm_by_symb {
return '';
}
-{
- my $logid;
- sub log_parmset {
- my ($storehash,$delflag,$uname,$udom)=@_;
- my $logentry=join(',',map {
- &Apache::lonnet::escape($_).'=>'.&Apache::lonnet::escape($$storehash{$_});
- } keys %$storehash);
- $logid++;
- my $id=time().'00000'.$$.'00000'.$logid;
- &Apache::lonnet::put('nohist_parameterlog',
- {
- $id.'_exe_uname' => $env{'user.name'},
- $id.'_exe_udom' => $env{'user.domain'},
- $id.'_exe_time' => time(),
- $id.'_exe_ip' => $ENV{'REMOTE_ADDR'},
- $id.'_delflag' => $delflag,
- $id.'_logentry' => $logentry,
- $id.'_uname' => $uname,
- $id.'_udom' => $udom,
- },
- $env{'course.'.$env{'request.course.id'}.'.domain'},
- $env{'course.'.$env{'request.course.id'}.'.num'}
- );
- }
+sub log_parmset {
+ return &Apache::lonnet::instructor_log('parameterlog',@_);
}
sub storeparm_by_symb_inner {
@@ -2116,7 +2094,8 @@ sub crsenv {
}
# ------------------------- Re-init course environment entries for this session
- &Apache::lonnet::coursedescription($env{'request.course.id'});
+ &Apache::lonnet::coursedescription($env{'request.course.id'}
+ {'freshen_cache' => 1});
# -------------------------------------------------------- Get parameters again
@@ -2355,7 +2334,7 @@ sub tablestart {
return '';
} else {
$tableopen=1;
- return '
'.&mt('Parameter').' '.
+ return &Apache::loncommon::start_data_table().' '.&mt('Parameter').' '.
&mt('Delete').' '.&mt('Set to ...').' ';
}
}
@@ -2363,7 +2342,7 @@ sub tablestart {
sub tableend {
if ($tableopen) {
$tableopen=0;
- return '
';
+ return &Apache::loncommon::end_data_table();
} else {
return'';
}
@@ -2614,8 +2593,10 @@ sub listdata {
#
# Ready to print
#
- $r->print(&tablestart().''.$name.
- ': ');
$foundkeys++;
if (&isdateparm($thistype)) {
@@ -2660,7 +2641,7 @@ sub listdata {
}
$r->print(' ');
- $r->print(' ');
+ $r->print(''.&Apache::loncommon::end_data_table_row());
}
}
return $foundkeys;
@@ -3148,7 +3129,8 @@ sub setrestrictmeta {
}
}
}
- &Apache::lonnet::coursedescription($env{'request.course.id'});
+ &Apache::lonnet::coursedescription($env{'request.course.id'},
+ {'freshen_cache' => 1});
my %metadata_fields = &Apache::lonmeta::fieldnames('portfolio');
foreach my $field (sort(keys(%metadata_fields))) {
&Apache::lonnet::logthis ($field);
@@ -3355,6 +3337,7 @@ sub components {
return ($realm,$section,$name,$part,$typeflag,
$what,$middle,$uname,$udom,$issection);
}
+
sub standard_parameter_names {
my ($name)=@_;
my %standard_parms=&Apache::lonlocal::texthash('duedate' => 'Due Date',
@@ -3363,7 +3346,10 @@ sub standard_parameter_names {
'maxtries' => 'Max. Number of Tries',
'weight' => 'Weight',
'date_start' => 'Starting Date',
- 'date_end' => 'Ending Date');
+ 'date_end' => 'Ending Date',
+ 'int_pos' => 'Positive Integer',
+ 'int_zero_pos' => 'Positive Integer or Zero',
+ 'hinttries' => 'Number of Tries till Hints appear');
if ($standard_parms{$name}) {
return $standard_parms{$name};
} else {
@@ -3377,54 +3363,49 @@ sub parm_change_log {
my %parmlog=&Apache::lonnet::dump('nohist_parameterlog',
$env{'course.'.$env{'request.course.id'}.'.domain'},
$env{'course.'.$env{'request.course.id'}.'.num'});
- my %exetime=();
- foreach my $key (keys(%parmlog)) {
- if ($key=~/^(.+)\_exe\_time$/) {
- $exetime{$1}=$parmlog{$key};
- }
- }
my $courseopt=&Apache::lonnet::get_courseresdata($env{'course.'.$env{'request.course.id'}.'.num'},
$env{'course.'.$env{'request.course.id'}.'.domain'});
$r->print('');
- foreach my $id (sort { $exetime{$b}<=>$exetime{$a} } (keys(%exetime))) {
- my @changes=split(/\,/,$parmlog{$id.'_logentry'});
+ my $bgcolor='#EEEEEE';
+ foreach my $id (sort { $parmlog{$b}{'exe_time'}<=>$parmlog{$a}{'exe_time'} } (keys(%parmlog))) {
+ if ($bgcolor eq '#EEEEEE') { $bgcolor='#FFFFCC'; } else { $bgcolor='#EEEEEE'; }
+ my @changes=keys(%{$parmlog{$id}{'logentry'}});
my $count=$#changes+1;
my $time =
- &Apache::lonlocal::locallocaltime($parmlog{$id.'_exe_time'});
+ &Apache::lonlocal::locallocaltime($parmlog{$id}{'exe_time'});
my $plainname =
- &Apache::loncommon::plainname($parmlog{$id.'_exe_uname'},
- $parmlog{$id.'_exe_udom'});
+ &Apache::loncommon::plainname($parmlog{$id}{'exe_uname'},
+ $parmlog{$id}{'exe_udom'});
my $about_me_link =
&Apache::loncommon::aboutmewrapper($plainname,
- $parmlog{$id.'_exe_uname'},
- $parmlog{$id.'_exe_udom'});
-
- my $send_msg_link;
- if ((($parmlog{$id.'_exe_uname'} ne $env{'user.name'})
- || ($parmlog{$id.'_exe_udom'} ne $env{'user.domain'}))) {
- my $send_msg_link =' '.
+ $parmlog{$id}{'exe_uname'},
+ $parmlog{$id}{'exe_udom'});
+ my $send_msg_link='';
+ if ((($parmlog{$id}{'exe_uname'} ne $env{'user.name'})
+ || ($parmlog{$id}{'exe_udom'} ne $env{'user.domain'}))) {
+ $send_msg_link =' '.
&Apache::loncommon::messagewrapper(&mt('Send message'),
- $parmlog{$id.'_exe_uname'},
- $parmlog{$id.'_exe_udom'});
+ $parmlog{$id}{'exe_uname'},
+ $parmlog{$id}{'exe_udom'});
}
- $r->print(''.$time.'
+ $r->print(''.$time.'
'.$about_me_link.
- ''.$parmlog{$id.'_exe_uname'}.
- ':'.$parmlog{$id.'_exe_udom'}.' '.
+ ''.$parmlog{$id}{'exe_uname'}.
+ ':'.$parmlog{$id}{'exe_udom'}.' '.
$send_msg_link.' ');
my $makenewrow=0;
my %istype=();
- foreach my $changed (sort @changes) {
- my ($key,$value)=split(/\=\>/,&Apache::lonnet::unescape($changed));
+ foreach my $changed (reverse(sort(@changes))) {
+ my $value=$parmlog{$id}{'logentry'}->{$changed};
my ($realm,$section,$parmname,$part,$typeflag,$what,$middle,$uname,$udom,$issection)=
- &components($key,$parmlog{$id.'_uname'},$parmlog{$id.'_udom'});
+ &components($changed,$parmlog{$id}{'uname'},$parmlog{$id}{'udom'});
if ($typeflag) { $istype{$parmname}=$value; }
- if ($makenewrow) { $r->print(''); } else { $makenewrow=1; }
+ if ($makenewrow) { $r->print(' '); } else { $makenewrow=1; }
$r->print(''.$realm.' '.$section.' '.
&standard_parameter_names($parmname).' '.
($part?&mt('Part: [_1]',$part):&mt('All Parts')).' ');
my $stillactive=0;
- if ($parmlog{$id.'_deleteflag'}) {
+ if ($parmlog{$id}{'deleteflag'}) {
$r->print(&mt('Deleted'));
} else {
if ($typeflag) {