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