From a9c7a217383ead98acc4fd55d635c58f1aad9c26 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 7 Sep 2023 18:42:55 +0200 Subject: ✨ Admin - Importers groups: JSON export, adapt JSON export of importer types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ishtar_common/models_imports.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'ishtar_common/models_imports.py') 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 -- cgit v1.2.3