version 1.113, 2002/09/09 21:08:31
|
version 1.130, 2002/11/03 19:16:19
|
Line 141 sub problem_edit_header {
|
Line 141 sub problem_edit_header {
|
<input type="submit" name="problemmode" value="EditXML" /> |
<input type="submit" name="problemmode" value="EditXML" /> |
<input type="submit" name="Undo" value="undo" /> <hr /> |
<input type="submit" name="Undo" value="undo" /> <hr /> |
<input type="submit" name="submit" value="Submit Changes" /> |
<input type="submit" name="submit" value="Submit Changes" /> |
<input type="submit" name="submit" value="Submit Changes and View" /><br /> |
<input type="submit" name="submit" value="Submit Changes and View" /><br /><p> </p> |
'; |
'; |
} |
} |
|
|
Line 161 sub problem_web_to_edit_header {
|
Line 161 sub problem_web_to_edit_header {
|
<input type="submit" name="resetdata" value="Reset Submissions" /> |
<input type="submit" name="resetdata" value="Reset Submissions" /> |
<input type="checkbox" name="showallfoils" '; |
<input type="checkbox" name="showallfoils" '; |
if (defined($ENV{'form.showallfoils'})) { $result.='checked="on"'; } |
if (defined($ENV{'form.showallfoils'})) { $result.='checked="on"'; } |
$result.= ' /> Show All Foils |
$result.= ' /> Show All Foils |
<hr />'; |
<hr />'; |
|
my $numtoanalyze=$ENV{'form.numtoanalyze'}; |
|
if (!$numtoanalyze) { $numtoanalyze=100; } |
|
#DISABLED for now. |
|
#$result.= '<input type="submit" name="problemmode" value="Answer Distribution" /> |
|
# <input type="text" name="numtoanalyze" value="'. |
|
# $numtoanalyze.'" size="5" /> <hr />'; |
|
return $result; |
} |
} |
|
|
sub initialize_storage { |
sub initialize_storage { |
Line 297 sub start_problem {
|
Line 304 sub start_problem {
|
$msg.=&checkout_msg; |
$msg.=&checkout_msg; |
} |
} |
$result.=$msg.'<br />'; |
$result.=$msg.'<br />'; |
} |
} elsif ($target eq 'tex') { |
|
$result.="\\begin{document}\\noindent \\vskip 1 mm \\begin{minipage}{\\textwidth}\\vskip 0 mm Problem is not open to be viewed. It $accessmsg \\vskip 0 mm "; |
|
} |
} elsif ($target eq 'web') { |
} elsif ($target eq 'web') { |
my $name= &get_resource_name($parstack,$safeeval); |
my $name= &get_resource_name($parstack,$safeeval); |
if ($status eq 'CAN_ANSWER') { |
if ($status eq 'CAN_ANSWER') { |
Line 345 sub start_problem {
|
Line 354 sub start_problem {
|
print $temp_file "$duedate\n"; |
print $temp_file "$duedate\n"; |
if (not $ENV{'request.symb'} =~ m/\.page_/) { |
if (not $ENV{'request.symb'} =~ m/\.page_/) { |
if(not $duedate=~m/1969/) { |
if(not $duedate=~m/1969/) { |
$result .= '\begin{document} \noindent\textit{Due date: '.$duedate.'} \vskip 1 mm'; |
$result .= '\begin{document} \noindent\textit{Due date: '.$duedate.'} \vskip 1 mm\noindent \begin{minipage}{\textwidth}'; |
} else { |
} else { |
$result .= '\begin{document} \noindent \vskip 1 mm'; |
$result .= '\begin{document} \noindent \vskip 1 mm \noindent\begin{minipage}{\textwidth}'; |
} |
} |
} else { |
} else { |
$result .= '\parbox{\minipagewidth}{\vskip 1mm\textit{Due date: '.$duedate.'} \\\\\\\\'; |
$result .= '\vskip 1mm\textit{Due date: '.$duedate.'} \\\\\\\\'; |
} |
} |
} else { |
} else { |
if (not $ENV{'request.symb'} =~ m/\.page_/) { |
if (not $ENV{'request.symb'} =~ m/\.page_/) { |
$result .= '\begin{document} \noindent \vskip 1 mm'; |
$result .= '\begin{document} \noindent \vskip 1 mm\noindent\begin{minipage}{\textwidth}'; |
} else { |
} else { |
$result .= '\parbox{\minipagewidth}{\vskip 1mm \\\\\\\\'; |
$result .= '\vskip 1mm \\\\\\\\'; |
} |
} |
} |
} |
} |
} |
Line 387 sub end_problem {
|
Line 396 sub end_problem {
|
$status ne 'UNCHECKEDOUT') { |
$status ne 'UNCHECKEDOUT') { |
# if part is zero, no <part>s existed, so we need show the current |
# if part is zero, no <part>s existed, so we need show the current |
# grading status |
# grading status |
my $gradestatus = &Apache::inputtags::gradestatus($Apache::inputtags::part); |
my $gradestatus = &Apache::inputtags::gradestatus($Apache::inputtags::part,$target); |
#FIXME this is ugly we should just generate tex in inputtags |
if ($Apache::lonhomework::type ne 'exam') {$result.= $gradestatus;} |
if ($target eq 'tex') { $gradestatus=&html_to_tex($gradestatus); } |
|
$result.= $gradestatus; |
|
} |
} |
if ( |
if ( |
(($target eq 'web') && ($ENV{'request.state'} ne 'construct')) || |
(($target eq 'web') && ($ENV{'request.state'} ne 'construct')) || |
Line 411 sub end_problem {
|
Line 418 sub end_problem {
|
} else { |
} else { |
$result .= '\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}'; |
$result .= '\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}'; |
if (not $ENV{'request.symb'} =~ m/\.page_/) { |
if (not $ENV{'request.symb'} =~ m/\.page_/) { |
$result .= '\end{document} '; |
$result .= '\end{minipage}\end{document} '; |
} else { |
} else { |
$result .= '} '; |
$result .= ''; |
} |
} |
} |
} |
} |
} |
Line 432 sub end_problem {
|
Line 439 sub end_problem {
|
return $result; |
return $result; |
} |
} |
|
|
#FIXME I am ugly shoot me |
|
sub html_to_tex { |
|
my ($string)=@_; |
|
$string =~ s/<table>//; |
|
$string =~ s/<\/table>//; |
|
$string =~ s/<tr([^>]*)>//g; |
|
$string =~ s/<\/tr>//g; |
|
$string =~ s/<td([^>]*)>//g; |
|
$string =~ s/<\/td>//g; |
|
$string =~ s/<b>/\\textbf{/g; |
|
$string =~ s/<\/b>/}/g; |
|
$string =~ s/<br \/>/\\vskip 0 mm /g; |
|
$string =~ s/<input([^>]*)>//g; |
|
return $string; |
|
} |
|
|
|
sub start_library { |
sub start_library { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
Line 481 sub end_library {
|
Line 473 sub end_library {
|
my $result=''; |
my $result=''; |
if ($target eq 'edit') { |
if ($target eq 'edit') { |
$result=&problem_edit_footer(); |
$result=&problem_edit_footer(); |
} elsif ($target eq 'web' && $ENV{'request.state'} eq "construct") { |
} elsif ($target eq 'web' && $$tagstack[0] ne 'problem' && |
|
$ENV{'request.state'} eq "construct") { |
$result.='</form></body>'.&Apache::lonxml::xmlend(); |
$result.='</form></body>'.&Apache::lonxml::xmlend(); |
} |
} |
return $result; |
return $result; |
Line 490 sub end_library {
|
Line 483 sub end_library {
|
sub start_block { |
sub start_block { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
|
|
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') { |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex' || $target eq 'analyze') { |
my $code = @$parstack[$#$parstack]; |
my $code = @$parstack[$#$parstack]; |
$code =~ s/\"//g; |
$code =~ s/\"//g; |
$code .=';return $condition;'; |
$code .=';return $condition;'; |
Line 547 sub start_randomlist {
|
Line 540 sub start_randomlist {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $result; |
my $result; |
if ($target eq 'answer' || $target eq 'grade' || $target eq 'web' || |
if ($target eq 'answer' || $target eq 'grade' || $target eq 'web' || |
$target eq 'tex') { |
$target eq 'tex' || $target eq 'analyze') { |
my $body= &Apache::lonxml::get_all_text("/randomlist",$$parser[$#$parser]); |
my $body= &Apache::lonxml::get_all_text("/randomlist",$$parser[$#$parser]); |
my $b_parser= HTML::TokeParser->new(\$body); |
my $b_parser= HTML::TokeParser->new(\$body); |
my $b_tok; |
my $b_tok; |
Line 600 sub shuffle {
|
Line 593 sub shuffle {
|
if (defined(@$a)) { |
if (defined(@$a)) { |
&Apache::response::setrandomnumber(); |
&Apache::response::setrandomnumber(); |
for($i=@$a;--$i;) { |
for($i=@$a;--$i;) { |
my $j=int rand($i+1); |
my $j=int(&Math::Random::random_uniform() * ($i+1)); |
next if $i == $j; |
next if $i == $j; |
@$a[$i,$j] = @$a[$j,$i]; |
@$a[$i,$j] = @$a[$j,$i]; |
} |
} |
Line 637 sub start_part {
|
Line 630 sub start_part {
|
if ( $target eq "web" ) { |
if ( $target eq "web" ) { |
$result="<br />Part is not open to be viewed. It $accessmsg<br />"; |
$result="<br />Part is not open to be viewed. It $accessmsg<br />"; |
} elsif ( $target eq 'tex' ) { |
} elsif ( $target eq 'tex' ) { |
$result="\\vskip 0 mm Part is not open to be viewed. It $accessmsg \\\\"; |
$result="\\end{minipage}\\vskip 0 mm Part is not open to be viewed. It $accessmsg \\\\\\begin{minipage}{\\textwidth}"; |
} |
} |
} else { |
} else { |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
$result='\vskip 0 mm'; |
if ($$tagstack[-2] ne 'problem') { |
|
$result.='\noindent \end{minipage}\vskip 0 mm \noindent \begin{minipage}{\textwidth}\noindent'; |
|
} |
} |
} |
} |
} |
} |
} |
Line 658 sub end_part {
|
Line 653 sub end_part {
|
return &Apache::inputtags::grade; |
return &Apache::inputtags::grade; |
} |
} |
if ($target eq 'web' || $target eq 'tex' ) { |
if ($target eq 'web' || $target eq 'tex' ) { |
my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part); |
my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part,$target); |
#FIXME this is ugly we should just generate tex in inputtags |
if ($Apache::lonhomework::type eq 'exam') {$gradestatus='';} |
if ($target eq 'tex') { $gradestatus=&html_to_tex($gradestatus); } |
|
return $gradestatus; |
return $gradestatus; |
} |
} |
return ''; |
return ''; |
Line 749 sub end_startouttext {
|
Line 743 sub end_startouttext {
|
<td>". |
<td>". |
&Apache::edit::insertlist($target,$token). |
&Apache::edit::insertlist($target,$token). |
&Apache::edit::end_row().&Apache::edit::start_spanning_row()."\n". |
&Apache::edit::end_row().&Apache::edit::start_spanning_row()."\n". |
&Apache::edit::editfield($token->[1],$text,"",50,4); |
&Apache::edit::editfield($token->[1],$text,"",80,4); |
} |
} |
if ($target eq 'modified') { |
if ($target eq 'modified') { |
$text=&Apache::lonxml::get_all_text("endouttext",$$parser['-1']); |
$text=&Apache::lonxml::get_all_text("endouttext",$$parser['-1']); |
Line 764 sub start_endouttext {
|
Line 758 sub start_endouttext {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $result=''; |
my $result=''; |
if ($target eq "edit" ) { $result="</td></tr>".&Apache::edit::end_table()."\n"; } |
if ($target eq "edit" ) { $result="</td></tr>".&Apache::edit::end_table()."\n"; } |
if ($target eq "modified") { $result='<endouttext />'; } |
if ($target eq "modified") { |
|
$result='<endouttext />'. |
|
&Apache::edit::handle_insertafter('startouttext'); } |
return $result; |
return $result; |
} |
} |
sub end_endouttext { |
sub end_endouttext { |