--- loncom/interface/lonparmset.pm 2003/06/20 14:34:04 1.105 +++ loncom/interface/lonparmset.pm 2003/06/30 20:24:26 1.113 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.105 2003/06/20 14:34:04 matthew Exp $ +# $Id: lonparmset.pm,v 1.113 2003/06/30 20:24:26 sakharuk Exp $ # # Copyright Michigan State University Board of Trustees # @@ -855,9 +855,10 @@ sub assessparms { $message.='

Changes can take up to 10 minutes before being active for all students

'; } # --------------------------------------------- Devalidate cache for this child - &Apache::lonnet::devalidatecourseresdata( + &Apache::lonnet::devalidatecourseresdata( $ENV{'course.'.$ENV{'request.course.id'}.'.num'}, $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}); + &Apache::lonnet::clear_EXT_cache_status(); # -------------------------------------------------------------- Get coursedata %courseopt = &Apache::lonnet::dump ('resourcedata', @@ -891,7 +892,11 @@ sub assessparms { &startpage($r,$id,$udom,$csec,$uname,$have_assesments); - if (!$have_assesments) { return ''; } + if (!$have_assesments) { + untie(%bighash); + untie(%parmhash); + return ''; + } # if ($ENV{'form.url'}) { # $r->print(''); @@ -1433,6 +1438,11 @@ sub crsenv { } } # + # Deal with the enrollment dates + if ($name =~ /^default_enrollment_(start|end)_date$/) { + $value=&Apache::lonhtmlcommon::get_date_from_form($name.'_value'); + } + # # Let the user know we made the changes if ($name) { my $put_result = &Apache::lonnet::put('environment', @@ -1445,6 +1455,9 @@ sub crsenv { } } } +# ------------------------- Re-init course environment entries for this session + + &Apache::lonnet::coursedescription($ENV{'request.course.id'}); # -------------------------------------------------------- Get parameters again @@ -1503,30 +1516,68 @@ sub crsenv { ",'spreadsheet')\">Select Spreadsheet File
", 'allow_limited_html_in_feedback' => 'Allow limited HTML in discussion posts
'. - '(Set value to yes to allow)', + '(Set value to "yes" to allow)', 'rndseed' => 'Randomization algorithm used
'. 'Modifying this will make problems '. 'have different numbers and answers', 'problem_stream_switch' => 'Allow problems to be split over pages
'. - ' (yes if allow anything else if not)' - ); - foreach (keys(%values)) { - unless ($descriptions{$_}) { - $descriptions{$_}=$_; + ' ("yes" if allowed, anything else if not)',, + 'anonymous_quiz' + => 'Anonimous quiz/exam
'. + ' (yes to avoid print students names )', + 'default_enrollment_start_date' => 'Default beginning date '. + 'when enrolling students', + 'default_enrollment_end_date' => 'Default ending date '. + 'when enrolling students', + 'languages' => 'Languages used' + ); + my @Display_Order = ('url','description','courseid', + 'default_xml_style','pageseparators', + 'question.email','comment.email','policy.email', + 'pch.roles.denied','pch.users.denied', + 'allow_limited_html_in_feedback', + 'languages', + 'rndseed', + 'problem_stream_switch', + 'spreadsheet_default_classcalc', + 'spreadsheet_default_studentcalc', + 'spreadsheet_default_assesscalc', + 'hideemptyrows', + 'default_enrollment_start_date', + 'default_enrollment_end_date', + ); + foreach my $parameter (sort(keys(%values))) { + if (! $descriptions{$parameter}) { + $descriptions{$parameter}=$parameter; + push(@Display_Order,$parameter); } } - foreach (sort keys %descriptions) { + foreach my $parameter (@Display_Order) { + my $description = $descriptions{$parameter}; # onchange is javascript to automatically check the 'Set' button. my $onchange = 'onFocus="javascript:window.document.forms'. - '[\'envform\'].elements[\''.$_.'_setparmval\']'. + "['envform'].elements['".$parameter."_setparmval']". '.checked=true;"'; - $output.=''.$descriptions{$_}.''. - ''. - ''. - ''."\n"; + $output .= ''.$description.''; + if ($parameter =~ /^default_enrollment_(start|end)_date$/) { + $output .= ''. + &Apache::lonhtmlcommon::date_setter('envform', + $parameter.'_value', + $values{$parameter}, + $onchange). + ''; + } else { + $output .= ''. + &Apache::lonhtmlcommon::textbox($parameter.'_value', + $values{$parameter}, + 40,$onchange).''; + } + $output .= ''. + &Apache::lonhtmlcommon::checkbox($parameter.'_setparmval'). + ''; + $output .= "\n"; } my $onchange = 'onFocus="javascript:window.document.forms'. '[\'envform\'].elements[\'newp_setparmval\']'. @@ -1606,12 +1657,13 @@ sub handler { } &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}); - $r->content_type('text/html'); - $r->send_http_header; # ----------------------------------------------------- Needs to be in a course if (($ENV{'request.course.id'}) && (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'}))) { + + $r->content_type('text/html'); + $r->send_http_header; $coursename=$ENV{'course.'.$ENV{'request.course.id'}.'.description'};