Diff for /loncom/interface/lonprintout.pm between versions 1.59 and 1.61

version 1.59, 2002/09/10 20:14:35 version 1.61, 2002/09/11 20:18:08
Line 49  use Apache::grades; Line 49  use Apache::grades;
 use Apache::edit;  use Apache::edit;
 use Apache::File();  use Apache::File();
 use POSIX qw(strftime);  use POSIX qw(strftime);
   use GDBM_File;
   
   
   my %hash;
   
   
 sub headerform {  sub headerform {
Line 67  ENDHEADER Line 71  ENDHEADER
   
 sub menu_for_output {  sub menu_for_output {
     my $r = shift;      my $r = shift;
     my $symbolic = &Apache::lonnet::symbread($ENV{'form.postdata'});      my ($title_for_single_resource,$title_for_sequence) = &details_for_menu;
 #    $symbolic =~ m/([^_]+)_/;      if ($title_for_single_resource ne '') {$title_for_single_resource = '"'.$title_for_single_resource.'"';}
 #    my $primary_sequence = '/res/'.$1;      if ($title_for_sequence ne '') {$title_for_sequence = '"'.$title_for_sequence.'"';}
     $r->print(<<ENDMENUOUT1);      $r->print(<<ENDMENUOUT1);
 <h1>What do you want to print? Make a choice.</h1><br />  <h1>What do you want to print? Make a choice.</h1><br />
 <input type="hidden" name="phase" value="two">  <input type="hidden" name="phase" value="two">
 <input type="hidden" name="url" value="$ENV{'form.postdata'}">  <input type="hidden" name="url" value="$ENV{'form.postdata'}">
 <input type="radio" name="choice" value="Standard LaTeX output for current document" checked>  Current document  <input type="radio" name="choice" value="Standard LaTeX output for current document" checked>  Current document <b>$title_for_single_resource</b>
 (you will print what you see on the screen)<br />  (you will print what you see on the screen)<br />
 ENDMENUOUT1  ENDMENUOUT1
     if ((not $ENV{'request.role'}=~m/^au\./) and (not $ENV{'request.role'}=~m/^ca\./)) {      if ((not $ENV{'request.role'}=~m/^au\./) and (not $ENV{'request.role'}=~m/^ca\./)) {
  $r->print(<<ENDMENUOUT2);   $r->print(<<ENDMENUOUT2);
 <input type="radio" name="choice" value="Standard LaTeX output for the primary sequence">  All problems from the primary sequence<br />  <input type="radio" name="choice" value="Standard LaTeX output for the primary sequence">  All problems from the primary sequence <b>$title_for_sequence</b><br />
 <input type="radio" name="choice" value="Standard LaTeX output for whole primary sequence">  The whole primary sequence (problems plus all html and xml files)<br />  <input type="radio" name="choice" value="Standard LaTeX output for whole primary sequence">  The whole primary sequence <b>$title_for_sequence</b> (problems plus all html and xml files)<br />
 ENDMENUOUT2  ENDMENUOUT2
     }      }
     if ($ENV{'request.role'}=~m/^cc\./ or $ENV{'request.role'}=~m/^in\./ or $ENV{'request.role'}=~m/^ta\./) {       if ($ENV{'request.role'}=~m/^cc\./ or $ENV{'request.role'}=~m/^in\./ or $ENV{'request.role'}=~m/^ta\./) { 
  $r->print(<<ENDMENUOUT6);   $r->print(<<ENDMENUOUT6);
 <input type="radio" name="choice" value="Standard LaTeX output for the top level sequence">  All problems from the top level sequence<br />  <input type="radio" name="choice" value="Standard LaTeX output for the top level sequence">  All problems from the top level sequence<br />
 <br />  <br />
 <input type="radio" name="choice" value="All class print">  Print assignment (all problems from the primary sequence) for group of students<br /><br />  <input type="radio" name="choice" value="All class print">  Print assignment <b>$title_for_sequence</b> (all problems from the primary sequence) for group of students<br /><br />
 ENDMENUOUT6  ENDMENUOUT6
     }      }
       my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});        my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});
Line 186  sub problem_choice_menu { Line 190  sub problem_choice_menu {
         }          }
     }      }
 </script>  </script>
 <input type=button onClick="checkall()" value="Check for All">&nbsp;  <input type=button onClick="checkall()" value="Check All">&nbsp;
 <input type=button onClick="uncheckall()" value="Check for None">  <input type=button onClick="uncheckall()" value="Uncheck">
 <p>  <p>
 ENDMENUOUT1  ENDMENUOUT1
     my $i;      my $i;
Line 249  ENDMENUOUT1 Line 253  ENDMENUOUT1
         }          }
     }      }
 </script>  </script>
 <input type=button onClick="checkall()" value="Check for All">&nbsp;  <input type=button onClick="checkall()" value="Check All">&nbsp;
 <input type=button onClick="checksec()" value="Check for Section/Group">  <input type=button onClick="checksec()" value="Check Section/Group">
 <input type=text size=5 name=chksec>&nbsp;  <input type=text size=5 name=chksec>&nbsp;
 <input type=button onClick="uncheckall()" value="Check for None">  <input type=button onClick="uncheckall()" value="Uncheck">
 <p>  <p>
 ENDDISHEADER  ENDDISHEADER
     my $i = 0;      my $i = 0;
Line 362  ENDPART Line 366  ENDPART
         #-- open and analyses the primary sequence          #-- open and analyses the primary sequence
  my $sequence_file=&Apache::lonnet::filelocation("",$primary_sequence);   my $sequence_file=&Apache::lonnet::filelocation("",$primary_sequence);
  my $sequencefilecontents=&Apache::lonnet::getfile($sequence_file);   my $sequencefilecontents=&Apache::lonnet::getfile($sequence_file);
  my @master_seq = &content_map($sequencefilecontents);   my @master_seq = &coming_from_hash($primary_sequence); 
         #-- produce an output string          #-- produce an output string
  for (my $i=0;$i<=$#master_seq;$i++) {   for (my $i=0;$i<=$#master_seq;$i++) {
     $_ = $master_seq[$i];              my $urlp = $master_seq[$i];
     m/\"(.*)\"/;  
             $_ = $1;  
             my $urlp = $1;  
     if ($choice eq 'Standard LaTeX output for the primary sequence') {      if ($choice eq 'Standard LaTeX output for the primary sequence') {
  $selectionmade = 2;   $selectionmade = 2;
  if ($urlp =~ m/\.(problem|exam|quiz|assess|survey|form|library)/) {    if ($urlp =~ m/\.(problem|exam|quiz|assess|survey|form|library)/) {
     my %moreenv;      my %moreenv;
     $moreenv{'form.grade_target'}='tex';      $moreenv{'form.grade_target'}='tex';
     &Apache::lonnet::appenv(%moreenv);      &Apache::lonnet::appenv(%moreenv);
Line 470  ENDPART Line 471  ENDPART
  my $sequence_file=&Apache::lonnet::filelocation("",$primary_sequence);   my $sequence_file=&Apache::lonnet::filelocation("",$primary_sequence);
  my $sequencefilecontents=&Apache::lonnet::getfile($sequence_file);   my $sequencefilecontents=&Apache::lonnet::getfile($sequence_file);
  my @master_seq = &content_map($sequencefilecontents);   my @master_seq = &content_map($sequencefilecontents);
         #loop over students         #loop over students
  foreach my $person (@students) {   foreach my $person (@students) {
     my $current_output = '';       my $current_output = ''; 
     my ($usersection,$username,$userdomain) = split /:/,$person;      my ($usersection,$username,$userdomain) = split /:/,$person;
Line 591  $r->print(<<FINALEND); Line 592  $r->print(<<FINALEND);
 FINALEND  FINALEND
 }  }
   
   
   sub coming_from_hash {
   
       my $mainsequence = shift;
       my @resourcelist = ();
       my $mapstart = $hash{'map_start_'.$mainsequence};
       my $mapfinish = $hash{'map_finish_'.$mainsequence};
       my $current_resource = $mapstart;
       while ($current_resource ne $mapfinish) {
    if (not $hash{'src_'.$current_resource}=~/\.sequence$/) {
       push @resourcelist,$hash{'src_'.$current_resource};
    } else {
       push @resourcelist,&coming_from_hash($hash{'src_'.$current_resource});
    }
    $current_resource = $hash{'goesto_'.$hash{'to_'.$current_resource}};
       }
       return @resourcelist;
   }
   
   
 sub character_chart {  sub character_chart {
     my $result = shift;      my $result = shift;
     $result =~ s/&#0?0?7;//g;      $result =~ s/&#0?0?7;//g;
Line 1003  sub content_map { Line 1024  sub content_map {
 }  }
   
   
   sub details_for_menu {
   
       my $name_of_resourse = $hash{'title_'.$hash{'ids_'.$ENV{'form.postdata'}}};
       my $symbolic = &Apache::lonnet::symbread($ENV{'form.postdata'});
       $symbolic =~ m/([^_]+)_/;
       my $primary_sequence = '/res/'.$1;
       my $name_of_sequence = $hash{'title_'.$hash{'ids_'.$primary_sequence}};
   
       return $name_of_resourse,$name_of_sequence;
   
   }
   
   
 sub handler {  sub handler {
   
Line 1011  sub handler { Line 1044  sub handler {
     $r->send_http_header;      $r->send_http_header;
     $r->print(&Apache::loncommon::bodytag("Printing"));      $r->print(&Apache::loncommon::bodytag("Printing"));
   
       if ($ENV{'request.course.id'}) {
    my $fn=$ENV{'request.course.fn'};
    tie(%hash,'GDBM_File',"$fn.db",&GDBM_READER(),0640);
       }
   
 #-- start form  #-- start form
     &headerform($r);      &headerform($r);
 #-- menu for output  #-- menu for output
Line 1038  sub handler { Line 1076  sub handler {
 #-- core part   #-- core part 
     if ($ENV{'form.phase'} eq 'four') {      if ($ENV{'form.phase'} eq 'four') {
  &output_data($r);   &output_data($r);
     }      }
       untie %hash;
     return OK;      return OK;
      
 }   } 
   
   
 1;  1;
 __END__  __END__
   

Removed from v.1.59  
changed lines
  Added in v.1.61


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