--- loncom/interface/lonparmset.pm 2006/08/09 20:40:16 1.328 +++ 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.328 2006/08/09 20:40:16 albertel Exp $ +# $Id: lonparmset.pm,v 1.331 2006/08/09 21:11:34 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -3314,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; @@ -3345,7 +3347,7 @@ 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); } @@ -3424,7 +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=$count/2; } + if (!$env{'form.includetypes'}) { $count=int($count/2); } + if ($count == 0) { $count = 1; } my $time = &Apache::lonlocal::locallocaltime($parmlog{$id}{'exe_time'}); my $plainname = @@ -3451,12 +3454,14 @@ 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'}); + 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) { - if (!$env{'form.includetypes'}) { next; } $istype{$parmname}=$value; + if (!$env{'form.includetypes'}) { next; } } if ($makenewrow) { $r->print($row_start); } else { $makenewrow=1; } $r->print(''.$realm.''.$section.''.