From 38ac775bd61f3fcd5c1e2f40a67a1a7c32ef4e42 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 8 Feb 2016 14:50:19 +0530 Subject: [PATCH] [cleanup] added frappe.utils.jinja.validate_template --- frappe/print/doctype/print_format/print_format.py | 9 ++------- frappe/utils/jinja.py | 12 ++++++++++++ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/frappe/print/doctype/print_format/print_format.py b/frappe/print/doctype/print_format/print_format.py index 4a513dc694..e205688630 100644 --- a/frappe/print/doctype/print_format/print_format.py +++ b/frappe/print/doctype/print_format/print_format.py @@ -5,7 +5,7 @@ from __future__ import unicode_literals import frappe import frappe.utils import json -from jinja2 import TemplateSyntaxError +from frappe.utils.jinja import validate_template from frappe.model.document import Document @@ -24,12 +24,7 @@ class PrintFormat(Document): self.extract_images() if self.html: - jenv = frappe.get_jenv() - try: - jenv.from_string(self.html) - except TemplateSyntaxError, e: - frappe.msgprint('Line {}: {}'.format(e.lineno, e.message)) - frappe.throw(frappe._("Syntax error in Jinja template")) + validate_template(self.html) def extract_images(self): from frappe.utils.file_manager import extract_images_from_html diff --git a/frappe/utils/jinja.py b/frappe/utils/jinja.py index db78fb5a74..56854ed4e6 100644 --- a/frappe/utils/jinja.py +++ b/frappe/utils/jinja.py @@ -22,6 +22,18 @@ def get_jenv(): def get_template(path): return get_jenv().get_template(path) +def validate_template(html): + """Throws exception if there is a syntax error in the Jinja Template""" + import frappe + from jinja2 import TemplateSyntaxError + + jenv = get_jenv() + try: + jenv.from_string(html) + except TemplateSyntaxError, e: + frappe.msgprint('Line {}: {}'.format(e.lineno, e.message)) + frappe.throw(frappe._("Syntax error in template")) + def render_template(template, context, is_path=None): if is_path or template.startswith("templates/"): return get_jenv().get_template(template).render(context)