Diff for /loncom/interface/lonprintout.pm between versions 1.623 and 1.626

version 1.623, 2012/11/30 20:38:01 version 1.626, 2012/12/10 01:09:06
Line 705  sub incomplete { Line 705  sub incomplete {
 #  to only those that are in the original set selcted to be printed.  #  to only those that are in the original set selcted to be printed.
 #  #
 # Parameters:  # Parameters:
 #   $helper - The helper we need $helper->{'VARS'}->{'symb'}  #   $map - The URL of the folder being printed.
 #            to construct the navmap and the iteration.  #          Used to determine which startResource and finishResource
 #   $seq   - The original set of resources to print   #          to use when using the navmap's getIterator method.
   #   $seq   - The original set of resources to print.
 #            (really an array of resource names (array of symb's).  #            (really an array of resource names (array of symb's).
 #   $who   - Student/domain for whome the sequence will be generated.  #   $who   - Student/domain for whome the sequence will be generated.
   #   $code  - CODE being printed when printing Problems/Resources
   #            from folder for CODEd assignments
 #  #
 # Implicit inputs:  # Implicit inputs:
 #   $  #   $
Line 718  sub incomplete { Line 721  sub incomplete {
 #   print_resources.  #   print_resources.
 #   # 
 sub master_seq_to_person_seq {  sub master_seq_to_person_seq {
     my ($helper, $seq, $who) = @_;      my ($map, $seq, $who, $code) = @_;
   
   
     my ($username, $userdomain, $usersection) = split(/:/, $who);      my ($username, $userdomain, $usersection) = split(/:/, $who);
   
   
     # Toss the sequence up into a hash so that we have O(1) lookup time.      # Toss the sequence up into a hash so that we have O(1) lookup time.
     # on the items that come out of the user's list of resources.      # on the items that come out of the user's list of resources.
     #      #
       
     my %seq_hash = map {$_  => 1} @$seq;      my %seq_hash = map {$_  => 1} @$seq;
     my @output_seq;      my @output_seq;
           
     my ($map, $id, $url) = &Apache::lonnet::decode_symb($helper->{VARS}->{'symb'});      my $navmap           = Apache::lonnavmaps::navmap->new($username, $userdomain,
     my $navmap           = Apache::lonnavmaps::navmap->new($username, $userdomain);                                                             $code);
     my $iterator         = $navmap->getIterator($navmap->firstResource(),      my ($start,$finish);
  $navmap->finishResource(),  
  {}, 1);      if ($map) {
     my %nonResourceItems = (          my $mapres = $navmap->getResourceByUrl($map);
  $iterator->BEGIN_MAP    => 1,          if ($mapres->is_map()) {
  $iterator->BEGIN_BRANCH => 1,              $start = $mapres->map_start();
  $iterator->END_BRANCH   => 1,              $finish = $mapres->map_finish();
  $iterator->END_MAP      => 1,          }
  $iterator->FORWARD      => 1,      }
  $iterator->BACKWARD     => 1      unless ($start && $finish) {
           $start = $navmap->firstResource();
           $finish = $navmap->finishResource();
       }
   
     ); # These items are not resources but appear in the midst of iteration.      my $iterator         = $navmap->getIterator($start,$finish,{},1);
   
     #  Iterate on the resource..select the items that are randomly selected      #  Iterate on the resource..select the items that are randomly selected
     #  and that are in the seq_has.  Presumably the iterator will take care      #  and that are in the seq_has.  Presumably the iterator will take care
Line 756  sub master_seq_to_person_seq { Line 761  sub master_seq_to_person_seq {
  #  Only process resources..that are not removed by randomout...   #  Only process resources..that are not removed by randomout...
  #  and are selected for printint as well.   #  and are selected for printint as well.
  #   #
        
  if (! exists $nonResourceItems{$curres} && ! $curres->randomout()) {          if (ref($curres) && ! $curres->randomout()) {
     my $symb = $curres->symb();              my $currsymb = $curres->symb();
     if (exists $seq_hash{$symb}) {              if (exists($seq_hash{$currsymb})) {
  push(@output_seq, $symb);                  push(@output_seq, $currsymb);
     }      }
  }   }
     }      }
      
   
     return \@output_seq; # for now.      return \@output_seq; # for now.
           
Line 2140  sub print_page_in_course { Line 2144  sub print_page_in_course {
     my @page_resources = $navmap->retrieveResources($resource_src);      my @page_resources = $navmap->retrieveResources($resource_src);
     $result           .= &print_page_in_course($helper, $rparmhash,       $result           .= &print_page_in_course($helper, $rparmhash, 
        $resource_src, \@page_resources);         $resource_src, \@page_resources);
           } elsif ($resource->ext()) {
               $result .= &unsupported($currentURL,$mode,$symb);
  }   }
  # these resources go through the XML transformer:   # these resources go through the XML transformer:
   
Line 3142  ENDPART Line 3148  ENDPART
  }   }
  my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'};   my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'};
   
            my $map;
            if ($helper->{VARS}->{'symb'}) {
                ($map, my $id, my $resource) =
                    &Apache::lonnet::decode_symb($helper->{VARS}->{'symb'});
            }
   
  #loop over students   #loop over students
   
   my $flag_latex_header_remove = 'NO';    my $flag_latex_header_remove = 'NO';
Line 3176  ENDPART Line 3188  ENDPART
      } else {       } else {
  $i=int($student_counter/$helper->{'VARS'}{'NUMBER_TO_PRINT'});   $i=int($student_counter/$helper->{'VARS'}{'NUMBER_TO_PRINT'});
      }       }
      my $actual_seq = master_seq_to_person_seq($helper, \@master_seq, $person);       my $actual_seq = master_seq_to_person_seq($map, \@master_seq,
                                                          $person);
      my ($output,$fullname, $printed)=&print_resources($r,$helper,       my ($output,$fullname, $printed)=&print_resources($r,$helper,
      $person,$type,       $person,$type,
      \%moreenv,  $actual_seq,       \%moreenv,  $actual_seq,
Line 3202  ENDPART Line 3215  ENDPART
  my $old_name=$helper->{'VARS'}->{'REUSE_OLD_CODES'};   my $old_name=$helper->{'VARS'}->{'REUSE_OLD_CODES'};
  my $single_code = $helper->{'VARS'}->{'SINGLE_CODE'};   my $single_code = $helper->{'VARS'}->{'SINGLE_CODE'};
  my $selected_code = $helper->{'VARS'}->{'CODE_SELECTED_FROM_LIST'};   my $selected_code = $helper->{'VARS'}->{'CODE_SELECTED_FROM_LIST'};
   
  my $code_option=$helper->{'VARS'}->{'CODE_OPTION'};   my $code_option=$helper->{'VARS'}->{'CODE_OPTION'};
          my @lines = &Apache::grades::get_scantronformat_file();           my @lines = &Apache::grades::get_scantronformat_file();
  my ($code_type,$code_length,$bubbles_per_row)=('letter',6,10);   my ($code_type,$code_length,$bubbles_per_row)=('letter',6,10);
Line 3219  ENDPART Line 3231  ENDPART
                  }                   }
      }       }
  }   }
            my ($randomorder,$randompick,$map);
            if ($helper->{VARS}{'symb'}) {
                ($map, my $id, my $resource) =
                    &Apache::lonnet::decode_symb($helper->{VARS}{'symb'});
                my $navmap = Apache::lonnavmaps::navmap->new();
                if (defined($navmap)) {
                    if ($map) {
                        my $mapres = $navmap->getResourceByUrl($map);
                        $randomorder = $mapres->randomorder();
                        $randompick = $mapres->randompick();
                    }
                }
            }
  my %moreenv = ('textwidth' => &get_textwidth($helper,$LaTeXwidth));   my %moreenv = ('textwidth' => &get_textwidth($helper,$LaTeXwidth));
  $moreenv{'problem_split'}    = $parmhash{'problem_stream_switch'};   $moreenv{'problem_split'}    = $parmhash{'problem_stream_switch'};
          $moreenv{'instructor_comments'}='hide';           $moreenv{'instructor_comments'}='hide';
Line 3280  ENDPART Line 3305  ENDPART
      } else {       } else {
  $moreenv{'CODE'}=&num_to_letters($code);   $moreenv{'CODE'}=&num_to_letters($code);
      }       }
                my $actual_seq = \@master_seq;
                if ($randomorder) {
                    $env{'form.CODE'} = $moreenv{'CODE'};
                    $actual_seq = master_seq_to_person_seq($map, \@master_seq,
                                                           undef,
                                                           $moreenv{'CODE'});
                    delete($env{'form.CODE'});
                }
      my ($output,$fullname, $printed)=       my ($output,$fullname, $printed)=
  &print_resources($r,$helper,'anonymous',$type,\%moreenv,   &print_resources($r,$helper,'anonymous',$type,\%moreenv,
   \@master_seq,$flag_latex_header_remove,    $actual_seq,$flag_latex_header_remove,
   $LaTeXwidth);    $LaTeXwidth);
      $resources_printed .= ":";       $resources_printed .= ":";
      $print_array[$file_num].=$output;       $print_array[$file_num].=$output;

Removed from v.1.623  
changed lines
  Added in v.1.626


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