summaryrefslogtreecommitdiff
path: root/ishtar_common/models_imports.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models_imports.py')
-rw-r--r--ishtar_common/models_imports.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py
index ff920fbf2..3fbd7653d 100644
--- a/ishtar_common/models_imports.py
+++ b/ishtar_common/models_imports.py
@@ -38,6 +38,7 @@ from django.conf import settings
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
from django.contrib.gis.db import models
+from django.contrib.gis.db.models import Manager
from django.contrib.gis.gdal.error import GDALException
from django.contrib.gis.geos import GEOSGeometry
from django.contrib.gis.geos.error import GEOSException
@@ -215,6 +216,10 @@ class ImporterType(models.Model):
return IMPORT_TYPES_DICT[str(self.type)]
return ""
+ @property
+ def importer_groups_label(self) -> str:
+ return " ; ".join([imp.group.name for imp in self.groups.all()])
+
def get_libreoffice_template(self):
if not UnoCalc:
return
@@ -412,16 +417,25 @@ class ImporterGroup(models.Model):
return " ; ".join([imp.importer_type.name for imp in self.importer_types.all()])
+class ImporterGroupImporterManager(Manager):
+ def get_by_natural_key(self, group, importer):
+ return self.get(group__slug=group, importer_type__slug=importer)
+
+
class ImporterGroupImporter(models.Model):
group = models.ForeignKey(ImporterGroup, on_delete=models.CASCADE, related_name="importer_types")
importer_type = models.ForeignKey(ImporterType, on_delete=models.CASCADE, related_name="groups")
order = models.PositiveIntegerField(_("Order"), default=10, validators=[MinValueValidator(1)])
+ objects = ImporterGroupImporterManager()
class Meta:
ordering = ("group", "order")
unique_together = ("group", "order")
verbose_name = _("Importer - Group <-> Importer")
+ def natural_key(self):
+ return self.group.slug, self.importer_type.slug
+
def get_associated_model(parent_model, keys):
model = None