[LON-CAPA-cvs] cvs: loncom /interface lonprintout.pm
sakharuk
lon-capa-cvs@mail.lon-capa.org
Fri, 30 Aug 2002 20:41:09 -0000
sakharuk Fri Aug 30 16:41:09 2002 EDT
Modified files:
/loncom/interface lonprintout.pm
Log:
Start to work with student classlist.
Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.51 loncom/interface/lonprintout.pm:1.52
--- loncom/interface/lonprintout.pm:1.51 Wed Aug 14 16:38:04 2002
+++ loncom/interface/lonprintout.pm Fri Aug 30 16:41:09 2002
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.51 2002/08/14 20:38:04 sakharuk Exp $
+# $Id: lonprintout.pm,v 1.52 2002/08/30 20:41:09 sakharuk Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -47,6 +47,7 @@
use Apache::edit;
use Apache::File();
use POSIX qw(strftime);
+use Apache::loncoursedata;
sub headerform {
@@ -73,13 +74,18 @@
(you will print what you see on the screen)<br />
ENDMENUOUT1
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 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 the top level sequence"> All problems from the top level sequence<br />
<br />
ENDMENUOUT2
}
+ if ($ENV{'request.role'}=~m/^cc\./ or $ENV{'request.role'}=~m/^in\./ or $ENV{'request.role'}=~m/^ta\./) {
+ $r->print(<<ENDMENUOUT6);
+ <input type="radio" name="choice" value="All class print"> Print assignment for students in class<br />
+ENDMENUOUT6
+ }
my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});
$subdirtoprint =~ s/\/[^\/]+$//;
if (&Apache::lonnet::allowed('bre',$subdirtoprint) eq 'F') {
@@ -114,13 +120,59 @@
</table>
</br>
<input type="submit" value="Submit your choice">
-</form>
-</body>
-</html>
ENDMENUOUT5
}
+sub additional_class_menu {
+ my $r = shift;
+ $r->print(<<ENDMENUOUT1);
+<input type="hidden" name="url" value="$ENV{'form.url'}">
+<input type="hidden" name="choice" value="$ENV{'form.choice'}">
+<input type="hidden" name="layout" value="$ENV{'form.layout'}">
+<input type="hidden" name="numberofcolumns" value="$ENV{'form.numberofcolumns'}">
+<h1>Mark students which assignments you want to print</h1>
+ENDMENUOUT1
+ my $c = $r->connection;
+ my %cache;
+ my $courseID=$ENV{'request.course.id'};
+ my $classlist=&Apache::loncoursedata::DownloadClasslist($courseID,
+ $cache{'ClasslistTimestamp'},
+ $c);
+ foreach (keys(%$classlist)) {
+ if(/^(con_lost|error|no_such_host)/i) {
+ untie(%cache);
+ return "Error getting student data.";
+ }
+ }
+ my $classlistaa = '';
+ foreach my $st (keys(%$classlist)) {
+ $classlistaa .= ' SSS '.$st.' => '.$$classlist{$st}.' FFF '."\r\n";
+ }
+
+ $r->print(<<ENDMENUOUT2);
+ $classlistaa <br />
+<input type="hidden" name="phase" value="three">
+<input type="submit" value="Submit">
+ENDMENUOUT2
+}
+
+
+sub additional_print_menu {
+ my $r = shift;
+ $r->print(<<ENDMENUOUT);
+<input type="hidden" name="url" value="$ENV{'form.url'}">
+<input type="hidden" name="choice" value="$ENV{'form.choice'}">
+<input type="hidden" name="layout" value="$ENV{'form.layout'}">
+<input type="hidden" name="numberofcolumns" value="$ENV{'form.numberofcolumns'}">
+Enter width of the page: <input type="text" name="width" width="10" value="9cm"> <br />
+<input type="hidden" name="phase" value="four">
+<input type="submit" value="Submit">
+</form>
+</body>
+</html>
+ENDMENUOUT
+}
sub output_data {
@@ -242,7 +294,7 @@
if ($file_seq[-1]=~m/REMOVE IT PLEASE/) {
pop @file_seq;
}
-#-- produce an output string
+ #-- produce an output string
for (my $i=0;$i<=$#file_seq;$i++) {
my $urlp = $file_seq[$i];
$urlp=~s/\/home\/httpd\/html//;
@@ -256,6 +308,10 @@
}
}
$result = &additional_cleanup($result);
+ } elsif ($choice eq 'All class print') {
+
+
+
} elsif ($choice eq 'Subdirectory print') {
my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});
$subdirtoprint =~ s/\/[^\/]+$//;
@@ -317,6 +373,10 @@
$result =~ s/(\\end{longtable}\s*)\\newline/$1/g;
$result =~ s/\$number_of_columns/$number_of_columns/g;
}
+ #changes page's parameters for the one column output
+ if ($ENV{'form.numberofcolumns'} == 1) {
+ $result =~ s/\\textwidth= 9cm/\\textwidth= $ENV{'form.width'}/;
+ }
#-- LaTeX corrections
my $first_comment = index($result,'<!--',0);
while ($first_comment != -1) {
@@ -325,7 +385,6 @@
$first_comment = index($result,'<!--',$first_comment);
}
$result =~ s/^\s+$//gm; #remove empty lines
- $result =~ s/\s%/\\%/g; #corrects %
$result =~ s/(\s)+/$1/g; #removes more than one empty space
$result =~ s/\\\\\s*\\vskip/\\vskip/gm;
$result =~ s/\\\\\s*\\noindent\s*(\\\\)+/\\\\\\noindent /g;
@@ -779,8 +838,24 @@
unless ($ENV{'form.phase'}) {
&menu_for_output($r);
}
+#-- additional menu for class printing
+ if ($ENV{'form.phase'} eq 'two') {
+ if($ENV{'form.choice'} eq 'All class print') {
+ &additional_class_menu($r);
+ } else {
+ $ENV{'form.phase'} = 'three';
+ }
+ }
+#-- additional menu for page layout (one column case)
+ if ($ENV{'form.phase'} eq 'three') {
+ if($ENV{'form.numberofcolumns'} == 1) {
+ &additional_print_menu($r);
+ } else {
+ $ENV{'form.phase'} = 'four';
+ }
+ }
#-- core part
- if ($ENV{'form.phase'} eq 'two') {
+ if ($ENV{'form.phase'} eq 'four') {
&output_data($r);
}
return OK;