[LON-CAPA-cvs] cvs: loncom(GCI_3) /interface lonprintout.pm
raeburn
raeburn@source.lon-capa.org
Thu, 25 Feb 2010 04:55:31 -0000
raeburn Thu Feb 25 04:55:31 2010 EDT
Modified files: (Branch: GCI_3)
/loncom/interface lonprintout.pm
Log:
- Customization for GCI_3.
- One-click generation of PDF of Concept Test questions
(1 column, portrait, 8 .5 x 11 in paper, without answers).
Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.568.4.1 loncom/interface/lonprintout.pm:1.568.4.2
--- loncom/interface/lonprintout.pm:1.568.4.1 Thu Feb 25 04:37:28 2010
+++ loncom/interface/lonprintout.pm Thu Feb 25 04:55:30 2010
@@ -2,7 +2,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.568.4.1 2010/02/25 04:37:28 raeburn Exp $
+# $Id: lonprintout.pm,v 1.568.4.2 2010/02/25 04:55:30 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1890,7 +1890,7 @@
}
sub output_data {
- my ($r,$helper,$rparmhash) = @_;
+ my ($r,$helper,$rparmhash,$is_custom) = @_;
my %parmhash = %$rparmhash;
$ssi_error = 0; # This will be set nonzero by failing ssi's.
$resources_printed = '';
@@ -1931,6 +1931,11 @@
{'href' => '',
'text' => 'Preparing Printout'}];
+ if ($is_custom) {
+ $brcrum = [{'href' => '',
+ 'text' => 'Preparing Printout'}];
+ }
+
my $start_page = &Apache::loncommon::start_page('Preparing Printout',
$js,
{'bread_crumbs' => $brcrum,});
@@ -1992,7 +1997,6 @@
&Apache::lonnet::delenv('construct.style');
}
-
if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'current_document') {
#-- single document - problem, page, html, xml, ...
my ($currentURL,$cleanURL);
@@ -2938,17 +2942,109 @@
&init_perm();
+ my ($helper,$is_custom);
+ if ((&Apache::loncommon::needs_gci_custom()) &&
+ ($env{'request.role.domain'} eq 'gcitest')) {
+ if ($r->header_only) {
+ if ($env{'browser.mathml'}) {
+ &Apache::loncommon::content_type($r,'text/xml');
+ } else {
+ &Apache::loncommon::content_type($r,'text/html');
+ }
+ $r->send_http_header;
+ return OK;
+ }
+ # Send header, nocache
+ if ($env{'browser.mathml'}) {
+ &Apache::loncommon::content_type($r,'text/xml');
+ } else {
+ &Apache::loncommon::content_type($r,'text/html');
+ }
+ &Apache::loncommon::no_cache($r);
+ $r->send_http_header;
+ $r->rflush();
-
- my $helper = printHelper($r);
- if (!ref($helper)) {
- return $helper;
+ my ($navmap_error,$resources,@master_seq);
+ my $navmap = Apache::lonnavmaps::navmap->new();
+ if (!defined($navmap)) {
+ my $brcrum = [{'href' => '',
+ 'text' => 'Preparing Printout'}];
+
+ my $start_page =
+ &Apache::loncommon::start_page('Preparing Printout','',
+ {'bread_crumbs' => $brcrum,});
+ my $endpage = &Apache::loncommon::end_page();
+
+ my $navmap_error = '<span class="LC_error">'.&mt('An error occurred retrieving information about the course.').'<br />'.&mt('It is recommended that you re-select the concept test by clicking on the "Review Questions" tab and then clicking on the "Manage Tests" tab again.').'</span>';
+ $r->print($start_page.$navmap_error.$endpage);
+ return OK;
+ } else {
+ my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
+ my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ my @allres=$navmap->retrieveResources('/uploaded/'.$cdom.'/'.$cnum.'/default_1261144274.sequence');
+ foreach my $resource (@allres) {
+ next if ($resource->is_map());
+ my $symb = $resource->symb();
+ push(@master_seq,$symb);
+ }
+ $resources = join('|||',@master_seq);
+ my ($sequence,$middle_thingy,$urlp) =
+ &Apache::lonnet::decode_symb($master_seq[0]);
+
+ my $assignment = &Apache::lonxml::latex_special_symbols(&Apache::lonnet::gettitle($sequence),'header');
+
+ $helper = {
+ VARS => {
+ ANON_CODE_STORAGE_NAME => '',
+ ANSWER_TYPE => 'yes',
+ CODE_OPTION => '',
+ EMPTY_PAGES => '',
+ FINISHPAGE => '',
+ FORMAT => 'P|1|letter|no',
+ LATEX_TYPE => 'batchmode',
+ NUMBER_TO_PRINT_TOTAL => '',
+ PRINT_ANNOTATIONS => 'no',
+ PRINT_DISCUSSIONS => 'no',
+ PRINT_TYPE => 'map_problems',
+ RESOURCES => $resources,
+ REUSE_OLD_CODES => '',
+ SEQUENCE => '',
+ SINGLE_CODE => '',
+ SPLIT_PDFS => '',
+ STUDENTS => '',
+ TABLE_CONTENTS => 'no',
+ TABLE_INDEX => 'no',
+ assignment => $assignment,
+ construction => '',
+ curseed => '',
+ filename => '',
+ fontsize => 'normalsize',
+ pagesize => '',
+ 'pagesize.height' => '9.8',
+ 'pagesize.heightunit' => 'in',
+ 'pagesize.lmargin' => '-0.57',
+ 'pagesize.lmarginunit' => 'in',
+ 'pagesize.width' => '7.1',
+ 'pagesize.widthunit' => 'in',
+ postdata => $urlp,
+ probstatus => '',
+ showallfoils => '',
+ student_sort => '',
+ style_file => '',
+ symb => $master_seq[0],
+ }
+ };
+ $env{'form.assignment'} = $assignment;
+ $is_custom = 1;
+ }
+ } else {
+ $helper = printHelper($r);
+ if (!ref($helper)) {
+ return $helper;
+ }
}
-
%parmhash=&Apache::lonnet::coursedescription($env{'request.course.id'});
-
-
# If a figure conversion queue file exists for this user.domain
@@ -2957,13 +3053,13 @@
my $conversion_queuefile = "/home/httpd/prtspool/$env{'user.name'}_$env{'user.domain'}_printout.dat";
if(-e $conversion_queuefile) {
- unlink $conversion_queuefile;
+ unlink $conversion_queuefile;
}
-
- &output_data($r,$helper,\%parmhash);
+
+ &output_data($r,$helper,\%parmhash,$is_custom);
return OK;
-}
+}
use Apache::lonhelper;