--- loncom/interface/lonparmset.pm 2006/04/15 21:12:56 1.290
+++ loncom/interface/lonparmset.pm 2006/04/18 18:10:55 1.293
@@ -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.293 2006/04/18 18:10:55 www 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 {
@@ -2614,8 +2592,8 @@ sub listdata {
#
# Ready to print
#
- $r->print(&tablestart().'
'.$name.
- ': ');
$foundkeys++;
if (&isdateparm($thistype)) {
@@ -3053,7 +3031,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 +3302,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 +3329,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 {
@@ -3364,10 +3364,14 @@ sub parm_change_log {
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 { $exetime{$b}<=>$exetime{$a} } (keys(%exetime))) {
+ 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'});
@@ -3378,42 +3382,62 @@ sub parm_change_log {
&Apache::loncommon::aboutmewrapper($plainname,
$parmlog{$id.'_exe_uname'},
$parmlog{$id.'_exe_udom'});
-
- my $send_msg_link;
+ 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 =' '.
+ $send_msg_link =' '.
&Apache::loncommon::messagewrapper(&mt('Send message'),
$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'}.' '.
$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).' ');
+ &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 +3538,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 {