summaryrefslogtreecommitdiff
path: root/ishtar_common
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:05:01 +0200
commit1339e13329ae36e1e8cc02c95dea0b6a1e5370b8 (patch)
tree40f7ab52e43fbe902359ae6ad6479678fc09f49e /ishtar_common
parenta9505657720e0617dc744a314379d2512fb8b3e0 (diff)
downloadIshtar-1339e13329ae36e1e8cc02c95dea0b6a1e5370b8.tar.bz2
Ishtar-1339e13329ae36e1e8cc02c95dea0b6a1e5370b8.zip
✨ templates - get a text file when VALUES is used
Diffstat (limited to 'ishtar_common')
-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 00c3b49ce..715a3063f 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -2330,6 +2330,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
@@ -2338,14 +2343,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])
@@ -2365,6 +2366,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)