--- loncom/homework/structuretags.pm 2002/09/23 17:25:24 1.116
+++ loncom/homework/structuretags.pm 2002/10/01 21:04:34 1.121
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# definition of tags that give a structure to a document
#
-# $Id: structuretags.pm,v 1.116 2002/09/23 17:25:24 albertel Exp $
+# $Id: structuretags.pm,v 1.121 2002/10/01 21:04:34 sakharuk Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -297,7 +297,9 @@ sub start_problem {
$msg.=&checkout_msg;
}
$result.=$msg.'
';
- }
+ } 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') {
my $name= &get_resource_name($parstack,$safeeval);
if ($status eq 'CAN_ANSWER') {
@@ -345,18 +347,18 @@ sub start_problem {
print $temp_file "$duedate\n";
if (not $ENV{'request.symb'} =~ m/\.page_/) {
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 {
- $result .= '\begin{document} \noindent \vskip 1 mm';
+ $result .= '\begin{document} \noindent \vskip 1 mm \noindent\begin{minipage}{\textwidth}';
}
} else {
- $result .= '\parbox{\minipagewidth}{\vskip 1mm\textit{Due date: '.$duedate.'} \\\\\\\\';
+ $result .= '\vskip 1mm\textit{Due date: '.$duedate.'} \\\\\\\\';
}
} else {
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 {
- $result .= '\parbox{\minipagewidth}{\vskip 1mm \\\\\\\\';
+ $result .= '\vskip 1mm \\\\\\\\';
}
}
}
@@ -390,7 +392,7 @@ sub end_problem {
my $gradestatus = &Apache::inputtags::gradestatus($Apache::inputtags::part);
#FIXME this is ugly we should just generate tex in inputtags
if ($target eq 'tex') { $gradestatus=&html_to_tex($gradestatus); }
- $result.= $gradestatus;
+ if ($Apache::lonhomework::type ne 'exam') {$result.= $gradestatus;}
}
if (
(($target eq 'web') && ($ENV{'request.state'} ne 'construct')) ||
@@ -411,9 +413,9 @@ sub end_problem {
} else {
$result .= '\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}';
if (not $ENV{'request.symb'} =~ m/\.page_/) {
- $result .= '\end{document} ';
+ $result .= '\end{minipage}\end{document} ';
} else {
- $result .= '} ';
+ $result .= '';
}
}
}
@@ -432,21 +434,6 @@ sub end_problem {
return $result;
}
-#FIXME I am ugly shoot me
-sub html_to_tex {
- my ($string)=@_;
- $string =~ s/
]*)>//g;
- $string =~ s/<\/td>//g;
- $string =~ s//\\textbf{/g;
- $string =~ s/<\/b>/}/g;
- $string =~ s/ /\\vskip 0 mm /g; - $string =~ s/]*)>//g; - return $string; -} sub start_library { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; @@ -601,7 +588,7 @@ sub shuffle { if (defined(@$a)) { &Apache::response::setrandomnumber(); for($i=@$a;--$i;) { - my $j=int rand($i+1); + my $j=int(&Math::Random::random_uniform() * ($i+1)); next if $i == $j; @$a[$i,$j] = @$a[$j,$i]; } @@ -659,9 +646,8 @@ sub end_part { return &Apache::inputtags::grade; } if ($target eq 'web' || $target eq 'tex' ) { - my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part); - #FIXME this is ugly we should just generate tex in inputtags - if ($target eq 'tex') { $gradestatus=&html_to_tex($gradestatus); } + my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part,$target); + if ($Apache::lonhomework::type eq 'exam') {$gradestatus='';} return $gradestatus; } return ''; |