[Jifty-commit] r4500 - in apps/spensive: . lib/Spensive/Model lib/Spensive/View

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Tue Nov 20 12:13:46 EST 2007


Author: jesse
Date: Tue Nov 20 12:13:37 2007
New Revision: 4500

Modified:
   apps/spensive/   (props changed)
   apps/spensive/lib/Spensive/Dispatcher.pm
   apps/spensive/lib/Spensive/Model/Expense.pm
   apps/spensive/lib/Spensive/View/Reports.pm

Log:
 r67668 at pinglin (orig r7438):  jesse | 2007-09-30 14:28:43 -0400
 snapshot


Modified: apps/spensive/lib/Spensive/Dispatcher.pm
==============================================================================
--- apps/spensive/lib/Spensive/Dispatcher.pm	(original)
+++ apps/spensive/lib/Spensive/Dispatcher.pm	Tue Nov 20 12:13:37 2007
@@ -52,7 +52,7 @@
     set( report => $report );
 };
 
-on qr'/reports/(\d+)/(build|show)' => run { show 'reports/'.$2; };
+on qr'/reports/(\d+)/(build|show|print)' => run { show 'reports/'.$2; };
 
 # Change a password
 on '/prefs' => run {

Modified: apps/spensive/lib/Spensive/Model/Expense.pm
==============================================================================
--- apps/spensive/lib/Spensive/Model/Expense.pm	(original)
+++ apps/spensive/lib/Spensive/Model/Expense.pm	Tue Nov 20 12:13:37 2007
@@ -9,7 +9,7 @@
     
     column title => type is 'text';
     column description => type is 'text', render as 'Textarea';
-    column date_incurred => type is 'datetime', default is defer { Jifty::DateTime->now }, render_as 'Date', filters are qw(Jifty::DBI::Filter::Date);;
+    column date_incurred => type is 'datetime', default is defer { Jifty::DateTime->now->ymd }, render_as 'Date', filters are qw(Jifty::DBI::Filter::Date);;
     column incurred_by =>  references Spensive::Model::User;
     column tags => type is 'text';
     column local_cost => type is 'float';

Modified: apps/spensive/lib/Spensive/View/Reports.pm
==============================================================================
--- apps/spensive/lib/Spensive/View/Reports.pm	(original)
+++ apps/spensive/lib/Spensive/View/Reports.pm	Tue Nov 20 12:13:37 2007
@@ -454,7 +454,48 @@
 };
 
 
+template printable_overview => page {};
+template printable_expense_appendix => page {};
 
+template 'print' => page {
+	my $self = shift;
+	my $report = get('report');
+	Jifty->handler->apache->content_type('application/pdf');
+
+	my @pages; # tempfiles
+
+	push @pages, $self->web_path_to_pdf('/reports/'.$report->id.'/printable_overview');
+	
+	my $expenses = $report->expenses;
+	foreach my $expense (@{$expenses->items_array_ref}) {
+		my $attachments = $expense->attachments;
+
+	}
+
+	my $pdf_filename = assemble_pdfs(@pages);
+	outs_raw(File::Slurp::read_file($pdf_filename));
+	
+
+};
+
+sub assemble_pdfs {
+
+}
+
+
+sub web_path_to_pdf {
+	my $self = shift;
+	my $url = shift;
+	
+	my  (undef, $tmpfile) = File::Temp::tempfile();
+	
+	my @cmd = ('xvfb-run', 'xulrunner', Jifty::Util->absolute_path('tools/mozilla2ps/application.ini'), $url, $tmpfile);
+
+	system(@cmd) || die $!;
+	warn "PDFed to $tmpfile";
+	return $tmpfile;
+
+}
 
 
 template 'pdf' => sub {


More information about the Jifty-commit mailing list