summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-05-17 18:41:23 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-05-17 18:41:23 +0200
commitf959740157de109de0363a501d06ca53dd5deba6 (patch)
tree1cf16c92643680c90104923b8a9f9cc603eb635d /ishtar_common/models.py
parent9fcd741b87f511d1dd46f2af909191d584e4b46a (diff)
downloadIshtar-f959740157de109de0363a501d06ca53dd5deba6.tar.bz2
Ishtar-f959740157de109de0363a501d06ca53dd5deba6.zip
Good bye oook_replace (snif). Hello secretary library!
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