--- loncom/interface/lonparmset.pm 2006/04/15 21:12:56 1.290
+++ loncom/interface/lonparmset.pm 2006/04/22 15:39:22 1.295
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.290 2006/04/15 21:12:56 www Exp $
+# $Id: lonparmset.pm,v 1.295 2006/04/22 15:39: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 {
@@ -2355,7 +2333,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 +2341,7 @@ sub tablestart {
sub tableend {
if ($tableopen) {
$tableopen=0;
- return '
';
+ return &Apache::loncommon::end_data_table();
} else {
return'';
}
@@ -2614,8 +2592,10 @@ sub listdata {
#
# Ready to print
#
- $r->print(&tablestart().''.$name.
- ': ');
$foundkeys++;
if (&isdateparm($thistype)) {
@@ -2660,7 +2640,7 @@ sub listdata {
}
$r->print(' ');
- $r->print(' ');
+ $r->print(''.&Apache::loncommon::end_data_table_row());
}
}
return $foundkeys;
@@ -3053,7 +3033,7 @@ ENDMAINFORMHEAD
action => 'setdefaults',
permission => $parm_permission,
},
- { text => 'Parameter Change Log and Course Blog Posting',
+ { text => 'Parameter Change Log and Course Blog Posting/User Notification',
action => 'parameterchangelog',
permission => $parm_permission,
},
@@ -3324,25 +3304,26 @@ ENDYESNO
}
sub components {
- my ($key,$uname,$udom)=@_;
+ my ($key,$uname,$udom,$exeuser,$exedomain)=@_;
my $typeflag=0;
if ($key=~/\.type$/) {
$key=~s/\.type$//;
$typeflag=1;
}
+ my $issection;
my ($middle,$part,$name)=($key=~/^$env{'request.course.id'}\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/);
my $section=&mt('All Students');
if ($middle=~/^\[(.*)\]/) {
- my $issection=$1;
- if ($uname) {
- $section=&mt('User').": ".&Apache::loncommon::plainname($uname,$udom);
- } else {
- $section=&mt('Group/Section').': '.$issection;
- }
+ $issection=$1;
+ $section=&mt('Group/Section').': '.$issection;
$middle=~s/^\[(.*)\]//;
}
$middle=~s/\.+$//;
$middle=~s/^\.+//;
+ if ($uname) {
+ $section=&mt('User').": ".&Apache::loncommon::plainname($uname,$udom);
+ $issection='';
+ }
my $realm=''.&mt('All Resources').' ';
if ($middle=~/^(.+)\_\_\_\(all\)$/) {
$realm=''.&mt('Folder/Map').': '.&Apache::lonnet::gettitle($1).' ('.$1.') ';
@@ -3350,7 +3331,28 @@ sub components {
my ($map,$id,$url)=&Apache::lonnet::decode_symb($middle);
$realm=''.&mt('Resource').': '.&Apache::lonnet::gettitle($middle).' ('.$url.' in '.$map.' id: '.$id.') ';
}
- return ($realm,$section,$name,$part,$typeflag);
+ my $what=$part.'.'.$name;
+ 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',
+ 'answerdate' => 'Answer Date',
+ 'opendate' => 'Open Date',
+ 'maxtries' => 'Max. Number of Tries',
+ 'weight' => 'Weight',
+ 'date_start' => 'Starting 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 {
+ return $name;
+ }
}
sub parm_change_log {
@@ -3359,61 +3361,79 @@ 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{$a}<=>$exetime{$b} } (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));
- my ($realm,$section,$parmname,$part,$typeflag)=
- &components($key,$parmlog{$id.'_uname'},$parmlog{$id.'_udom'});
+ foreach my $changed (reverse(sort(@changes))) {
+ my $value=$parmlog{$id}{'logentry'}->{$changed};
+ my ($realm,$section,$parmname,$part,$typeflag,$what,$middle,$uname,$udom,$issection)=
+ &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.' '.
- &mt('Part: [_1]',$part).' ');
- if ($parmlog{$id.'_deleteflag'}) {
+ &standard_parameter_names($parmname).' '.
+ ($part?&mt('Part: [_1]',$part):&mt('All Parts')).' ');
+ my $stillactive=0;
+ if ($parmlog{$id}{'deleteflag'}) {
$r->print(&mt('Deleted'));
} else {
if ($typeflag) {
- $r->print(&mt('Type: [_1]',$value));
- } elsif (&isdateparm($istype{$parmname})) {
- $r->print(&Apache::lonlocal::locallocaltime($value));
+ $r->print(&mt('Type: [_1]',&standard_parameter_names($value)));
} else {
- $r->print($value);
+ my ($level,@all)=&parmval_by_symb($what,$middle,&Apache::lonnet::metadata($middle,$what),
+ $uname,$udom,$issection,$issection,$courseopt);
+ if (&isdateparm($istype{$parmname})) {
+ $r->print(&Apache::lonlocal::locallocaltime($value));
+ } else {
+ $r->print($value);
+ }
+ if ($value ne $all[$level]) {
+ $r->print(''.&mt('Not active anymore').' ');
+ } else {
+ $stillactive=1;
+ }
}
}
- $r->print(' ');
+ $r->print('');
+ if ($stillactive) {
+ if (($uname) && ($udom)) {
+ $r->print('Notify Link ');
+ } else {
+ $r->print('Blog Link ');
+ }
+ } else {
+ $r->print(' ');
+ }
+ $r->print('');
}
}
$r->print('
');
@@ -3514,7 +3534,7 @@ sub handler {
&assessparms($r);
} elsif ($env{'form.action'} eq 'parameterchangelog' && $parm_permission) {
&Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=settable',
- text=>"Parameter Change Log and Course Blog Posting"});
+ text=>"Parameter Change Log"});
&parm_change_log($r);
}
} else {