diff options
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r-- | ishtar_common/models.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py index cda01a048..d4cac83df 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -2396,6 +2396,11 @@ class DocumentTemplate(models.Model): ] def publish(self, c_object): + filtr = self.get_filter(self.template, self.BASE_RE) + get_values = "VALUES" in filtr + if get_values: + filtr = [] + extension = "txt" if get_values else self.template.name.split(".")[-1] tempdir = tempfile.mkdtemp("-ishtardocs") output_name = ( tempdir @@ -2404,14 +2409,10 @@ class DocumentTemplate(models.Model): + "-" + datetime.date.today().strftime("%Y-%m-%d") + "." - + self.template.name.split(".")[-1] + + extension ) - filtr = self.get_filter(self.template, self.BASE_RE) - # values = c_object.get_values(filtr=[]) - if "VALUES" in filtr: - filtr = [] values = c_object.get_values(filtr=filtr) - if not filtr or "VALUES" in filtr: + if not filtr: for k in values: if k in JSON_SERIALIZATION: values[k] = JSON_SERIALIZATION[k](values[k]) @@ -2431,6 +2432,10 @@ class DocumentTemplate(models.Model): for k in filtr: if k not in values: values[k] = "" + if get_values: # only return values + with open(output_name, "w") as output: + output.write(values["VALUES"]) + return output_name engine = IshtarSecretaryRenderer() try: result = engine.render(self.template, **values) |