--- loncom/interface/lonparmset.pm 2008/01/24 23:23:55 1.390 +++ loncom/interface/lonparmset.pm 2008/04/05 16:10:52 1.394 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.390 2008/01/24 23:23:55 www Exp $ +# $Id: lonparmset.pm,v 1.394 2008/04/05 16:10:52 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2026,6 +2026,8 @@ sub crsenv { my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; + my (%crsinfo,$chome); + # # Go through list of changes foreach (keys %env) { @@ -2120,19 +2122,37 @@ sub crsenv { my $put_result = &Apache::lonnet::put('environment', {$name=>$value},$dom,$crs); if ($put_result eq 'ok') { - $setoutput.=&mt('Set').' '.$name.' '.&mt('to').' '.$value.'.
'; + $setoutput.=&mt('Set').' '.$name.' '.&mt('to').' '; + if ($name =~ /^default_enrollment_(start|end)_date$/) { + $setoutput .= &Apache::lonlocal::locallocaltime($value); + } else { + $setoutput .= $value; + } + $setoutput .= '.
'; if ($name eq 'cloners') { &change_clone($value,\@oldcloner); } # Update environment and nohist_courseids.db - if ($name eq 'description' && defined($value)) { - my %crsinfo = - &Apache::lonnet::courseiddump($dom,'.',1,'.','.', + if ($name eq 'description' || $name eq 'cloners') { + if ($chome eq '') { + %crsinfo = + &Apache::lonnet::courseiddump($dom,'.',1,'.','.', $crs,undef,undef,'Course'); - &Apache::lonnet::appenv('course.'.$env{'request.course.id'}.'.description' => $value); + $chome = &Apache::lonnet::homeserver($crs,$dom); + } + } + if ($name eq 'description' && defined($value)) { + &Apache::lonnet::appenv({'course.'.$env{'request.course.id'}.'.description' => $value}); if (ref($crsinfo{$env{'request.course.id'}}) eq 'HASH') { $crsinfo{$env{'request.course.id'}}{'description'} = $value; - my $chome = &Apache::lonnet::homeserver($crs,$dom); + my $putresult = + &Apache::lonnet::courseidput($dom,\%crsinfo, + $chome,'notime'); + } + } + if ($name eq 'cloners') { + if (ref($crsinfo{$env{'request.course.id'}}) eq 'HASH') { + $crsinfo{$env{'request.course.id'}}{'cloners'} = $value; my $putresult = &Apache::lonnet::courseidput($dom,\%crsinfo, $chome,'notime'); @@ -2318,6 +2338,7 @@ Use * to allow unrestricted cloning in a 'texengine' => ''.&mt('Force all students in the course to use a specific math rendering engine.').'
'.&mt('(Valid options are [_1].)','"tth", "jsMath", "mimetex"').'', + ); my @Display_Order = ('url','description','courseid','cloners','grading', 'externalsyllabus', @@ -2800,7 +2821,7 @@ my %strings = [ 'no', 'No' ]], 'string_problemstatus' => [[ 'yes', 'Yes' ], - [ 'answer', 'Yes, and show correct answer if they exceed the maxium number of tries.' ], + [ 'answer', 'Yes, and show correct answer if they exceed the maximum number of tries.' ], [ 'no', 'No, don\'t show correct/incorrect feedback.' ], [ 'no_feedback_ever', 'No, show no feedback at all.' ]], ); @@ -2844,13 +2865,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 { @@ -3166,8 +3195,6 @@ sub date_shift_two { $start_page $breadcrumbs ENDOVER - my $start_page=&Apache::loncommon::start_page('Shift Dates'); - my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Shift'); 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'}), @@ -3577,7 +3604,7 @@ sub order_meta_fields { my $ordered_fields = join ",", @neworder; my $put_result = &Apache::lonnet::put('environment', {'metadata.addedorder'=>$ordered_fields},$dom,$crs); - &Apache::lonnet::appenv('course.'.$env{'request.course.id'}.'.metadata.addedorder' => $ordered_fields); + &Apache::lonnet::appenv({'course.'.$env{'request.course.id'}.'.metadata.addedorder' => $ordered_fields}); } my $fields = &get_added_meta_fieldnames($env{'request.course.id'}); my $ordered_fields; @@ -4284,11 +4311,11 @@ sub handler { &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 Grades"}); + 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 Grades"}); + text=>"Shifting Dates"}); &date_shift_two($r); } } else {