Diff for /loncom/interface/lonprintout.pm between versions 1.388 and 1.396

version 1.388, 2005/08/22 22:21:48 version 1.396, 2005/10/31 21:06:35
Line 1 Line 1
 #  The LearningOnline Network  # The LearningOnline Network
 # Printout  # Printout
 #  #
 # $Id$  # $Id$
Line 42  use Apache::lonratedt; Line 42  use Apache::lonratedt;
 use POSIX qw(strftime);  use POSIX qw(strftime);
 use Apache::lonlocal;  use Apache::lonlocal;
   
 my $resources_printed = '';  
   
 #  #
 #   Convert a numeric code to letters  #   Convert a numeric code to letters
 #  #
Line 508  sub character_chart { Line 506  sub character_chart {
     $result =~ s/&(prod|\#8719);/\\ensuremath\{\\prod\}/g;      $result =~ s/&(prod|\#8719);/\\ensuremath\{\\prod\}/g;
     $result =~ s/&(sum|\#8721);/\\ensuremath\{\\sum\}/g;      $result =~ s/&(sum|\#8721);/\\ensuremath\{\\sum\}/g;
     $result =~ s/&(minus|\#8722);/\\ensuremath\{-\}/g;      $result =~ s/&(minus|\#8722);/\\ensuremath\{-\}/g;
       $result =~ s/–/\\ensuremath\{-\}/g;
     $result =~ s/&(lowast|\#8727);/\\ensuremath\{*\}/g;      $result =~ s/&(lowast|\#8727);/\\ensuremath\{*\}/g;
     $result =~ s/&(radic|\#8730);/\\ensuremath\{\\surd\}/g;      $result =~ s/&(radic|\#8730);/\\ensuremath\{\\surd\}/g;
     $result =~ s/&(prop|\#8733);/\\ensuremath\{\\propto\}/g;      $result =~ s/&(prop|\#8733);/\\ensuremath\{\\propto\}/g;
Line 822  sub print_latex_header { Line 821  sub print_latex_header {
     $output.='\newcommand{\keephidden}[1]{}\renewcommand{\deg}{$^{\circ}$}'."\n".      $output.='\newcommand{\keephidden}[1]{}\renewcommand{\deg}{$^{\circ}$}'."\n".
      '\usepackage{longtable}\usepackage{textcomp}\usepackage{makeidx}'."\n".       '\usepackage{longtable}\usepackage{textcomp}\usepackage{makeidx}'."\n".
      '\usepackage[dvips]{graphicx}\usepackage{epsfig}'."\n".       '\usepackage[dvips]{graphicx}\usepackage{epsfig}'."\n".
        '\usepackage{wrapfig}'.
      '\usepackage{picins}\usepackage{calc}'."\n".       '\usepackage{picins}\usepackage{calc}'."\n".
      '\newenvironment{choicelist}{\begin{list}{}{\setlength{\rightmargin}{0in}'."\n".       '\newenvironment{choicelist}{\begin{list}{}{\setlength{\rightmargin}{0in}'."\n".
      '\setlength{\leftmargin}{0.13in}\setlength{\topsep}{0.05in}'."\n".       '\setlength{\leftmargin}{0.13in}\setlength{\topsep}{0.05in}'."\n".
Line 903  sub unsupported { Line 903  sub unsupported {
   
   
 #  #
   # List of recently generated print files
   #
   
   sub recently_generated {
       my $r=shift;
       my $prtspool=$r->dir_config('lonPrtDir');
       my $result;
       opendir(DIR,$prtspool);
       while (my $filename=readdir(DIR)) {
    if ($filename=~/^$env{'user.name'}\_$env{'user.domain'}\_printout\_(\d+)\_.*.pdf$/) {
       my ($cdev,$cino,$cmode,$cnlink,
    $cuid,$cgid,$crdev,$csize,
    $catime,$cmtime,$cctime,
    $cblksize,$cblocks)=stat($prtspool.'/'.$filename);
               $result.="<a href='/prtspool/$filename'>".
    &mt('Generated [_1] ([_2] bytes)',
       &Apache::lonlocal::locallocaltime($cctime),$csize).
       '</a><br />';
    }
       }
       closedir(DIR);
       if ($result) {
    $r->print('<h4>'.&mt('Recently generated printouts').'</h4>'."\n".
     $result);
       }
   }
   
   #
 #   Retrieve the hash of page breaks.  #   Retrieve the hash of page breaks.
 #  #
 #  Inputs:  #  Inputs:
Line 926  sub get_page_breaks  { Line 954  sub get_page_breaks  {
 sub output_data {  sub output_data {
     my ($r,$helper,$rparmhash) = @_;      my ($r,$helper,$rparmhash) = @_;
     my %parmhash = %$rparmhash;      my %parmhash = %$rparmhash;
       my $resources_printed = '';
     my $html=&Apache::lonxml::xmlbegin();      my $html=&Apache::lonxml::xmlbegin();
     my $bodytag=&Apache::loncommon::bodytag('Preparing Printout');      my $bodytag=&Apache::loncommon::bodytag('Preparing Printout');
     $r->print(<<ENDPART);      $r->print(<<ENDPART);
Line 1386  ENDPART Line 1415  ENDPART
      $code_type=$result{"type\0$old_name"};       $code_type=$result{"type\0$old_name"};
      @allcodes=split(',',$result{$old_name});       @allcodes=split(',',$result{$old_name});
      $num_todo=scalar(@allcodes);       $num_todo=scalar(@allcodes);
  } elsif ($selected_code) {   } elsif ($selected_code) { # Selection value is always numeric.
      $num_todo = 1;       $num_todo = 1;
      my ($alpha, $numeric) = split(/:/, $selected_code);  
      $selected_code = $numeric; # Always use numeric, converted if need be.  
      $selected_code =~ s/\s+//g;  
      @allcodes = ($selected_code);       @allcodes = ($selected_code);
  } elsif ($single_code) {   } elsif ($single_code) {
   
Line 1633  sub get_CODE { Line 1659  sub get_CODE {
     my $max='1'.'0'x$size;      my $max='1'.'0'x$size;
     my $newcode;      my $newcode;
     while(1) {      while(1) {
  $newcode=sprintf("%06d",int(rand($max)));   $newcode=sprintf("%0".$size."d",int(rand($max)));
  if (!exists($$all_codes{$newcode})) {   if (!exists($$all_codes{$newcode})) {
     $$all_codes{$newcode}=1;      $$all_codes{$newcode}=1;
     if ($type eq 'number' ) {      if ($type eq 'number' ) {
Line 1854  sub printHelper { Line 1880  sub printHelper {
     $helper->declareVar("showallfoils");      $helper->declareVar("showallfoils");
   
     #  The page breaks can get loaded initially from the course environment:      #  The page breaks can get loaded initially from the course environment:
       # But we only do this in the initial state so that they are allowed to change.
       #
   
     if((!defined($env{"form.CURRENT_STATE"}))  ||      $helper->{VARS}->{FINISHPAGE} = '';
        ($env{'form.CURRENT_STATE'} == "START")) {  
  $helper->{VARS}->{FINISHPAGE} = ""; # In case they did a back e.g.  
     }  
   
   
           
     &Apache::loncommon::restore_course_settings('print',      &Apache::loncommon::restore_course_settings('print',
  {'pagebreaks'  => 'scalar',   {'pagebreaks'  => 'scalar',
          'lastprinttype' => 'scalar'});           'lastprinttype' => 'scalar'});
   
           
     if("$helper->{VARS}->{PRINT_TYPE}" eq "$env{'form.lastprinttype'}") {      
  $helper->{VARS}->{FINISHPAGE} = $env{'form.pagebreaks'};      if($helper->{VARS}->{PRINT_TYPE} eq $env{'form.lastprinttype'}) {
    if (!defined ($env{"form.CURRENT_STATE"})) {
       
       $helper->{VARS}->{FINISHPAGE} = $env{'form.pagebreaks'};
    } else {
       my $state = $env{"form.CURRENT_STATE"};
       if ($state eq "START") {
    $helper->{VARS}->{FINISHPAGE} = $env{'form.pagebreaks'};
       }
    }
   
     }      }
           
           
Line 1978  sub printHelper { Line 2010  sub printHelper {
     $helper->declareVar('SEQUENCE');      $helper->declareVar('SEQUENCE');
   
     # Useful for debugging: Dump the help vars      # Useful for debugging: Dump the help vars
 #    $r->print(Dumper($helper->{VARS}));  #     $r->print(Dumper($helper->{VARS}));
 #    $r->print($map);  #    $r->print($map);
   
     # If we're in a sequence...      # If we're in a sequence...
Line 2096  CHOOSE_STUDENTS Line 2128  CHOOSE_STUDENTS
     if ($name =~ /^type\0/) { next; }      if ($name =~ /^type\0/) { next; }
     $namechoice.='<choice computer="'.$name.'">'.$name.'</choice>';      $namechoice.='<choice computer="'.$name.'">'.$name.'</choice>';
  }   }
   
   
         my %all_codes = &Apache::lonnet::get('CODEs',          my %all_codes = &Apache::lonnet::get('CODEs',
      \@names, $cdom,$cnum);       \@names, $cdom,$cnum);
    my %code_values;
  my @all_code_array;   my @all_code_array;
  foreach my $key (keys %all_codes) {   foreach my $key (keys %all_codes) {
     my $codes = $all_codes{$key};      %code_values = &Apache::grades::get_codes($key, $cdom, $cnum);
     my @numeric_codes = split(/,/,$codes);      foreach my $key (keys %code_values) {
     foreach my $numeric (sort {uc($a) cmp uc($b)} @numeric_codes) {   push (@all_code_array, "$key");
  my $alpha_code = &num_to_letters($numeric);  
  push (@all_code_array, "$alpha_code : $numeric");  
     }      }
  }   }
   
  my $code_selection = "<choice></choice>\n";   my $code_selection = "<choice></choice>\n";
  foreach my $code (@all_code_array) {   foreach my $code (sort {uc($a) cmp uc($b)} @all_code_array) {
     $code_selection .= '   <choice computer="'.$code.'">'.$code."</choice>\n";      my $choice  = $code;
       if ($code =~ /^[A-Z]+$/) { # Alpha code
    $choice = &letters_to_num($code);
       }
       $code_selection .= '   <choice computer="'.$choice.'">'.$code."</choice>\n";
  }   }
  open(FH,$Apache::lonnet::perlvar{'lonTabDir'}.'/scantronformat.tab');   open(FH,$Apache::lonnet::perlvar{'lonTabDir'}.'/scantronformat.tab');
  my $codechoice='';   my $codechoice='';
Line 2318  CHOOSE_FROM_SUBDIR Line 2356  CHOOSE_FROM_SUBDIR
       <nextstate>CHOOSE_FROM_ANY_SEQUENCE</nextstate>        <nextstate>CHOOSE_FROM_ANY_SEQUENCE</nextstate>
       <filterfunc>return \$res->is_sequence;</filterfunc>        <filterfunc>return \$res->is_sequence;</filterfunc>
       <valuefunc>return $urlValue;</valuefunc>        <valuefunc>return $urlValue;</valuefunc>
         <choicefunc>return \$res->hasResource(\$res,sub { return !\$_[0]->is_sequence() },0,0);
    </choicefunc>
       <option text='Newpage' variable='FINISHPAGE' />        <option text='Newpage' variable='FINISHPAGE' />
       </resource>        </resource>
     </state>      </state>
Line 2450  RNDSEED Line 2490  RNDSEED
     $helper->{'VARS'}->{'style_file'}=$env{'form.style_file_value'};      $helper->{'VARS'}->{'style_file'}=$env{'form.style_file_value'};
           
  }    } 
   
     }      }
   
   
Line 2477  RNDSEED Line 2516  RNDSEED
     }          }    
   
     $r->print($helper->display());      $r->print($helper->display());
       if ($helper->{STATE} eq 'START') {
    &recently_generated($r);
       }
     &Apache::lonhelper::unregisterHelperTags();      &Apache::lonhelper::unregisterHelperTags();
   
     return OK;      return OK;

Removed from v.1.388  
changed lines
  Added in v.1.396


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>