--- loncom/interface/lonparmset.pm 2006/04/18 02:13:49 1.292 +++ loncom/interface/lonparmset.pm 2006/05/01 19:37:33 1.298 @@ -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.298 2006/05/01 19:37:33 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -117,7 +117,6 @@ sub parmval { sub parmval_by_symb { my ($what,$symb,$def,$uname,$udom,$csec,$cgroup,$courseopt)=@_; # load caches - &cacheparmhash(); my $useropt=&Apache::lonnet::get_userresdata($uname,$udom); @@ -394,30 +393,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 { @@ -672,8 +649,7 @@ sub startpage { &page_js(), {'add_entries' => \%loaditems,}); my $breadcrumbs = - &Apache::lonhtmlcommon::breadcrumbs(undef, - 'Table Mode Parameter Setting'); + &Apache::lonhtmlcommon::breadcrumbs('Table Mode Parameter Setting'); $r->print(<\n".&mt('ID').": ".$name{'id'}.'

'; } - $grouplist = &Apache::lonnet::get_users_groups( + @usersgroups = &Apache::lonnet::get_users_groups( $udom,$uname,$env{'request.course.id'}); - if ($grouplist) { - @usersgroups = &Apache::lonnet::sort_course_groups($grouplist, - $env{'request.course.id'}); + if (@usersgroups > 0) { unless (grep/^\Q$cgroup\E$/,@usersgroups) { $cgroup = $usersgroups[0]; - } - } else { - $cgroup = ''; + } } } } @@ -2012,8 +1983,8 @@ sub crsenv { my $r=shift; my $setoutput=''; - my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(undef, - 'Edit Course Environment'); + my $breadcrumbs = + &Apache::lonhtmlcommon::breadcrumbs('Edit Course Environment'); my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; @@ -2116,7 +2087,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 +2327,7 @@ sub tablestart { return ''; } else { $tableopen=1; - return ''; } } @@ -2363,7 +2335,7 @@ sub tablestart { sub tableend { if ($tableopen) { $tableopen=0; - return '
'.&mt('Parameter').''. + return &Apache::loncommon::start_data_table().'
'.&mt('Parameter').''. &mt('Delete').''.&mt('Set to ...').'
'; + return &Apache::loncommon::end_data_table(); } else { return''; } @@ -2614,8 +2586,10 @@ sub listdata { # # Ready to print # - $r->print(&tablestart().''.$name. - ':'); $foundkeys++; if (&isdateparm($thistype)) { @@ -2660,7 +2634,7 @@ sub listdata { } $r->print(''); - $r->print(''); + $r->print(''.&Apache::loncommon::end_data_table_row()); } } return $foundkeys; @@ -2672,7 +2646,7 @@ sub newoverview { my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; my $start_page = &Apache::loncommon::start_page('Set Parameters'); - my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(undef,'Overview'); + my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Overview'); $r->print(<print(<print(&Apache::loncommon::start_page('Restrict Metadata')); - $r->print(&Apache::lonhtmlcommon::breadcrumbs(undef, - 'Restrict Metadata')); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Restrict Metadata')); my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; my $key_base = $env{'course.'.$env{'request.course.id'}.'.'}; @@ -3148,7 +3121,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); @@ -3173,7 +3147,7 @@ sub defaultsetter { my $start_page = &Apache::loncommon::start_page('Parameter Setting Default Actions'); - my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(undef,'Defaults'); + my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Defaults'); $r->print(< 'Due Date', @@ -3363,7 +3338,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 +3355,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(' + $r->print(''); 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('
'.$time.'
'.$time.' '.$about_me_link. - '
'.$parmlog{$id.'_exe_uname'}. - ':'.$parmlog{$id.'_exe_udom'}.''. + '
'.$parmlog{$id}{'exe_uname'}. + ':'.$parmlog{$id}{'exe_udom'}.''. $send_msg_link.'
'.$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) { @@ -3525,8 +3498,7 @@ sub handler { } elsif (! exists($env{'form.action'})) { $r->print(&header()); - $r->print(&Apache::lonhtmlcommon::breadcrumbs(undef, - 'Parameter Manager')); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Parameter Manager')); &print_main_menu($r,$parm_permission); } elsif ($env{'form.action'} eq 'crsenv' && $parm_permission) { &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=crsenv',