--- loncom/interface/lonparmset.pm 2014/02/26 03:34:01 1.522.2.13 +++ loncom/interface/lonparmset.pm 2014/12/12 02:12:18 1.548 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.522.2.13 2014/02/26 03:34:01 raeburn Exp $ +# $Id: lonparmset.pm,v 1.548 2014/12/12 02:12:18 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -149,7 +149,7 @@ Input: See list below =back -Outputs: See list below +Outputs: See list below: =over 4 @@ -323,6 +323,31 @@ use HTML::Entities; use LONCAPA qw(:DEFAULT :match); +sub startSettingsScreen { + my ($r,$mode,$crstype)=@_; + + my $tabtext = &mt('Course Settings'); + if ($crstype eq 'Community') { + $tabtext = &mt('Community Settings'); + } + $r->print("\n".'
'. + &mt('Unknown ID [_1] at domain [_2]', + "'".$id."'","'".$udom."'"). + '
'; } } else { $uname=$env{'form.uname'}; @@ -2086,16 +2108,20 @@ sub assessparms { $uhome=&Apache::lonnet::homeserver($uname,$udom); if ($uhome eq 'no_host') { $message= - ''.&mt("Unknown user")." '$uname' ". - &mt("at domain")." '$udom'"; + ''. + &mt('Unknown user [_1] at domain [_2]', + "'".$uname."'","'".$udom."'"). + '
'; $uname=''; } else { $csec=&Apache::lonnet::getsection($udom,$uname, $env{'request.course.id'}); if ($csec eq '-1') { - $message=''. - &mt("User")." '$uname' ".&mt("at domain")." '$udom' ". - &mt("not in this course").""; + $message= + ''. + &mt('User [_1] at domain [_2] not in this course', + "'".$uname."'","'".$udom."'"). + '
'; $uname=''; $csec=$env{'form.csec'}; $cgroup=$env{'form.cgroup'}; @@ -2138,7 +2164,7 @@ sub assessparms { my $chome = $env{'course.'.$env{'request.course.id'}.'.home'}; my ($got_chostname,$chostname,$cmajor,$cminor); my $totalstored = 0; - + my $now = time; for (my $i=0;$i<=$#markers;$i++) { my ($needsrelease,$needsnewer,$name); @@ -2172,13 +2198,25 @@ sub assessparms { } } } - } elsif ($markers[$i] =~ /_(type|lenient|retrypartial|discussvote|examcode)\&\d+$/) { + } elsif ($markers[$i] =~ /_(type|lenient|retrypartial|discussvote|examcode|printstartdate|printenddate)\&\d+$/) { $name = $1; my $val = $values[$i]; if ($name eq 'examcode') { - if (&Apache::lonnet::validCODE($values[$i])) { - $val = 'valid'; - } + if (&Apache::lonnet::validCODE($values[$i])) { + $val = 'valid'; + } + } elsif ($name eq 'printstartdate') { + if ($val =~ /^\d+$/) { + if ($val > $now) { + $val = 'future'; + } + } + } elsif ($name eq 'printenddate') { + if ($val =~ /^\d+$/) { + if ($val < $now) { + $val = 'past'; + } + } } $needsrelease = $Apache::lonnet::needsrelease{"parameter:$name:$val"}; @@ -2186,10 +2224,9 @@ sub assessparms { unless ($got_chostname) { ($chostname,$cmajor,$cminor) = ¶meter_release_vars(); $got_chostname = 1; - } + } $needsnewer = ¶meter_releasecheck($name,$val, $needsrelease, - $chostname, $cmajor,$cminor); } } @@ -2213,18 +2250,19 @@ sub assessparms { } } #----------------------------------------------- if all selected, fill in array - if ($pscat[0] eq "all") {@pscat = (keys %allparms);} + if ($pscat[0] eq "all") {@pscat = (keys(%allparms));} if (!@pscat) { @pscat=('duedate','opendate','answerdate','weight','maxtries','type','problemstatus') }; - if ($psprt[0] eq "all" || !@psprt) {@psprt = (keys %allparts);} + if ($psprt[0] eq "all" || !@psprt) {@psprt = (keys(%allparts));} # ------------------------------------------------------------------ Start page - &startpage($r,$pssymb); + my $crstype = &Apache::loncommon::course_type(); + &startpage($r,$pssymb,$crstype); - foreach ('tolerance','date_default','date_start','date_end', + foreach my $item ('tolerance','date_default','date_start','date_end', 'date_interval','int','float','string') { $r->print(''). - '" name="recent_'.$_.'" />'); + &HTML::Entities::encode($env{'form.recent_'.$item},'"&<>'). + '" name="recent_'.$item.'" />'); } # ----- Start Parameter Selection @@ -2298,7 +2336,6 @@ ENDPARMSELSCRIPT .'' .''); } else { - $r->print(); # parameter screen for a single resource. my ($map,$iid,$resource)=&Apache::lonnet::decode_symb($pssymb); my $title = &Apache::lonnet::gettitle($pssymb); @@ -2308,12 +2345,6 @@ ENDPARMSELSCRIPT ''. ''. '
'); + &endSettingsScreen($r); $r->print(&Apache::loncommon::end_page()); } @@ -3613,12 +3665,14 @@ sub date_shift_one { my ($r) = @_; my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; + my $crstype = $env{'course.'.$env{'request.course.id'}.'.type'}; &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=dateshift1&timebase='.$env{'form.timebase'}, text=>"Shifting Dates"}); my $start_page=&Apache::loncommon::start_page('Shift Dates'); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Shift'); $r->print($start_page.$breadcrumbs); + &startSettingsScreen($r,'parmset',$crstype); $r->print(''); + &endSettingsScreen($r); } @@ -4015,6 +4082,8 @@ sub setrestrictmeta { $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 $crstype = $env{'course.'.$env{'request.course.id'}.'.type'}; + &startSettingsScreen($r,'parmset',$crstype); my $key_base = $env{'course.'.$env{'request.course.id'}.'.'}; my $save_field = ''; if ($env{'form.restrictmeta'}) { @@ -4085,6 +4154,7 @@ ENDButtons $buttons ENDenv + &endSettingsScreen($r); $r->print(&Apache::loncommon::end_page()); return 'ok'; } @@ -4125,14 +4195,16 @@ sub defaultsetter { &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setdefaults', text=>"Set Defaults"}); + my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + my $crstype = $env{'course.'.$env{'request.course.id'}.'.type'}; my $start_page = - &Apache::loncommon::start_page('Parameter Setting Default Actions'); + &Apache::loncommon::start_page('Parameter Setting Default Actions'); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Defaults'); $r->print($start_page.$breadcrumbs); + &startSettingsScreen($r,'parmset',$crstype); $r->print(''."\n"); + &endSettingsScreen($r); $r->print(&Apache::loncommon::end_page()); return; } @@ -4363,6 +4436,9 @@ sub standard_parameter_types { sub parm_change_log { my ($r)=@_; + my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + my $crstype = $env{'course.'.$env{'request.course.id'}.'.type'} &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=settable', text=>"Parameter Change Log"}); my $js = ''."\n"; $r->print(&Apache::loncommon::start_page('Parameter Change Log',$js)); $r->print(&Apache::lonhtmlcommon::breadcrumbs('Parameter Change Log')); - my %parmlog=&Apache::lonnet::dump('nohist_parameterlog', - $env{'course.'.$env{'request.course.id'}.'.domain'}, - $env{'course.'.$env{'request.course.id'}.'.num'}); + &startSettingsScreen($r,'parmset',$crstype); + my %parmlog=&Apache::lonnet::dump('nohist_parameterlog',$cdom,$cnum); if ((keys(%parmlog))[0]=~/^error\:/) { undef(%parmlog); } @@ -4392,8 +4467,7 @@ sub parm_change_log { ''. ''.