version 1.465.2.4, 2010/08/16 18:38:28
|
version 1.470, 2010/07/29 18:00:06
|
Line 177 sub page_start {
|
Line 177 sub page_start {
|
$parstack,$parser,$safeeval); |
$parstack,$parser,$safeeval); |
} |
} |
|
|
$extra_head .= &homework_js(). |
$extra_head .= &homework_js(); |
&Apache::lonhtmlcommon::dragmath_js("EditMathPopup"); |
|
if (&Apache::lonhtmlcommon::htmlareabrowser()) { |
if ($env{'environment.wysiwygeditor'} eq 'on') { |
my %textarea_args = ( |
$extra_head .= &Apache::lonhtmlcommon::dragmath_js("FCKEditMathPopup"); |
dragmath => 'math', |
} else { |
); |
$extra_head .= &Apache::lonhtmlcommon::dragmath_js("EditMathPopup"); |
$extra_head .= &Apache::lonhtmlcommon::htmlareaselectactive(\%textarea_args); |
|
} |
} |
|
|
my %body_args; |
my %body_args; |
Line 210 sub page_start {
|
Line 209 sub page_start {
|
} elsif (!defined($found{'body'}) |
} elsif (!defined($found{'body'}) |
&& $env{'request.state'} eq 'construct') { |
&& $env{'request.state'} eq 'construct') { |
if ($target eq 'web' || $target eq 'edit') { |
if ($target eq 'web' || $target eq 'edit') { |
if ($env{'environment.remote'} ne 'off') { |
|
$body_args{'only_body'} = 1; |
|
} |
|
# Breadcrumbs for Construction Space |
# Breadcrumbs for Construction Space |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::add_breadcrumb({ |
&Apache::lonhtmlcommon::add_breadcrumb({ |
Line 246 sub page_start {
|
Line 242 sub page_start {
|
# $body_args{'no_title'} = 1; |
# $body_args{'no_title'} = 1; |
$body_args{'force_register'} = 1; |
$body_args{'force_register'} = 1; |
$body_args{'add_entries'} = \%add_entries; |
$body_args{'add_entries'} = \%add_entries; |
if ($env{'environment.remote'} eq 'off' |
if ( $env{'request.state'} eq 'construct') { |
&& $env{'request.state'} eq 'construct') { |
|
$body_args{'only_body'} = 1; |
$body_args{'only_body'} = 1; |
} |
} |
} |
} |
Line 406 sub problem_edit_footer {
|
Line 401 sub problem_edit_footer {
|
<hr style="clear:both;" /> |
<hr style="clear:both;" /> |
</div> |
</div> |
'. |
'. |
|
|
|
&Apache::lonhtmlcommon::htmlareaselectactive(&Apache::lonhtmlcommon::get_htmlareafields()). |
"\n</form>\n".&Apache::loncommon::end_page(); |
"\n</form>\n".&Apache::loncommon::end_page(); |
} |
} |
|
|
Line 652 item store_aggregates()
|
Line 649 item store_aggregates()
|
|
|
sub store_aggregates { |
sub store_aggregates { |
my ($symb,$courseid) = @_; |
my ($symb,$courseid) = @_; |
my (%aggregate,%anoncounter); |
my %aggregate; |
my @parts; |
my @parts; |
my $cdomain = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $cdomain = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $cname = $env{'course.'.$env{'request.course.id'}.'.num'}; |
my $cname = $env{'course.'.$env{'request.course.id'}.'.num'}; |
Line 664 sub store_aggregates {
|
Line 661 sub store_aggregates {
|
foreach my $part (@parts) { |
foreach my $part (@parts) { |
if ($env{'request.role'} =~/^st/) { |
if ($env{'request.role'} =~/^st/) { |
if ($Apache::lonhomework::results{'resource.'.$part.'.award'} |
if ($Apache::lonhomework::results{'resource.'.$part.'.award'} |
eq 'APPROX_ANS' || |
eq 'APPROX_ANS' || |
$Apache::lonhomework::results{'resource.'.$part.'.award'} |
$Apache::lonhomework::results{'resource.'.$part.'.award'} |
eq 'EXACT_ANS') { |
eq 'EXACT_ANS') { |
$aggregate{$symb."\0".$part."\0correct"} = 1; |
$aggregate{$symb."\0".$part."\0correct"} = 1; |
} |
} |
if ($Apache::lonhomework::results{'resource.'.$part.'.tries'} == 1) { |
if ($Apache::lonhomework::results{'resource.'.$part.'.tries'} == 1) { |
$aggregate{$symb."\0".$part."\0users"} = 1; |
$aggregate{$symb."\0".$part."\0users"} = 1; |
} else { |
} else { |
my (undef,$last_reset) = &Apache::grades::get_last_resets($symb,$env{'request.course.id'},[$part]); |
my (undef,$last_reset) = &Apache::grades::get_last_resets($symb,$env{'request.course.id'},[$part]); |
if ($last_reset) { |
if ($last_reset) { |
if (&Apache::grades::get_num_tries(\%Apache::lonhomework::history,$last_reset,$part) == 0) { |
if (&Apache::grades::get_num_tries(\%Apache::lonhomework::history,$last_reset,$part) == 0) { |
$aggregate{$symb."\0".$part."\0users"} = 1; |
$aggregate{$symb."\0".$part."\0users"} = 1; |
Line 681 sub store_aggregates {
|
Line 678 sub store_aggregates {
|
} |
} |
$aggregate{$symb."\0".$part."\0attempts"} = 1; |
$aggregate{$symb."\0".$part."\0attempts"} = 1; |
} |
} |
if (($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'anonsurvey') || |
if (($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'anonsurvey') || |
($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'anonsurveycred')) { |
($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'anonsurveycred')) { |
$anoncounter{$symb."\0".$part} = 1; |
$aggregate{$symb."\0".$part."\0anonymous"} = 1; |
my $needsrelease = $Apache::lonnet::needsrelease{'parameter:type:'.$Apache::lonhomework::results{'resource.'.$part.'.type'}}; |
my $needsrelease = $Apache::lonnet::needsrelease{'parameter:type:'.$Apache::lonhomework::results{'resource.'.$part.'.type'}}; |
if ($needsrelease) { |
if ($needsrelease) { |
my $curr_required = $env{'course.'.$env{'request.course.id'}.'.internal.releaserequired'}; |
my $curr_required = $env{'course.'.$env{'request.course.id'}.'.internal.releaserequired'}; |
if ($curr_required eq '') { |
if ($curr_required eq '') { |
&Apache::lonnet::update_released_required($needsrelease); |
&update_courseenv($needsrelease,$cdomain,$cname); |
} else { |
} else { |
my ($currmajor,$currminor) = split(/\./,$curr_required); |
my ($currmajor,$currminor) = split(/\./,$curr_required); |
my ($needsmajor,$needsminor) = split(/\./,$needsrelease); |
my ($needsmajor,$needsminor) = split(/\./,$needsrelease); |
if (($currmajor < $needsmajor) || ($currmajor == $needsmajor && $currminor < $needsminor)) { |
if (($currmajor < $needsmajor) || ($currmajor == $needsmajor && $currminor < $needsminor)) { |
&Apache::lonnet::update_released_required($needsrelease); |
&update_courseenv($needsrelease,$cdomain,$cname); |
} |
} |
} |
} |
} |
} |
Line 703 sub store_aggregates {
|
Line 700 sub store_aggregates {
|
&Apache::lonnet::cinc('nohist_resourcetracker',\%aggregate, |
&Apache::lonnet::cinc('nohist_resourcetracker',\%aggregate, |
$cdomain,$cname); |
$cdomain,$cname); |
} |
} |
if (keys(%anoncounter) > 0) { |
} |
&Apache::lonnet::cinc('nohist_anonsurveys',\%anoncounter, |
|
$cdomain,$cname); |
sub update_courseenv { |
|
my ($needsrelease,$cdom,$cnum) = @_; |
|
my $chome = $env{'course.'.$env{'request.course.id'}.'.home'}; |
|
my %needshash = ( |
|
'internal.releaserequired' => $needsrelease, |
|
); |
|
my $putresult = &put('environment',\%needshash,$cdom,$cnum); |
|
if ($putresult eq 'ok') { |
|
&appenv({'course.'.$env{'request.course.id'}.'.internal.releaserequired' => $needsrelease}); |
|
my %crsinfo = |
|
&Apache::lonnet::courseiddump($cdom,'.',1,'.','.',$cnum,undef,undef,'.'); |
|
if (ref($crsinfo{$env{'request.course.id'}}) eq 'HASH') { |
|
$crsinfo{$env{'request.course.id'}}{'releaserequired'} = $needsrelease; |
|
} |
|
&Apache::lonnet::courseidput($cdom,\%crsinfo,$chome,'notime'); |
} |
} |
} |
} |
|
|
Line 917 sub start_problem {
|
Line 928 sub start_problem {
|
if ($target eq 'analyze') { my $rndseed=&setup_rndseed($safeeval); } |
if ($target eq 'analyze') { my $rndseed=&setup_rndseed($safeeval); } |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
$target eq 'tex') { |
$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'}) { |
if ($env{'form.markaccess'}) { |
my @interval=&Apache::lonnet::EXT("resource.0.interval"); |
my @interval=&Apache::lonnet::EXT("resource.0.interval"); |
&Apache::lonnet::set_first_access($interval[1]); |
&Apache::lonnet::set_first_access($interval[1]); |
Line 1197 sub end_problem {
|
Line 1197 sub end_problem {
|
if ($target ne 'tex' && |
if ($target ne 'tex' && |
$env{'form.answer_output_mode'} ne 'tex') { |
$env{'form.answer_output_mode'} ne 'tex') { |
$result.="</form>"; |
$result.="</form>"; |
|
$result.= &Apache::lonhtmlcommon::htmlareaselectactive(&Apache::lonhtmlcommon::get_htmlareafields()); |
} |
} |
if ($target eq 'web') { |
if ($target eq 'web') { |
$result.= &Apache::loncommon::end_page({'discussion' => 1}); |
$result.= &Apache::loncommon::end_page({'discussion' => 1}); |
Line 1718 sub ordered_show_check {
|
Line 1719 sub ordered_show_check {
|
return $in_order_show; |
return $in_order_show; |
} |
} |
|
|
|
|
sub start_startpartmarker { |
sub start_startpartmarker { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $result=''; |
my $result=''; |
Line 1726 sub start_startpartmarker {
|
Line 1728 sub start_startpartmarker {
|
$result.=&mt('Marker for the start of a part. Place end marker below to wrap in-between tags into a new part.').'</td></tr>'; |
$result.=&mt('Marker for the start of a part. Place end marker below to wrap in-between tags into a new part.').'</td></tr>'; |
$result.=&Apache::edit::end_table(); |
$result.=&Apache::edit::end_table(); |
|
|
} |
} |
return $result; |
return $result; |
} |
} |
|
|
Line 1756 sub end_endpartmarker {
|
Line 1758 sub end_endpartmarker {
|
return @result; |
return @result; |
} |
} |
|
|
|
|
|
|
|
|
|
|
sub start_part { |
sub start_part { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
if (!$Apache::lonxml::metamode) { |
if (!$Apache::lonxml::metamode) { |
Line 2055 sub end_startouttext {
|
Line 2061 sub end_startouttext {
|
$result.=&Apache::edit::start_table($token)."<tr><td>".&mt('Text Block')."</td>" |
$result.=&Apache::edit::start_table($token)."<tr><td>".&mt('Text Block')."</td>" |
.'<td><span class="LC_nobreak">'.&mt('Delete?').' ' |
.'<td><span class="LC_nobreak">'.&mt('Delete?').' ' |
.&Apache::edit::deletelist($target,$token) |
.&Apache::edit::deletelist($target,$token) |
.'</span></td>' |
.'</span></td>'; |
.'<td align="left"><span id="math_'.$areaid.'" />' |
unless ($env{'environment.wysiwygeditor'} eq 'on') { |
.&Apache::lonhtmlcommon::dragmath_button($areaid,1) |
$result .= '<td align="left">' |
.'</td>' |
.&Apache::lonhtmlcommon::dragmath_button($areaid,1) |
.'<td>' |
.'</td>' |
.&Apache::edit::insertlist($target,$token) |
.'<td>' |
.'</td>' |
.&Apache::edit::insertlist($target,$token) |
.'<td align="right" valign="top">' . |
.'</td>'; |
&Apache::loncommon::helpLatexCheatsheet(). |
} |
|
$result.='<td align="right" valign="top">' . |
|
&Apache::loncommon::helpLatexCheatsheet(). |
&Apache::edit::end_row(). |
&Apache::edit::end_row(). |
&Apache::edit::start_spanning_row()."\n". |
&Apache::edit::start_spanning_row()."\n". |
&Apache::edit::editfield($token->[1],$text,"",80,8,1); |
&Apache::edit::editfield($token->[1],$text,"",80,8,1); |