diff options
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 |
commit | 784881f2d26e19c05b8e165e3e4fa9f5300ad314 (patch) | |
tree | 08a3936e6e0f44667add9f62b7d4fd97a2c64215 /ishtar_common | |
parent | ab1e7a3e42db8867e1d800e8d83f71b7cfd0a598 (diff) | |
download | Ishtar-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.py | 22 |
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 |