[minor] validate address template before saving

This commit is contained in:
Rushabh Mehta 2016-02-08 14:51:14 +05:30
parent 1106524121
commit a064e3a200
2 changed files with 17 additions and 7 deletions

View File

@ -8,6 +8,7 @@ from frappe import throw, _
from frappe.utils import cstr
from frappe.model.document import Document
from jinja2 import TemplateSyntaxError
class Address(Document):
def __setup__(self):
@ -85,16 +86,22 @@ def get_address_display(address_dict):
if not isinstance(address_dict, dict):
address_dict = frappe.db.get_value("Address", address_dict, "*", as_dict=True) or {}
template = frappe.db.get_value("Address Template", \
{"country": address_dict.get("country")}, "template")
if not template:
template = frappe.db.get_value("Address Template", \
{"is_default": 1}, "template")
data = frappe.db.get_value("Address Template", \
{"country": address_dict.get("country")}, ["name", "template"])
if not data:
data = frappe.db.get_value("Address Template", \
{"is_default": 1}, ["name", "template"])
if not template:
if not data:
frappe.throw(_("No default Address Template found. Please create a new one from Setup > Printing and Branding > Address Template."))
return frappe.render_template(template, address_dict)
name, template = data
try:
return frappe.render_template(template, address_dict)
except TemplateSyntaxError:
frappe.throw(_("There is an error in your Address Template {0}").format(name))
def get_territory_from_address(address):
"""Tries to match city, state and country of address to existing territory"""

View File

@ -4,6 +4,7 @@
from __future__ import unicode_literals
import frappe
from frappe.model.document import Document
from frappe.utils.jinja import validate_template
from frappe import _
class AddressTemplate(Document):
@ -14,6 +15,8 @@ class AddressTemplate(Document):
self.is_default = 1
frappe.msgprint(_("Setting this Address Template as default as there is no other default"))
validate_template(self.template)
def on_update(self):
if self.is_default and self.defaults:
for d in self.defaults: