mirror of
https://github.com/NaN-tic/trytond-product_dynamic_configurator.git
synced 2023-12-14 03:22:58 +01:00
parent
9f012db6ac
commit
412f8ba66e
|
@ -9,6 +9,8 @@ from trytond.modules.company.model import (
|
|||
employee_field, set_employee, reset_employee)
|
||||
from trytond.i18n import gettext
|
||||
from trytond.exceptions import UserError
|
||||
from jinja2 import Template as Jinja2Template
|
||||
from jinja2.exceptions import UndefinedError as Jinja2UndefinedError
|
||||
from collections import OrderedDict
|
||||
from copy import copy
|
||||
import math
|
||||
|
@ -16,13 +18,6 @@ import logging
|
|||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
try:
|
||||
from jinja2 import Template as Jinja2Template
|
||||
jinja2_loaded = True
|
||||
except ImportError:
|
||||
jinja2_loaded = False
|
||||
|
||||
price_digits = (16, config.getint('product', 'price_decimal', default=4))
|
||||
_ZERO = Decimal(0)
|
||||
_ROUND = Decimal('.0001')
|
||||
|
@ -255,7 +250,14 @@ class Property(tree(separator=' / '), sequence_ordered(), ModelSQL, ModelView):
|
|||
|
||||
def render_expression_record(self, expression, record):
|
||||
template = Jinja2Template(expression, trim_blocks=True)
|
||||
res = template.render(record)
|
||||
try:
|
||||
res = template.render(record)
|
||||
except Jinja2UndefinedError as e:
|
||||
raise UserError(gettext(
|
||||
'product_dynamic_configurator.msg_expression_error',
|
||||
property=self.rec_name,
|
||||
expression=expression[:25]+('...' if len(expression) > 25 else ''),
|
||||
invalid=str(e)))
|
||||
if res:
|
||||
res = res.replace('\t', '').replace('\n', '').strip()
|
||||
return res
|
||||
|
|
Loading…
Reference in a new issue