diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-11-02 19:15:50 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-02-28 12:15:21 +0100 |
commit | e8f988f6dff12ebf846035438c8ff7fef848d785 (patch) | |
tree | caa79b9e4cb2f9fff669e8389c8369ee3046e2c5 /ishtar_common | |
parent | 9d5f0791187ff6b18d3ffa4db4d593fe96834e8d (diff) | |
download | Ishtar-e8f988f6dff12ebf846035438c8ff7fef848d785.tar.bz2 Ishtar-e8f988f6dff12ebf846035438c8ff7fef848d785.zip |
Import template: add description list - Simplify document import
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/data_importer.py | 2 | ||||
-rw-r--r-- | ishtar_common/models.py | 13 | ||||
-rw-r--r-- | ishtar_common/models_imports.py | 11 |
3 files changed, 25 insertions, 1 deletions
diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index 1b3f8909d..a609353e3 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -1744,6 +1744,8 @@ class Importer(object): # default values path = tuple(path) defaults = {} + if hasattr(cls, "get_import_defaults"): + defaults = cls.get_import_defaults() if path in self._defaults: for k in self._defaults[path]: if (k not in data or not data[k]) and self._defaults[path][k]: diff --git a/ishtar_common/models.py b/ishtar_common/models.py index f23cab926..483e15786 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1664,6 +1664,15 @@ class Organization(Address, Merge, OwnPerms, ValueGetter, MainItem): if getattr(self, attr)] return slugify("-".join(values)) + @classmethod + @pre_importer_action + def import_get_publisher_type(cls, context, value): + if context["name"]: + q = OrganizationType.objects.filter(txt_idx='publisher') + if not q.count(): + return + context["organization_type"] = q.all()[0] + post_save.connect(cached_label_changed, sender=Organization) @@ -3256,6 +3265,10 @@ class Document(BaseHistorizedItem, QRCodeItem, OwnPerms, ImageModel, cid = 0 return cid + 1 + @classmethod + def get_import_defaults(cls): + return {"index": cls.get_next_index()} + def set_index(self): if self.index: return diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index e23e7cd56..0638bc8f4 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -37,6 +37,11 @@ from django.template.defaultfilters import slugify from django.utils.functional import cached_property from django.utils.translation import ugettext_lazy as _, pgettext_lazy +try: + assert settings.USE_LIBREOFFICE + from ishtar_common.libreoffice import UnoCalc +except AssertionError: + UnoCalc = None from ishtar_common.model_managers import SlugModelManager from ishtar_common.utils import create_slug, \ @@ -152,6 +157,10 @@ class ImporterType(models.Model): cell.CharWeight = 150 cell.setString(column.label) + cell = main_sheet.getCellByPosition(col_number - 1, 1) + cell.CharWeight = 150 + cell.setString(column.description) + # only managing the first target... ft = None for target in column.targets.all(): @@ -174,7 +183,7 @@ class ImporterType(models.Model): end_row = uno.create_list(lst_sheet, lst_col_number, 0, str(model._meta.verbose_name), lst) uno.set_cell_validation_list( - main_sheet, col_number, 1, ROW_NUMBER + 1, + main_sheet, col_number, 2, ROW_NUMBER + 2, lst_sheet, lst_col_number, [1, end_row]) lst_col_number += 1 tmpdir = tempfile.mkdtemp(prefix="ishtar-templates-") |