From 43fbc9d1b96612217017e9d92e9fb7b144b13d52 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Tue, 19 Mar 2013 12:05:10 +0530 Subject: [PATCH] added server side print format --- website/helpers/print.py | 35 ++++++++++++++++++++++++++++++ website/templates/html/outer.html | 2 -- website/templates/pages/print.html | 12 ++++++++++ website/utils.py | 5 +++-- 4 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 website/helpers/print.py create mode 100644 website/templates/pages/print.html diff --git a/website/helpers/print.py b/website/helpers/print.py new file mode 100644 index 0000000000..41eb82c1af --- /dev/null +++ b/website/helpers/print.py @@ -0,0 +1,35 @@ +# Copyright (c) 2012 Web Notes Technologies Pvt Ltd. +# License: GNU General Public License (v3). For more information see license.txt + +from __future__ import unicode_literals +import webnotes +from webnotes import _ + +def get_args(): + if not webnotes.form_dict.doctype or not webnotes.form_dict.name \ + or not webnotes.form_dict.format: + return { + "body": """

Error

+

Parameters doctype, name and format required

+
%s
""" % repr(webnotes.form_dict) + } + + obj = webnotes.get_obj(webnotes.form_dict.doctype, webnotes.form_dict.name) + return { + "body": get_html(obj.doc, obj.doclist) + } + +def get_html(doc, doclist): + from jinja2 import Environment + from core.doctype.print_style.print_style import get_print_style + from core.doctype.print_format.print_format import get_print_format + + template = Environment().from_string(get_print_format(webnotes.form_dict.format)) + + args = { + "doc": doc, + "doclist": doclist, + "print_style": get_print_style() + } + html = template.render(args) + return html diff --git a/website/templates/html/outer.html b/website/templates/html/outer.html index 207c124e44..c46aaa72a0 100644 --- a/website/templates/html/outer.html +++ b/website/templates/html/outer.html @@ -1,8 +1,6 @@ {% extends "html/base.html" %} {% block body %} -
-
Login diff --git a/website/templates/pages/print.html b/website/templates/pages/print.html new file mode 100644 index 0000000000..21fb9a22b1 --- /dev/null +++ b/website/templates/pages/print.html @@ -0,0 +1,12 @@ + + + + + + {{ doc and (doc.name + " - " + doc.doctype) or "Error" }} + + + + {{ body }} + + \ No newline at end of file diff --git a/website/utils.py b/website/utils.py index 443bde0b66..4d9cee979e 100644 --- a/website/utils.py +++ b/website/utils.py @@ -43,10 +43,11 @@ page_settings_map = { "about": "website.doctype.about_us_settings.about_us_settings.get_args", "contact": "Contact Us Settings", "blog": "website.helpers.blog.get_blog_template_args", - "writers": "website.helpers.blog.get_writers_args" + "writers": "website.helpers.blog.get_writers_args", + "print": "website.helpers.print.get_args" } -no_cache = "message" +no_cache = ["message", "print"] def render(page_name): """render html page"""