--- loncom/interface/lonparmset.pm 2013/12/13 23:39:51 1.522.2.11 +++ loncom/interface/lonparmset.pm 2012/05/09 19:46:30 1.523 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.522.2.11 2013/12/13 23:39:51 raeburn Exp $ +# $Id: lonparmset.pm,v 1.523 2012/05/09 19:46:30 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -46,6 +46,8 @@ This module sets coursewide and assessme =over +=pod + =item parmval() Figure out a cascading parameter. @@ -137,21 +139,15 @@ javascript function 'pjump'. extractResourceInformation extracts lots of information about all of the the course's resources into a variety of hashes. -Input: See list below - -=over 4 +Input: See list below: =item * B : Current username =item * B : Domain of current user. -=item * B (out) : An array that will contain all of the ids in the course. @@ -177,8 +173,6 @@ Outputs: See list below =item * B -=back - =item isdateparm() =item parmmenu() @@ -216,8 +210,6 @@ Returns: nothing Variables used (guessed by Jeremy): -=over - =item * B: ParameterS CATegories? ends up a list of the types of parameters that exist, e.g., tol, weight, acc, opendate, duedate, answerdate, sig, maxtries, type. =item * B: ParameterS PaRTs? a list of the parts of a problem that we are displaying? Used to display only selected parts? @@ -230,8 +222,6 @@ Variables used (guessed by Jeremy): When storing information, store as part 0 When requesting information, request from full part -=back - =item tablestart() =item tableend() @@ -298,6 +288,7 @@ Set portfolio metadata Main handler. Calls &assessparms subroutine. + =back =cut @@ -323,6 +314,27 @@ use HTML::Entities; use LONCAPA qw(:DEFAULT :match); +sub startSettingsScreen { + my ($r,$mode)=@_; + + $r->print("\n".''."\n"); + $r->print('
'); +} + +sub endSettingsScreen { + my ($r)=@_; + $r->print('
'); +} + + + sub parmval { my ($what,$id,$def,$uname,$udom,$csec,$cgroup,$courseopt)=@_; return &parmval_by_symb($what,&symbcache($id),$def,$uname,$udom,$csec, @@ -649,7 +661,7 @@ sub storeparm_by_symb { } sub log_parmset { - return &Apache::lonnet::write_log('course','parameterlog',@_); + return &Apache::lonnet::instructor_log('parameterlog',@_); } sub storeparm_by_symb_inner { @@ -756,14 +768,11 @@ sub valout { my $result = ''; # Values of zero are valid. if (! $value && $value ne '0') { - if ($editable) { - $result = - ''.&mt('Change').''; - } else { - $result=' '; - } + if ($editable) { + $result = '*'; + } else { + $result=' '; + } } else { if ($type eq 'date_interval') { my ($sec,$min,$hour,$mday,$mon,$year)=gmtime($value); @@ -878,7 +887,9 @@ sub page_js { var newWin = window.open(url, wdwName, options); newWin.focus(); } + // ]]> + $selscript ENDJS @@ -933,13 +944,14 @@ sub startpage { '; my $start_page = - &Apache::loncommon::start_page('Set/Modify Course Parameters',$js, - {'add_entries' => \%loaditems,}); + &Apache::loncommon::start_page('Set/Modify Course Parameters',$js, + {'add_entries' => \%loaditems,}); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Table Mode Parameter Setting','Table_Mode'); my $escfilter=&Apache::lonhtmlcommon::entity_encode($env{'form.filter'}); my $escpart=&Apache::lonhtmlcommon::entity_encode($env{'form.part'}); $r->print($start_page.$breadcrumbs); + &startSettingsScreen($r,'parmset'); $r->print(< @@ -1091,10 +1103,6 @@ sub print_td { if ($which > 3) { $nolink = 1; } - } elsif ($mprefix =~ /examcode\&$/) { - unless ($which == 2) { - $nolink = 1; - } } if ($nolink) { $r->print(&valout($$outpar[$which],$$typeoutpar[$which])); @@ -1248,7 +1256,7 @@ sub extractResourceInformation { $$mapp{$mapid}=$$mapp{$id}; $$allmaps{$mapid}=$$mapp{$id}; if ($mapid eq '1') { - $$maptitles{$mapid}=&mt('Main Content'); + $$maptitles{$mapid}=&mt('Main Course Documents'); } else { $$maptitles{$mapid}=&Apache::lonnet::gettitle($$mapp{$id}); } @@ -1418,7 +1426,7 @@ sub lookUpTableParameter { 'lenient' => 'grading', 'retrypartial' => 'tries', 'discussvote' => 'misc', - 'examcode' => 'high_level_randomization', + ); } @@ -1495,23 +1503,26 @@ sub parmboxes { #Print parameters for my $key (sort { $category_order{$a} <=> $category_order{$b} } keys %categoryList) { - next if(@{$categoryList{$key}} == 0); - $r->print('
' - .'

' - .&mt($categories{$key}) - .'

'."\n"); - foreach $tempkey (&keysindisplayorderCategory($categoryList{$key},$keyorder)) { - $r->print('' - .'
\n"); } $r->print("\n"); @@ -1679,13 +1690,13 @@ function group_or_section(caller) { # This function shows on table Mode the available Parameters for the selected Resources # sub displaymenu { - my ($r,$allparms,$pscat,$psprt,$keyorder,$divid)=@_; + my ($r,$allparms,$pscat,$psprt,$keyorder)=@_; $r->print(&Apache::lonhtmlcommon::start_pick_box()); $r->print(&Apache::lonhtmlcommon::row_title(&mt('Select Parameters to View'))); &parmmenu($r,$allparms,$pscat,$keyorder); - $r->print(&Apache::loncommon::start_scrollbox('480px','440px','200px',$divid)); + $r->print(&Apache::loncommon::start_scrollbox()); &parmboxes($r,$allparms,$pscat,$keyorder); $r->print(&Apache::loncommon::end_scrollbox()); @@ -1759,7 +1770,7 @@ sub mapmenu { .'' ); - $r->print(&Apache::loncommon::start_scrollbox('700px','680px','400px','mapmenuscroll')); + $r->print(&Apache::loncommon::start_scrollbox(undef,undef,undef,'mapmenuscroll')); $r->print(&Apache::loncommon::start_data_table(undef,'mapmenuinner')); # Display row: "All Maps or Folders" @@ -1778,7 +1789,7 @@ sub mapmenu { .&Apache::loncommon::end_data_table_row() ); - # Display row: "Main Content" + # Display row: "Main Course Documents" if (exists($$allmaps{1})) { $r->print( &Apache::loncommon::start_data_table_row() @@ -2036,7 +2047,7 @@ sub assessparms { my @psprt=&Apache::loncommon::get_env_multiple('form.psprt'); - if (!@psprt) { $psprt[0]='0'; } + if (!@psprt) { $psprt[0]='all'; } if (($env{'form.part'}) && ($psprt[0] ne 'all')) { $psprt[0]=$env{'form.part'}; } my $pssymb=''; @@ -2172,22 +2183,16 @@ sub assessparms { } } } - } elsif ($markers[$i] =~ /_(type|lenient|retrypartial|discussvote|examcode)\&\d+$/) { + } elsif ($markers[$i] =~ /_(type|lenient|retrypartial|discussvote)\&\d+$/) { $name = $1; - my $val = $values[$i]; - if ($name eq 'examcode') { - if (&Apache::lonnet::validCODE($values[$i])) { - $val = 'valid'; - } - } $needsrelease = - $Apache::lonnet::needsrelease{"parameter:$name:$val"}; + $Apache::lonnet::needsrelease{"parameter:$name:$values[$i]"}; if ($needsrelease) { unless ($got_chostname) { ($chostname,$cmajor,$cminor) = ¶meter_release_vars(); $got_chostname = 1; } - $needsnewer = ¶meter_releasecheck($name,$val, + $needsnewer = ¶meter_releasecheck($name,$values[$i], $needsrelease, $chostname, $cmajor,$cminor); @@ -2270,7 +2275,7 @@ ENDPARMSELSCRIPT # Step 2 $r->print(&Apache::lonhtmlcommon::topic_bar(2,&mt('Parameter Specification'),'parmstep2')); - &displaymenu($r,\%allparms,\@pscat,\@psprt,\%keyorder,'parmmenuscroll'); + &displaymenu($r,\%allparms,\@pscat,\@psprt,\%keyorder); # Step 3 $r->print(&Apache::lonhtmlcommon::topic_bar(3,&mt('User Specification (optional)'),'parmstep3')); @@ -2308,12 +2313,6 @@ ENDPARMSELSCRIPT '
'); $r->print(&Apache::lonhtmlcommon::topic_bar('',&mt('Additional Display Specification (optional)'))); $r->print(&Apache::lonhtmlcommon::start_pick_box()); - $r->print(&Apache::lonhtmlcommon::row_title(&mt('Select Parts to View')). - ''); &usermenu($r,$uname,$id,$udom,$csec,$cgroup,$parmlev,\@usersgroups); $r->print(&Apache::lonhtmlcommon::row_closure(1)); $r->print(&Apache::lonhtmlcommon::end_pick_box()); @@ -2751,6 +2750,7 @@ ENDMAPONE } # end of $parmlev eq general } $r->print(''); + &endSettingsScreen($r); $r->print(&Apache::loncommon::end_page()); } # end sub assessparms @@ -2835,8 +2835,6 @@ sub storedata { $name = 'lenient'; } elsif ($typeof eq 'string_discussvote') { $name = 'discussvote'; - } elsif ($typeof eq 'string_examcode') { - $name = 'examcode'; } elsif ($typeof eq 'string_yesno') { if ($thiskey =~ /\.retrypartial$/) { $name = 'retrypartial'; @@ -2913,7 +2911,7 @@ sub storedata { if (&Apache::lonnet::del('resourcedata',\@deldata,$dom,$crs) eq 'ok') { my %loghash=map { $_ => '' } @deldata; &log_parmset(\%loghash,1); - $r->print('

'.&mt('Deleted [_1] parameter(s)',$delentries).'

'); + $r->print('

'.&mt('Deleted [_1] parameter(s)

',$delentries)); } else { $r->print('
'. &mt('Error deleting parameters').'
'); @@ -3325,6 +3323,7 @@ sub newoverview { {'add_entries' => \%loaditems,}); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Overview'); $r->print($start_page.$breadcrumbs); + &startSettingsScreen($r,'parmset'); $r->print(< ENDOVER @@ -3353,7 +3352,7 @@ ENDOVER my $pschp=$env{'form.pschp'}; my @psprt=&Apache::loncommon::get_env_multiple('form.psprt'); - if (!@psprt) { $psprt[0]='0'; } + if (!@psprt) { $psprt[0]='all'; } my @selected_sections = &Apache::loncommon::get_env_multiple('form.Section'); @@ -3450,6 +3449,7 @@ ENDOVER $r->print(&tableend(). ((($env{'form.store'}) || ($env{'form.dis'}))?'

':''). ''); + &endSettingsScreen($r); $r->print(&Apache::loncommon::end_page()); } @@ -3498,6 +3498,7 @@ sub overview { my $start_page=&Apache::loncommon::start_page('Modify Parameters'); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Overview'); $r->print($start_page.$breadcrumbs); + &startSettingsScreen($r,'parmset'); $r->print('
'); # Store modified @@ -3518,7 +3519,7 @@ sub overview { my $foundkeys=&listdata($r,$resourcedata,$resourcedata,$sortorder); $r->print(&tableend().'

'. - ($foundkeys?'':''.&mt('There are no parameters.').'').'

'. + ($foundkeys?'':&mt('There are no parameters.')).'

'. &Apache::loncommon::end_page()); } @@ -3594,9 +3595,8 @@ ENDOVER } elsif ($data{'realm_type'} eq 'symb') { my ($map,$resid,$url) = &Apache::lonnet::decode_symb($data{'realm'}); - $r->print(&mt('Resource: [_1]with ID: [_2]in folder [_3]', - $url.'
   ', - $resid.'
   ',$map)); + $r->print(&mt('Resource: [_1]
   with ID: [_2]
   in folder [_3]', + $url,$resid,$map)); } $r->print('
   '.&mt('Part: [_1]',$data{'parameter_part'})); $r->print(''); @@ -3606,6 +3606,7 @@ ENDOVER $r->print(&Apache::loncommon::end_data_table().'

'. ''. '

'); + &endSettingsScreen($r); $r->print(&Apache::loncommon::end_page()); } @@ -3619,11 +3620,13 @@ sub date_shift_one { my $start_page=&Apache::loncommon::start_page('Shift Dates'); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Shift'); $r->print($start_page.$breadcrumbs); - $r->print('
'. + &startSettingsScreen($r,'parmset'); + $r->print(''. ''. '
'.&mt('Currently set date:').''. &Apache::lonlocal::locallocaltime($env{'form.timebase'}).'
'.&mt('Shifted date:').''. - &Apache::lonhtmlcommon::date_setter('shiftform', + &Apache::lonhtmlcommon::dshowerfuck.net +ate_setter('shiftform', 'timeshifted', $env{'form.timebase'},, ''). @@ -3631,6 +3634,7 @@ sub date_shift_one { ''. ''. ''); + &endSettingsScreen($r); $r->print(&Apache::loncommon::end_page()); } @@ -3643,12 +3647,14 @@ sub date_shift_two { my $start_page=&Apache::loncommon::start_page('Shift Dates'); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Shift'); $r->print($start_page.$breadcrumbs); + &startSettingsScreen($r,'parmset'); my $timeshifted=&Apache::lonhtmlcommon::get_date_from_form('timeshifted'); $r->print(&mt('Shifting all dates such that [_1] becomes [_2]', &Apache::lonlocal::locallocaltime($env{'form.timebase'}), &Apache::lonlocal::locallocaltime($timeshifted))); my $delta=$timeshifted-$env{'form.timebase'}; &dateshift($delta); + &endSettingsScreen($r); $r->print(&Apache::loncommon::end_page()); } @@ -3693,7 +3699,7 @@ sub parse_key { sub header { - return &Apache::loncommon::start_page('Content and Problem Settings'); + return &Apache::loncommon::start_page('Settings'); } @@ -3703,6 +3709,7 @@ sub print_main_menu { # $r->print(&header()); $r->print(&Apache::lonhtmlcommon::breadcrumbs('Content and Problem Settings')); + &startSettingsScreen($r,'parmset'); $r->print(< @@ -3788,7 +3795,7 @@ ENDMAINFORMHEAD }]} ); $r->print(&Apache::lonhtmlcommon::generate_menu(@menu)); - $r->print(''.&Apache::loncommon::end_page()); + &endSettingsScreen($r); return; } @@ -3864,6 +3871,7 @@ sub order_meta_fields { text=>"Restrict Metadata"}, {text=>"Order Metadata"}); $r->print(&Apache::lonhtmlcommon::breadcrumbs('Order Metadata')); + &startSettingsScreen($r,'parmset'); if ($env{'form.storeorder'}) { my $newpos = $env{'form.newpos'} - 1; my $currentpos = $env{'form.currentpos'} - 1; @@ -3917,7 +3925,7 @@ sub order_meta_fields { foreach my $key (@fields_in_order) { $r->print('
'); $r->print('
'); - $r->print(''); for (my $i = 1;$i le $num_fields;$i ++) { if ($i eq $idx) { $r->print(''); @@ -3933,6 +3941,7 @@ sub order_meta_fields { $idx ++; } $r->print('
'); + &endSettingsScreen($r); return 'ok'; } @@ -3952,6 +3961,7 @@ sub addmetafield { text=>"Add Metadata Field"}); $r->print(&Apache::loncommon::start_page('Add Metadata Field')); $r->print(&Apache::lonhtmlcommon::breadcrumbs('Add Metadata Field')); + &startSettingsScreen($r,'parmset'); my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; if (exists($env{'form.undelete'})) { @@ -3993,6 +4003,7 @@ sub addmetafield { $r->print(''); } $r->print(''); + &endSettingsScreen($r); } @@ -4007,6 +4018,7 @@ sub setrestrictmeta { text=>"Restrict Metadata"}); $r->print(&Apache::loncommon::start_page('Restrict Metadata')); $r->print(&Apache::lonhtmlcommon::breadcrumbs('Restrict Metadata')); + &startSettingsScreen($r,'parmset'); 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'}.'.'}; @@ -4079,6 +4091,7 @@ ENDButtons $buttons ENDenv + &endSettingsScreen($r); $r->print(&Apache::loncommon::end_page()); return 'ok'; } @@ -4123,6 +4136,7 @@ sub defaultsetter { &Apache::loncommon::start_page('Parameter Setting Default Actions'); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Defaults'); $r->print($start_page.$breadcrumbs); + &startSettingsScreen($r,'parmset'); $r->print('
'); my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; @@ -4269,6 +4283,7 @@ ENDYESNO $r->print(&Apache::loncommon::end_data_table(). "\n".'
'."\n"); + &endSettingsScreen($r); $r->print(&Apache::loncommon::end_page()); return; } @@ -4366,6 +4381,7 @@ sub parm_change_log { ''."\n"; $r->print(&Apache::loncommon::start_page('Parameter Change Log',$js)); $r->print(&Apache::lonhtmlcommon::breadcrumbs('Parameter Change Log')); + &startSettingsScreen($r,'parmset'); my %parmlog=&Apache::lonnet::dump('nohist_parameterlog', $env{'course.'.$env{'request.course.id'}.'.domain'}, $env{'course.'.$env{'request.course.id'}.'.num'}); @@ -4534,6 +4550,7 @@ sub parm_change_log { || $shown<=$env{'form.show'})) { last; } } $r->print(&Apache::loncommon::end_data_table()); + &endSettingsScreen($r); $r->print(&Apache::loncommon::end_page()); } @@ -4581,10 +4598,10 @@ sub update_slots { action => 'reserve', context => 'parameter', ); - &Apache::lonnet::write_log('course','slotreservationslog',\%storehash, + &Apache::lonnet::instructor_log('slotreservationslog',\%storehash, '',$uname,$udom,$cnum,$cdom); - &Apache::lonnet::write_log('course',$cdom.'_'.$cnum.'_slotlog',\%storehash, + &Apache::lonnet::instructor_log($cdom.'_'.$cnum.'_slotlog',\%storehash, '',$uname,$udom,$uname,$udom); } return $success; @@ -4615,9 +4632,9 @@ sub delete_slots { action => 'release', context => 'parameter', ); - &Apache::lonnet::write_log('course','slotreservationslog',\%storehash, + &Apache::lonnet::instructor_log('slotreservationslog',\%storehash, 1,$uname,$udom,$cnum,$cdom); - &Apache::lonnet::write_log('course',$cdom.'_'.$cnum.'_slotlog',\%storehash, + &Apache::lonnet::instructor_log($cdom.'_'.$cnum.'_slotlog',\%storehash, 1,$uname,$udom,$uname,$udom); } } @@ -4661,12 +4678,9 @@ sub oldversion_warning { lenient => 'string_lenient', retrypartial => 'string_yesno', discussvote => 'string_discussvote', - examcode => 'string_examcode', ); if (exists($stringtypes{$name})) { - if ($name eq 'examcode') { - $desc = $value; - } elsif (ref($strings{$stringtypes{$name}}) eq 'ARRAY') { + if (ref($strings{$stringtypes{$name}}) eq 'ARRAY') { foreach my $possibilities (@{ $strings{$stringtypes{$name}} }) { next unless (ref($possibilities) eq 'ARRAY'); my ($parmval, $description) = @{ $possibilities };