--- loncom/interface/lonparmset.pm 2008/01/22 22:37:18 1.389 +++ loncom/interface/lonparmset.pm 2008/01/26 19:22:24 1.391 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.389 2008/01/22 22:37:18 www Exp $ +# $Id: lonparmset.pm,v 1.391 2008/01/26 19:22:24 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2729,6 +2729,8 @@ sub listdata { $$resourcedata{$thiskey}, '',1,'',''). ''. +(($$resourcedata{$thiskey}!=0)?''. +&mt('Shift all dates based on this date').'':''). &date_sanity_info($$resourcedata{$thiskey}) ); } elsif ($thistype eq 'date_interval') { @@ -2842,13 +2844,21 @@ sub dateshift { delete $data{$key}; } } + my %storecontent=(); # go through all parameters and look for dates foreach my $key (keys %data) { if ($data{$key.'.type'}=~/^date_(start|end)$/) { my $newdate=$data{$key}+$shift; - &Apache::lonnet::put('resourcedata',{$key => $newdate},$dom,$crs); + $storecontent{$key}=$newdate; } } + my $reply=&Apache::lonnet::cput + ('resourcedata',\%storecontent,$dom,$crs); + if ($reply eq 'ok') { + &log_parmset(\%storecontent); + } + &Apache::lonnet::devalidatecourseresdata($crs,$dom); + return $reply; } sub newoverview { @@ -3128,6 +3138,51 @@ ENDOVER &Apache::loncommon::end_page()); } +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 $start_page=&Apache::loncommon::start_page('Shift Dates'); + my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Shift'); + $r->print(<print('
'. + ''. + '
'.&mt('Currently set date:').''. + &Apache::lonlocal::locallocaltime($env{'form.timebase'}).'
'.&mt('Shifted date:').''. + &Apache::lonhtmlcommon::date_setter('shiftform', + 'timeshifted', + $env{'form.timebase'},, + ''). + '
'. + ''. + ''. + '
'); + $r->print(&Apache::loncommon::end_page()); +} + +sub date_shift_two { + my ($r) = @_; + 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('Shift Dates'); + my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Shift'); + $r->print(<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); + $r->print(&Apache::loncommon::end_page()); +} + sub parse_key { my ($key) = @_; my %data; @@ -4153,7 +4208,7 @@ sub handler { 'pres_marker', 'pres_value', 'pres_type', - 'udom','uname','symb','serial']); + 'udom','uname','symb','serial','timebase']); &Apache::lonhtmlcommon::clear_breadcrumbs(); @@ -4233,6 +4288,14 @@ sub handler { &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=cleanparameters', text=>"Clean Parameters"}); &clean_parameters($r); + } elsif ($env{'form.action'} eq 'dateshift1' && $parm_permission) { + &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=dateshift1&timebase='.$env{'form.timebase'}, + text=>"Shifting Dates"}); + &date_shift_one($r); + } elsif ($env{'form.action'} eq 'dateshift2' && $parm_permission) { + &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=dateshift1&timebase='.$env{'form.timebase'}, + text=>"Shifting Dates"}); + &date_shift_two($r); } } else { # ----------------------------- Not in a course, or not allowed to modify parms