summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
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
commite8f988f6dff12ebf846035438c8ff7fef848d785 (patch)
treecaa79b9e4cb2f9fff669e8389c8369ee3046e2c5 /ishtar_common
parent9d5f0791187ff6b18d3ffa4db4d593fe96834e8d (diff)
downloadIshtar-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.py2
-rw-r--r--ishtar_common/models.py13
-rw-r--r--ishtar_common/models_imports.py11
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-")