summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
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
commitf0912a0a52c76c3d490a050f5b9dd1b431ac09b7 (patch)
treef27d7895b0c212c01ee87fc3ceb2b09dba7ddc37 /ishtar_common/models.py
parent1d20feffbce11f3579ac8f3dc325e5aa431d4e4a (diff)
downloadIshtar-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.py17
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)