--- loncom/homework/structuretags.pm 2010/11/09 17:52:13 1.465.2.6 +++ loncom/homework/structuretags.pm 2010/03/21 18:31:45 1.467 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.465.2.6 2010/11/09 17:52:13 raeburn Exp $ +# $Id: structuretags.pm,v 1.467 2010/03/21 18:31:45 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -66,7 +66,7 @@ use lib '/home/httpd/lib/perl/'; use LONCAPA; BEGIN { - &Apache::lonxml::register('Apache::structuretags',('block','languageblock','translated','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','problemtype','startpartmarker','startouttext','endpartmarker','endouttext','simpleeditbutton','definetag')); + &Apache::lonxml::register('Apache::structuretags',('block','languageblock','translated','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','problemtype','startouttext','endouttext','simpleeditbutton','definetag')); } sub start_web { @@ -161,45 +161,6 @@ function setmode(form,probmode) { ENDSCRIPT } -sub file_delchk_js { - my $delfilewarn = &mt('You have indicated you wish to delete some files previously included for submission.').'\\n'. - &mt('Deleted files will not be graded.').' '. - &mt('Submit Answer?'); - return <<"ENDSCRIPT"; - -ENDSCRIPT -} - sub page_start { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name, $extra_head)=@_; @@ -216,17 +177,12 @@ sub page_start { $parstack,$parser,$safeeval); } - $extra_head .= &homework_js(). - &Apache::lonhtmlcommon::dragmath_js("EditMathPopup"); - if (&Apache::lonhtmlcommon::htmlareabrowser()) { - my %textarea_args = ( - dragmath => 'math', - ); - $extra_head .= &Apache::lonhtmlcommon::htmlareaselectactive(\%textarea_args); - } - my $is_task = ($env{'request.uri'} =~ /\.task$/); - if ($is_task) { - $extra_head .= &file_delchk_js(); + $extra_head .= &homework_js(); + + if ($env{'environment.wysiwygeditor'} eq 'on') { + $extra_head .= &Apache::lonhtmlcommon::dragmath_js("FCKEditMathPopup"); + } else { + $extra_head .= &Apache::lonhtmlcommon::dragmath_js("EditMathPopup"); } my %body_args; @@ -253,9 +209,6 @@ sub page_start { } elsif (!defined($found{'body'}) && $env{'request.state'} eq 'construct') { if ($target eq 'web' || $target eq 'edit') { - if ($env{'environment.remote'} ne 'off') { - $body_args{'only_body'} = 1; - } # Breadcrumbs for Construction Space &Apache::lonhtmlcommon::clear_breadcrumbs(); &Apache::lonhtmlcommon::add_breadcrumb({ @@ -289,8 +242,7 @@ sub page_start { # $body_args{'no_title'} = 1; $body_args{'force_register'} = 1; $body_args{'add_entries'} = \%add_entries; - if ($env{'environment.remote'} eq 'off' - && $env{'request.state'} eq 'construct') { + if ( $env{'request.state'} eq 'construct') { $body_args{'only_body'} = 1; } } @@ -324,9 +276,6 @@ sub page_start { if ($target eq 'edit') { $form_tag_start.=&Apache::edit::form_change_detection(); } - if ($is_task) { - $form_tag_start .= ' onsubmit="return file_deletion_check(this);"'; - } $form_tag_start.='>'."\n"; my $symb=&Apache::lonnet::symbread(); @@ -452,6 +401,8 @@ sub problem_edit_footer {
'. + + &Apache::lonhtmlcommon::htmlareaselectactive(&Apache::lonhtmlcommon::get_htmlareafields()). "\n\n".&Apache::loncommon::end_page(); } @@ -678,7 +629,9 @@ sub finalize_storage { $result=&Apache::lonnet::cstore(\%Apache::lonhomework::results, $symb,$courseid,$domain,$name); &Apache::lonxml::debug('Store return message:'.$result); - &store_aggregates($symb,$courseid); + if ($env{'request.role'} =~/^st/) { + &store_aggregates($symb,$courseid); + } } } else { &Apache::lonxml::debug('Nothing to store'); @@ -698,7 +651,7 @@ item store_aggregates() sub store_aggregates { my ($symb,$courseid) = @_; - my (%aggregate,%anoncounter); + my %aggregate; my @parts; my $cdomain = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $cname = $env{'course.'.$env{'request.course.id'}.'.num'}; @@ -708,51 +661,28 @@ sub store_aggregates { } } foreach my $part (@parts) { - if ($env{'request.role'} =~/^st/) { - if ($Apache::lonhomework::results{'resource.'.$part.'.award'} - eq 'APPROX_ANS' || - $Apache::lonhomework::results{'resource.'.$part.'.award'} - eq 'EXACT_ANS') { - $aggregate{$symb."\0".$part."\0correct"} = 1; - } - if ($Apache::lonhomework::results{'resource.'.$part.'.tries'} == 1) { - $aggregate{$symb."\0".$part."\0users"} = 1; - } else { - my (undef,$last_reset) = &Apache::grades::get_last_resets($symb,$env{'request.course.id'},[$part]); - if ($last_reset) { - if (&Apache::grades::get_num_tries(\%Apache::lonhomework::history,$last_reset,$part) == 0) { - $aggregate{$symb."\0".$part."\0users"} = 1; - } - } - } - $aggregate{$symb."\0".$part."\0attempts"} = 1; + if ($Apache::lonhomework::results{'resource.'.$part.'.award'} + eq 'APPROX_ANS' || + $Apache::lonhomework::results{'resource.'.$part.'.award'} + eq 'EXACT_ANS') { + $aggregate{$symb."\0".$part."\0correct"} = 1; } - if (($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'anonsurvey') || - ($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'anonsurveycred')) { - $anoncounter{$symb."\0".$part} = 1; - my $needsrelease = $Apache::lonnet::needsrelease{'parameter:type:'.$Apache::lonhomework::results{'resource.'.$part.'.type'}}; - if ($needsrelease) { - my $curr_required = $env{'course.'.$env{'request.course.id'}.'.internal.releaserequired'}; - if ($curr_required eq '') { - &Apache::lonnet::update_released_required($needsrelease); - } else { - my ($currmajor,$currminor) = split(/\./,$curr_required); - my ($needsmajor,$needsminor) = split(/\./,$needsrelease); - if (($currmajor < $needsmajor) || ($currmajor == $needsmajor && $currminor < $needsminor)) { - &Apache::lonnet::update_released_required($needsrelease); - } + if ($Apache::lonhomework::results{'resource.'.$part.'.tries'} == 1) { + $aggregate{$symb."\0".$part."\0users"} = 1; + } else { + my (undef,$last_reset) = &Apache::grades::get_last_resets($symb,$env{'request.course.id'},[$part]); + if ($last_reset) { + if (&Apache::grades::get_num_tries(\%Apache::lonhomework::history,$last_reset,$part) == 0) { + $aggregate{$symb."\0".$part."\0users"} = 1; } } } + $aggregate{$symb."\0".$part."\0attempts"} = 1; } if (keys (%aggregate) > 0) { &Apache::lonnet::cinc('nohist_resourcetracker',\%aggregate, $cdomain,$cname); } - if (keys(%anoncounter) > 0) { - &Apache::lonnet::cinc('nohist_anonsurveys',\%anoncounter, - $cdomain,$cname); - } } sub checkout_msg { @@ -963,17 +893,6 @@ sub start_problem { if ($target eq 'analyze') { my $rndseed=&setup_rndseed($safeeval); } if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') { - #handle exam checkout - if ($Apache::lonhomework::type eq 'exam') { - my $token= - $Apache::lonhomework::history{"resource.0.outtoken"}; - if (($env{'form.doescheckout'}) && (!$token)) { - $token=&Apache::lonxml::maketoken(); - $Apache::lonhomework::history{"resource.0.outtoken"}= - $token; - } - $result.=&Apache::lonxml::printtokenheader($target,$token); - } if ($env{'form.markaccess'}) { my @interval=&Apache::lonnet::EXT("resource.0.interval"); &Apache::lonnet::set_first_access($interval[1]); @@ -1243,6 +1162,7 @@ sub end_problem { if ($target ne 'tex' && $env{'form.answer_output_mode'} ne 'tex') { $result.=""; + $result.= &Apache::lonhtmlcommon::htmlareaselectactive(&Apache::lonhtmlcommon::get_htmlareafields()); } if ($target eq 'web') { $result.= &Apache::loncommon::end_page({'discussion' => 1}); @@ -1559,7 +1479,7 @@ sub start_instructorcomment { if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { - $result=($env{'request.role'}=~/^(in|cc|co|au|ca|li)/); + $result=($env{'request.role'}=~/^(in|cc|au|ca|li)/); if ( (! $result) or ($env{'form.instructor_comments'} eq 'hide')) { my $skip=&Apache::lonxml::get_all_text("/instructorcomment", $parser,$style); @@ -1764,44 +1684,6 @@ sub ordered_show_check { return $in_order_show; } -sub start_startpartmarker { - my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; - my $result=''; - if ($target eq 'edit') { - $result=&Apache::edit::tag_start($target,$token); - $result.=&mt('Marker for the start of a part. Place end marker below to wrap in-between tags into a new part.').''; - $result.=&Apache::edit::end_table(); - - } - return $result; -} - -sub end_startpartmarker { - my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; - my @result; - if ($target eq 'edit') { $result[1]='no'; } - return @result; -} - -sub start_endpartmarker { - my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; - my $result=''; - if ($target eq 'edit') { - $result=&Apache::edit::tag_start($target,$token); - $result.=&mt('Marker for the end of a part. Place start marker above to wrap in-between tags into a new part.').''; - $result.=&Apache::edit::end_table(); - - } - return $result; -} - -sub end_endpartmarker { - my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; - my @result; - if ($target eq 'edit') { $result[1]='no'; } - return @result; -} - sub start_part { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; if (!$Apache::lonxml::metamode) { @@ -1891,7 +1773,7 @@ sub start_part { } } elsif ($target eq 'web') { - $result.=''; + $result.=''; } } } @@ -2101,15 +1983,17 @@ sub end_startouttext { $result.=&Apache::edit::start_table($token)."".&mt('Text Block')."" .''.&mt('Delete?').' ' .&Apache::edit::deletelist($target,$token) - .'' - .'' - .&Apache::lonhtmlcommon::dragmath_button($areaid,1) - .'' - .'' - .&Apache::edit::insertlist($target,$token) - .'' - .'' . - &Apache::loncommon::helpLatexCheatsheet(). + .''; + unless ($env{'environment.wysiwygeditor'} eq 'on') { + $result .= '' + .&Apache::lonhtmlcommon::dragmath_button($areaid,1) + .'' + .'' + .&Apache::edit::insertlist($target,$token) + .''; + } + $result.='' . + &Apache::loncommon::helpLatexCheatsheet(). &Apache::edit::end_row(). &Apache::edit::start_spanning_row()."\n". &Apache::edit::editfield($token->[1],$text,"",80,8,1);