diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-08-11 18:24:26 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-08-20 10:17:24 +0200 |
commit | f0912a0a52c76c3d490a050f5b9dd1b431ac09b7 (patch) | |
tree | f27d7895b0c212c01ee87fc3ceb2b09dba7ddc37 /ishtar_common/models.py | |
parent | 1d20feffbce11f3579ac8f3dc325e5aa431d4e4a (diff) | |
download | Ishtar-f0912a0a52c76c3d490a050f5b9dd1b431ac09b7.tar.bz2 Ishtar-f0912a0a52c76c3d490a050f5b9dd1b431ac09b7.zip |
✨ templates - get a text file when VALUES is used
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) |