diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-09-07 18:42:55 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-02-05 10:51:51 +0100 |
commit | 0ad415c7795e7ac4b2a70c03d993b027633ca0f6 (patch) | |
tree | 59005d1394d1cc04064772546d3be4f40160cd61 /ishtar_common/models_imports.py | |
parent | ff9cb4b4d71d0df8d0b0f0a96c4a5e45a02ad904 (diff) | |
download | Ishtar-0ad415c7795e7ac4b2a70c03d993b027633ca0f6.tar.bz2 Ishtar-0ad415c7795e7ac4b2a70c03d993b027633ca0f6.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 |