version 1.304, 2009/03/04 16:00:14
|
version 1.312, 2009/06/09 16:33:55
|
Line 173 sub setup_vars {
|
Line 173 sub setup_vars {
|
sub createmenu { |
sub createmenu { |
my ($which,$request)=@_; |
my ($which,$request)=@_; |
if ($which eq 'grade') { |
if ($which eq 'grade') { |
$request->print('<script language="JavaScript"> |
$request->print('<script type="text/javascript" language="JavaScript"> |
hwkmenu=window.open("/res/adm/pages/homeworkmenu.html","homeworkremote", |
hwkmenu=window.open("/res/adm/pages/homeworkmenu.html","homeworkremote", |
"height=350,width=150,menubar=no"); |
"height=350,width=150,menubar=no"); |
</script>'); |
</script>'); |
Line 297 sub check_slot_access {
|
Line 297 sub check_slot_access {
|
return ('WAITING_FOR_GRADE'); |
return ('WAITING_FOR_GRADE'); |
} |
} |
|
|
# no slot is currently open, and has been checked in for this version |
# Previously used slot is no longer open, and has been checked in for this version. |
# previous slot is therefore CLOSED, so therefore the problem is |
# However, the problem is not closed, and potentially, another slot might be |
|
# used to gain access to it to work on it, until the due date is reached, and the |
|
# problem then becomes CLOSED. Therefore return the slotstatus - |
|
# (which will be NOT_IN_SLOT). |
if (!defined($slot_name) |
if (!defined($slot_name) |
&& $checkedin |
&& $checkedin |
&& $type eq 'problem') { |
&& $type eq 'problem') { |
return ('CLOSED',$datemsg); |
return ($slotstatus); |
} |
} |
|
|
if ($slotstatus eq 'NOT_IN_A_SLOT' |
if ($slotstatus eq 'NOT_IN_A_SLOT' |
Line 685 sub handle_save_or_undo {
|
Line 688 sub handle_save_or_undo {
|
sub analyze_header { |
sub analyze_header { |
my ($request) = @_; |
my ($request) = @_; |
my $js = &Apache::structuretags::setmode_javascript(); |
my $js = &Apache::structuretags::setmode_javascript(); |
my $result = |
|
&Apache::loncommon::start_page('Analyzing a problem',$js); |
|
|
|
|
# Breadcrumbs |
|
my $brcrum = [{'href' => &Apache::loncommon::authorspace(), |
|
'text' => 'Construction Space'}, |
|
{'href' => '', |
|
'text' => 'Problem Testing'}, |
|
{'href' => '', |
|
'text' => 'Analyzing a problem'}]; |
|
|
|
my $result = |
|
&Apache::loncommon::start_page('Analyzing a problem', |
|
$js, |
|
{'bread_crumbs' => $brcrum,}) |
|
.&Apache::loncommon::head_subbox( |
|
&Apache::loncommon::CSTR_pageheader()); |
$result .= |
$result .= |
&Apache::lonxml::message_location().' |
&Apache::lonxml::message_location().' |
<form name="lonhomework" method="POST" action="'. |
<form name="lonhomework" method="post" action="'. |
&HTML::Entities::encode($env{'request.uri'},'<>&"').'">'. |
&HTML::Entities::encode($env{'request.uri'},'<>&"').'">'. |
'<input type="hidden" name="problemmode" value="'. |
'<input type="hidden" name="problemmode" value="'. |
$env{'form.problemmode'}.'" />'. |
$env{'form.problemmode'}.'" />'. |
Line 777 sub analyze {
|
Line 792 sub analyze {
|
} |
} |
&Apache::lonhtmlcommon::Update_PrgWin($request,\%prog_state, |
&Apache::lonhtmlcommon::Update_PrgWin($request,\%prog_state, |
&mt('Analyzing Results')); |
&mt('Analyzing Results')); |
$request->print('<hr class="LC_edit_problem_divide" />'.&mt('List of possible answers').': '); |
$request->print('<hr class="LC_edit_problem_divide" />' |
|
.'<h3>' |
|
.&mt('List of possible answers') |
|
.'</h3>' |
|
); |
foreach my $part (sort(keys(%allparts))) { |
foreach my $part (sort(keys(%allparts))) { |
if (defined(@{ $overall{$part.'.answer'} })) { |
if (defined(@{ $overall{$part.'.answer'} })) { |
for (my $i=0;$i<scalar(@{ $overall{$part.'.answer'} });$i++) { |
for (my $i=0;$i<scalar(@{ $overall{$part.'.answer'} });$i++) { |
my $num_cols=scalar(@{ $overall{$part.'.answer'}[$i][0] }); |
my $num_cols=scalar(@{ $overall{$part.'.answer'}[$i][0] }); |
$request->print('<table class="thinborder"><tr><th colspan="'.($num_cols+1).'">'.&mt('Part').' '.$part); |
$request->print(&Apache::loncommon::start_data_table() |
|
.&Apache::loncommon::start_data_table_header_row() |
|
.'<th colspan="'.($num_cols+1).'">' |
|
.&mt('Part').' '.$part |
|
); |
if (scalar(@{ $overall{$part.'.answer'} }) > 1) { |
if (scalar(@{ $overall{$part.'.answer'} }) > 1) { |
$request->print(&mt(' Answer [_1]',$i+1)); |
$request->print(' '.&mt('Answer [_1]',$i+1)); |
} |
} |
$request->print('</th></tr>'); |
$request->print('</th>' |
|
.&Apache::loncommon::end_data_table_header_row() |
|
); |
my %frequency; |
my %frequency; |
foreach my $answer (sort {$a->[0] <=> $b->[0]} (@{ $overall{$part.'.answer'}[$i] })) { |
foreach my $answer (sort {$a->[0] <=> $b->[0]} (@{ $overall{$part.'.answer'}[$i] })) { |
$frequency{join("\0",@{ $answer })}++; |
$frequency{join("\0",@{ $answer })}++; |
} |
} |
$request->print('<tr><th colspan="'.($num_cols).'">'.&mt('Answer').'</th><th>'.&mt('Frequency').'<br />(' |
$request->print(&Apache::loncommon::start_data_table_header_row() |
.&mt('click for example').')</th></tr>'); |
.'<th colspan="'.($num_cols).'">'.&mt('Answer').'</th>' |
|
.'<th>'.&mt('Frequency').'<br />' |
|
.'('.&mt('click for example').')</th>' |
|
.&Apache::loncommon::end_data_table_header_row() |
|
); |
foreach my $answer (sort {(split("\0",$a))[0] <=> (split("\0",$b))[0]} (keys(%frequency))) { |
foreach my $answer (sort {(split("\0",$a))[0] <=> (split("\0",$b))[0]} (keys(%frequency))) { |
$request->print('<tr><td class="center">'. |
$request->print(&Apache::loncommon::start_data_table_row() |
join('</td><td class="center">',split("\0",$answer)). |
.'<td>' |
'</td><td class="center"><a href="'.$request->uri.'?rndseed='.$seedexample{join("\0",$part,$i,$answer)}.'">'.$frequency{$answer}. |
.join('</td><td>',split("\0",$answer)) |
'</a></td></tr>'); |
.'</td>' |
|
.'<td>' |
|
.'<a href="'.$request->uri.'?rndseed='.$seedexample{join("\0",$part,$i,$answer)}.'">'.$frequency{$answer}.'</a>' |
|
.'</td>' |
|
.&Apache::loncommon::end_data_table_row() |
|
); |
} |
} |
$request->print('</table>'); |
$request->print(&Apache::loncommon::end_data_table()); |
} |
} |
} else { |
} else { |
$request->print('<p>'.&mt('Response').' '.$part.' '. |
$request->print('<p class="LC_warning">' |
&mt('is not analyzable at this time').'</p>'); |
.&mt('Response [_1] is not analyzable at this time.',$part) |
|
.'</p>' |
|
); |
} |
} |
} |
} |
if (scalar(keys(%allparts)) == 0 ) { |
if (scalar(keys(%allparts)) == 0 ) { |
$request->print('<p>'.&mt('Found no analyzable responses in this problem, currently only Numerical, Formula and String response styles are supported.').'</p>'); |
$request->print('<p class="LC_warning">' |
|
.&mt('Found no analyzable responses in this problem.' |
|
.' Currently only Numerical, Formula and String response styles are supported.') |
|
.'</p>' |
|
); |
} |
} |
&Apache::lonhtmlcommon::Close_PrgWin($request,\%prog_state); |
&Apache::lonhtmlcommon::Close_PrgWin($request,\%prog_state); |
&analyze_footer($request); |
&analyze_footer($request); |
Line 855 sub editxmlmode {
|
Line 895 sub editxmlmode {
|
my $result; |
my $result; |
my $problem=&Apache::lonnet::getfile($file); |
my $problem=&Apache::lonnet::getfile($file); |
if ($problem eq -1) { |
if ($problem eq -1) { |
&Apache::lonxml::error("<b> ".&mt('Unable to find'). |
&Apache::lonxml::error( |
" <i>$file</i></b>"); |
'<b> ' |
|
.&mt('Unable to find [_1]', |
|
'<span class="LC_filename">'.$file.'</span>') |
|
.'</b>'); |
|
|
$problem=''; |
$problem=''; |
} |
} |
if (defined($env{'form.editxmltext'}) || defined($env{'form.Undo'})) { |
if (defined($env{'form.editxmltext'}) || defined($env{'form.Undo'})) { |
Line 882 sub editxmlmode {
|
Line 926 sub editxmlmode {
|
my $only_body = ($env{'environment.remote'} eq 'off')? 0 : 1; |
my $only_body = ($env{'environment.remote'} eq 'off')? 0 : 1; |
my $dragmath_button = |
my $dragmath_button = |
&Apache::lonhtmlcommon::dragmath_button("LC_editxmltext",1); |
&Apache::lonhtmlcommon::dragmath_button("LC_editxmltext",1); |
|
|
|
# Breadcrumbs |
|
my $brcrum = [{'href' => &Apache::loncommon::authorspace(), |
|
'text' => 'Construction Space'}, |
|
{'href' => '', |
|
'text' => 'Problem Editing'}]; |
|
|
my $start_page = |
my $start_page = |
&Apache::loncommon::start_page(&mt("EditXML [_1]",$file),$js, |
&Apache::loncommon::start_page(&mt("EditXML [_1]",$file),$js, |
{'no_auto_mt_title' => 1, |
{'no_auto_mt_title' => 1, |
Line 889 sub editxmlmode {
|
Line 940 sub editxmlmode {
|
'add_entries' => { |
'add_entries' => { |
'onresize' => q[resize_textarea('LC_editxmltext','LC_aftertextarea')], |
'onresize' => q[resize_textarea('LC_editxmltext','LC_aftertextarea')], |
'onload' => q[resize_textarea('LC_editxmltext','LC_aftertextarea')], |
'onload' => q[resize_textarea('LC_editxmltext','LC_aftertextarea')], |
}}); |
}, |
$result.=$start_page. |
'bread_crumbs' => $brcrum, |
&renderpage($request,$file,['no_output_web'],1). |
}); |
'<form '.&Apache::edit::form_change_detection().' name="lonhomework" method="POST" action="'. |
|
|
$result=$start_page |
|
.&Apache::loncommon::head_subbox( |
|
&Apache::loncommon::CSTR_pageheader()); |
|
$result.=&renderpage($request,$file,['no_output_web'],1). |
|
'<form '.&Apache::edit::form_change_detection().' name="lonhomework" method="post" action="'. |
&HTML::Entities::encode($env{'request.uri'},'<>&"').'">'. |
&HTML::Entities::encode($env{'request.uri'},'<>&"').'">'. |
&Apache::structuretags::remember_problem_state().' |
&Apache::structuretags::remember_problem_state().' |
<div class="LC_edit_problem_editxml_header"> |
<div class="LC_edit_problem_editxml_header"> |
Line 963 sub renderpage {
|
Line 1019 sub renderpage {
|
my $filename=(split('/',$file))[-1]; |
my $filename=(split('/',$file))[-1]; |
my $error = |
my $error = |
"<b> ".&mt('Unable to find [_1]', |
"<b> ".&mt('Unable to find [_1]', |
' <span class="LC_filename">'.$filename.'</span>') |
'<span class="LC_filename">'.$filename.'</span>') |
."</b>"; |
."</b>"; |
$result.= |
$result.= |
&Apache::loncommon::simple_error_page($request,'Not available', |
&Apache::loncommon::simple_error_page($request,'Not available', |
Line 1102 sub newproblem {
|
Line 1158 sub newproblem {
|
my $dest = &Apache::lonnet::filelocation("",$request->uri); |
my $dest = &Apache::lonnet::filelocation("",$request->uri); |
my $errormsg; |
my $errormsg; |
my $instructions; |
my $instructions; |
|
my $brcrum = [{'href' => &Apache::loncommon::authorspace(), |
|
'text' => 'Construction Space'}, |
|
{'href' => '', |
|
'text' => "Create New $extension"}]; |
my $start_page = |
my $start_page = |
&Apache::loncommon::start_page("Create New $extension"); |
&Apache::loncommon::start_page("Create New $extension", |
$request->print(" |
undef, |
$start_page |
{'bread_crumbs' => $brcrum,}); |
<h1>".&mt("Creating a new $extension resource.")."</h1> |
$request->print( |
|
$start_page |
|
.&Apache::loncommon::head_subbox( |
|
&Apache::loncommon::CSTR_pageheader()) |
|
.'<h1>'.&mt("Creating a new $extension resource.")."</h1> |
$errormsg |
$errormsg |
".&mt("The requested file [_1] currently does not exist.", |
".&mt("The requested file [_1] currently does not exist.", |
"<tt>$shownurl</tt>")." |
'<span class="LC_filename">'.$shownurl.'</span>')." |
<p> |
<p> |
<b> |
<b> |
".&mt("To create a new $extension, select a template from the". |
".&mt("To create a new $extension, select a template from the". |
" list below. Then click on the \"Create $extension\" button.")."</b> |
" list below. Then click on the \"Create $extension\" button.").'</b> |
</p><form action=\"$url\" method=\"POST\">"); |
</p><form action="'.$url.'" method="post">'); |
|
|
if (defined($templatelist)) { |
if (defined($templatelist)) { |
$request->print($templatelist); |
$request->print($templatelist); |