summaryrefslogtreecommitdiff
path: root/ishtar_common/models_imports.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2020-05-07 12:19:11 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2020-05-07 12:20:03 +0200
commit6542541b3a8b7eb032a6d8b145c356cf95f13943 (patch)
tree47ceaecb0d5be660c95e8f97d7186cd2fbe69294 /ishtar_common/models_imports.py
parent025959b715fc1e088dde189d11ac37e431b35911 (diff)
downloadIshtar-6542541b3a8b7eb032a6d8b145c356cf95f13943.tar.bz2
Ishtar-6542541b3a8b7eb032a6d8b145c356cf95f13943.zip
Import conf: manage match for data__
Diffstat (limited to 'ishtar_common/models_imports.py')
-rw-r--r--ishtar_common/models_imports.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py
index b4749fc2c..d64b8441c 100644
--- a/ishtar_common/models_imports.py
+++ b/ishtar_common/models_imports.py
@@ -271,7 +271,7 @@ def get_associated_model(parent_model, keys):
OBJECT_CLS = parent_model
fields = get_model_fields(OBJECT_CLS)
for idx, item in enumerate(keys):
- if item in (u"-", u""):
+ if item in ("-", ""):
model = None
elif not idx:
if item not in fields:
@@ -287,6 +287,14 @@ def get_associated_model(parent_model, keys):
if type(field) == ModelBase:
model = field
else:
+ if not model:
+ raise ImporterError(
+ str(_("Importer configuration error: "
+ "\"{}\" is not available for \"{}\"."
+ " Check your default and column "
+ "configuration")).format(
+ "__".join(keys[1:]),
+ OBJECT_CLS.__name__))
return get_associated_model(model, keys[1:])
return model
@@ -576,6 +584,8 @@ class ImportTarget(models.Model):
@property
def associated_model(self):
+ if self.target.startswith("data__"):
+ return
try:
return get_associated_model(
self.column.importer_type.associated_models.klass,
@@ -631,9 +641,9 @@ class TargetKey(models.Model):
(associated_import, associated_user and associated_group are empty).
"""
target = models.ForeignKey(ImportTarget, related_name='keys')
- key = models.TextField(_(u"Key"))
- value = models.TextField(_(u"Value"), blank=True, null=True)
- is_set = models.BooleanField(_(u"Is set"), default=False)
+ key = models.TextField(_("Key"))
+ value = models.TextField(_("Value"), blank=True, null=True)
+ is_set = models.BooleanField(_("Is set"), default=False)
associated_import = models.ForeignKey('Import', blank=True, null=True)
associated_user = models.ForeignKey('IshtarUser', blank=True, null=True)
associated_group = models.ForeignKey(TargetKeyGroup, blank=True, null=True)
@@ -671,10 +681,10 @@ class TargetKey(models.Model):
obj = super(TargetKey, self).save(*args, **kwargs)
if not self.value:
return obj
+ v = None
associated_model = self.target.associated_model
if associated_model and hasattr(self.target.associated_model,
"add_key"):
- v = None
# pk is given
try:
v = self.target.associated_model.objects.get(