diff options
-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-") |