summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py19
1 files changed, 15 insertions, 4 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 775bff363..83127f2f0 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2010-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2010-2017 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -29,6 +29,7 @@ from importlib import import_module
import logging
import os
import re
+from secretary import Renderer as SecretaryRenderer
import shutil
import tempfile
import time
@@ -61,14 +62,12 @@ from django.contrib.gis.db import models
from simple_history.models import HistoricalRecords as BaseHistoricalRecords
-from ishtar_common.ooo_replace import ooo_replace
from ishtar_common.model_merging import merge_model_objects
from ishtar_common.utils import get_cache, disable_for_loaddata
from ishtar_common.data_importer import Importer, ImportFormater, \
IntegerFormater, FloatFormater, UnicodeFormater, DateFormater, \
TypeFormater, YearFormater, StrToBoolean, FileFormater
-
logger = logging.getLogger(__name__)
@@ -150,6 +149,15 @@ class ValueGetter(object):
values[prefix + field_name] = value
for extra_field in self.GET_VALUES_EXTRA:
values[prefix + extra_field] = getattr(self, extra_field) or ''
+ for key in values.keys():
+ val = values[key]
+ if val is None:
+ val = ''
+ else:
+ val = unicode(val)
+ if val.endswith('.None'):
+ val = ''
+ values[key] = val
values['KEYS'] = u'\n'.join(values.keys())
value_list = []
for key in values.keys():
@@ -1601,7 +1609,10 @@ class DocumentTemplate(models.Model):
datetime.date.today().strftime('%Y-%m-%d') +\
u"." + self.template.name.split('.')[-1]
values = c_object.get_values()
- ooo_replace(self.template, output_name, values)
+ engine = SecretaryRenderer()
+ result = engine.render(self.template, **values)
+ output = open(output_name, 'wb')
+ output.write(result)
return output_name