diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-09-07 18:42:55 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-04-16 16:38:32 +0200 |
commit | a9c7a217383ead98acc4fd55d635c58f1aad9c26 (patch) | |
tree | 764f7d40f7945e4d1c98c1c322cb895a12a83288 /ishtar_common/models_imports.py | |
parent | 8cbda24660d1dbf50980e1f77c5c12a27e0279f5 (diff) | |
download | Ishtar-a9c7a217383ead98acc4fd55d635c58f1aad9c26.tar.bz2 Ishtar-a9c7a217383ead98acc4fd55d635c58f1aad9c26.zip |
✨ Admin - Importers groups: JSON export, adapt JSON export of importer types
Diffstat (limited to 'ishtar_common/models_imports.py')
-rw-r--r-- | ishtar_common/models_imports.py | 14 |
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 |