[LON-CAPA-cvs] cvs: loncom /homework structuretags.pm

sakharuk lon-capa-cvs@mail.lon-capa.org
Thu, 27 Feb 2003 20:01:05 -0000


sakharuk		Thu Feb 27 15:01:05 2003 EDT

  Modified files:              
    /loncom/homework	structuretags.pm 
  Log:
   Added points to exam problems.
  
  
Index: loncom/homework/structuretags.pm
diff -u loncom/homework/structuretags.pm:1.150 loncom/homework/structuretags.pm:1.151
--- loncom/homework/structuretags.pm:1.150	Tue Feb 25 18:18:22 2003
+++ loncom/homework/structuretags.pm	Thu Feb 27 15:01:05 2003
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # definition of tags that give a structure to a document
 #
-# $Id: structuretags.pm,v 1.150 2003/02/25 23:18:22 albertel Exp $
+# $Id: structuretags.pm,v 1.151 2003/02/27 20:01:05 sakharuk Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -253,6 +253,7 @@
   $Apache::inputtags::part='0';
   @Apache::inputtags::responselist = ();
   @Apache::inputtags::previous=();
+  $Apache::structuretags::printanswer='No';
   if ($target ne 'analyze') {
     &initialize_storage();
     if ($target eq 'web') {
@@ -323,7 +324,7 @@
         }
 	$result.=$msg.'<br />';
       } elsif ($target eq 'tex') {
-	  $result.="\\begin{document}\\noindent \\vskip 1 mm \\begin{minipage}{\\textwidth}\\vskip 0 mm ";
+	  $result.='\begin{document}\noindent \vskip 1 mm  \begin{minipage}{\textwidth}\vskip 0 mm';
 	if ($status eq 'UNAVAILABLE') {
 	    $result.='Unable to determine if this resource is open due to network problems. Please try again later.\vskip 0 mm ';
 	} else {
@@ -360,6 +361,15 @@
 	}
 	$Apache::lonhomework::name=$name;
 	my $id = $Apache::inputtags::part;
+	my $weight = &Apache::lonnet::EXT("resource.$id.weight");
+	my $allkeys = &Apache::lonnet::metadata($ENV{'request.uri'},'keys');
+	my @allkeys = split /,/,$allkeys;
+        my $allow_print_points = 0;
+	foreach my $partial_key (@allkeys) {
+	    if ($partial_key=~m/weight/) {
+		$allow_print_points++;
+	    }
+	}
 	my $duedate = &Apache::lonnet::EXT("resource.$id.duedate"); 
 	$duedate = POSIX::strftime("%c",localtime($duedate));
 	my $temp_file;
@@ -376,10 +386,11 @@
 	$temp_file = Apache::File->new('>'.$filename); 
 	    print $temp_file "$duedate\n";	    
 	    if (not $ENV{'request.symb'} =~ m/\.page_/) {
-		if(not $duedate=~m/1969/) {
+		if(not $duedate=~m/1969/ and $Apache::lonhomework::type ne 'exam') {
 		    $result .= '\begin{document} \noindent\textit{Due date: '.$duedate.'} \vskip 1 mm\noindent \begin{minipage}{\textwidth}';	
 		} else {
 		    $result .= '\begin{document} \noindent \vskip 1 mm \noindent\begin{minipage}{\textwidth}';
+		    if ($Apache::lonhomework::type eq 'exam' and $allow_print_points==1) { $result .= '\fbox{\textit{'.$weight.' pt}}';}
 		}
 	    } else {
 		$result .= '\vskip 1mm\textit{Due date: '.$duedate.'} \\\\\\\\';
@@ -387,6 +398,7 @@
 	} else {
 	    if (not $ENV{'request.symb'} =~ m/\.page_/) {
 		$result .= '\begin{document} \noindent \vskip 1 mm\noindent\begin{minipage}{\textwidth}';	
+		if (($Apache::lonhomework::type eq 'exam') and ($allow_print_points==1)) { $result .= '\fbox{\textit{'.$weight.' pt}}';}
 	    } else {
 		$result .= '\vskip 1mm \\\\\\\\';
 	    } 
@@ -689,9 +701,9 @@
 	      }
 	  } else {
 	      if ($target eq 'tex') {
-		  if ($$tagstack[-2] ne 'problem') {
-		      $result.='\noindent \end{minipage}\vskip 0 mm \noindent \begin{minipage}{\textwidth}\noindent';
-		  }
+		$result.='\noindent \end{minipage}\vskip 0 mm \noindent \begin{minipage}{\textwidth}\noindent';
+		my $weight = &Apache::lonnet::EXT("resource.$id.weight");
+		if ($Apache::lonhomework::type eq 'exam') { $result .= '\fbox{\textit{'.$weight.' pt}}';}
 	      }
 	  }
       }