summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-05-01 13:55:12 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-06-17 13:21:28 +0200
commit784881f2d26e19c05b8e165e3e4fa9f5300ad314 (patch)
tree08a3936e6e0f44667add9f62b7d4fd97a2c64215 /ishtar_common
parentab1e7a3e42db8867e1d800e8d83f71b7cfd0a598 (diff)
downloadIshtar-784881f2d26e19c05b8e165e3e4fa9f5300ad314.tar.bz2
Ishtar-784881f2d26e19c05b8e165e3e4fa9f5300ad314.zip
Labels generation: merge multiple libreoffice document into one
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/models.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 6fbb0f313..4165128f6 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -3169,6 +3169,7 @@ class DocumentTemplate(models.Model):
datetime.datetime.now().strftime('%Y-%m-%d-%H%M%S')
suffix = "." + self.template.name.split('.')[-1]
len_objects = len(objects)
+ names = []
for idx in range(int(len(objects) / self.label_per_page) + 1):
if idx * self.label_per_page >= len_objects:
break
@@ -3184,11 +3185,28 @@ class DocumentTemplate(models.Model):
result = engine.render(self.template, **values)
except TemplateSyntaxError as e:
raise TemplateSyntaxError(str(e), e.lineno)
- output_name = main_output_name + "-" + str(idx + 1) + suffix
+ output_name = main_output_name + "-" + str(idx) + suffix
+ names.append(output_name)
output = open(output_name, 'wb')
output.write(result)
- # output_name = main_output_name + suffix
+ output_name = main_output_name + suffix
# TODO: merge docs - return the last for now
+ from ooopy.OOoPy import OOoPy
+ from ooopy.Transformer import Transformer
+ import ooopy.Transforms as Transforms
+ o = OOoPy(infile=names[0], outfile=output_name)
+ if len(names) > 1:
+ t = Transformer(
+ o.mimetype,
+ Transforms.get_meta(o.mimetype),
+ Transforms.Concatenate(*(names[1:])),
+ Transforms.renumber_all(o.mimetype),
+ Transforms.set_meta(o.mimetype),
+ Transforms.Fix_OOo_Tag(),
+ Transforms.Manifest_Append()
+ )
+ t.transform (o)
+ o.close()
return output_name