diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-02-23 18:09:15 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-02-23 18:11:08 +0100 |
commit | 2ae0e6f81e570a75ac27d455db9834c93f66d1fe (patch) | |
tree | ade5f9523698ad0ec5bcf988834f73df8d140dc3 /ishtar_common/models_imports.py | |
parent | d86abf7eb1d5a7ea8c8c0ecfde24680d3a5d7094 (diff) | |
download | Ishtar-2ae0e6f81e570a75ac27d455db9834c93f66d1fe.tar.bz2 Ishtar-2ae0e6f81e570a75ac27d455db9834c93f66d1fe.zip |
Admin: overload index to add sub-section headers
Diffstat (limited to 'ishtar_common/models_imports.py')
-rw-r--r-- | ishtar_common/models_imports.py | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index 33463e181..6451206a2 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -33,6 +33,8 @@ import zipfile from django.apps import apps 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.gdal.error import GDALException from django.contrib.gis.geos import GEOSGeometry @@ -112,9 +114,10 @@ class ImporterModel(models.Model): objects = ImportModelManager() class Meta: - verbose_name = _("Model") - verbose_name_plural = _("Models") + verbose_name = _("Data model") + verbose_name_plural = _("Data models") ordering = ("name",) + ADMIN_SECTION = _("General settings") def __str__(self): return self.name @@ -192,6 +195,7 @@ class ImporterType(models.Model): verbose_name = _("Importer - Type") verbose_name_plural = _("Importer - Types") ordering = ("name",) + ADMIN_SECTION = _("Imports") def natural_key(self): return (self.slug,) @@ -439,6 +443,7 @@ class ImporterDefault(models.Model): verbose_name = _("Importer - Default") verbose_name_plural = _("Importer - Defaults") unique_together = ("importer_type", "target") + ADMIN_SECTION = _("Imports") objects = ImporterDefaultManager() @@ -496,6 +501,7 @@ class ImporterDefaultValues(models.Model): verbose_name = _("Importer - Default value") verbose_name_plural = _("Importer - Default values") unique_together = ("default_target", "target") + ADMIN_SECTION = _("Imports") def natural_key(self): return ( @@ -602,6 +608,7 @@ class ImporterColumn(models.Model): verbose_name_plural = _("Importer - Columns") ordering = ("importer_type", "col_number") unique_together = ("importer_type", "col_number") + ADMIN_SECTION = _("Imports") def __str__(self): return "{} - {}".format(self.importer_type, self.col_number) @@ -655,6 +662,7 @@ class ImporterDuplicateField(models.Model): verbose_name_plural = _("Importer - Duplicate fields") ordering = ("column", "field_name") unique_together = ("column", "field_name") + ADMIN_SECTION = _("Imports") def natural_key(self): return self.column.importer_type.slug, self.column.col_number, self.field_name @@ -674,6 +682,7 @@ class Regexp(models.Model): class Meta: verbose_name = _("Importer - Regular expression") verbose_name_plural = _("Importer - Regular expressions") + ADMIN_SECTION = _("Imports") def __str__(self): return self.name @@ -702,6 +711,7 @@ class ValueFormater(models.Model): class Meta: verbose_name = _("Importer - Value format") verbose_name_plural = _("Importer - Value formats") + ADMIN_SECTION = _("Imports") def __str__(self): return self.name @@ -755,6 +765,7 @@ class ImportTarget(models.Model): verbose_name = _("Importer - Target") verbose_name_plural = _("Importer - Targets") unique_together = ("column", "target") + ADMIN_SECTION = _("Imports") def __str__(self): return self.target[:50] if self.target else self.comment @@ -814,6 +825,7 @@ class TargetKeyGroup(models.Model): class Meta: verbose_name = _("Importer - Target key group") verbose_name_plural = _("Importer - Target key groups") + ADMIN_SECTION = _("Imports") def __str__(self): return self.name @@ -856,6 +868,7 @@ class TargetKey(models.Model): verbose_name = _("Importer - Target key") verbose_name_plural = _("Importer - Targets keys") ordering = ("target", "key") + ADMIN_SECTION = _("Imports") def __str__(self): return " - ".join([str(self.target), self.key[:50]]) @@ -1034,6 +1047,7 @@ class FormaterType(models.Model): verbose_name_plural = _("Importer - Formater types") unique_together = ("formater_type", "options", "many_split") ordering = ("formater_type", "options") + ADMIN_SECTION = _("Imports") def natural_key(self): return self.formater_type, self.options, self.many_split @@ -1284,6 +1298,7 @@ class Import(models.Model): class Meta: verbose_name = _("Import") verbose_name_plural = _("Imports") + ADMIN_SECTION = _("Imports") def __str__(self): return "{} | {}".format(self.name or "-", self.importer_type) @@ -1916,3 +1931,31 @@ def pre_delete_import(sender, **kwargs): pre_delete.connect(pre_delete_import, sender=Import) + + +class ItemKey(models.Model): + key = models.TextField(_("Key")) + content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE) + object_id = models.PositiveIntegerField() + content_object = GenericForeignKey("content_type", "object_id") + importer = models.ForeignKey( + Import, + null=True, + blank=True, + help_text=_("Specific key to an import"), + on_delete=models.SET_NULL, + ) + user = models.ForeignKey( + "IshtarUser", blank=True, null=True, on_delete=models.SET_NULL + ) + group = models.ForeignKey( + TargetKeyGroup, blank=True, null=True, on_delete=models.SET_NULL + ) + + class Meta: + verbose_name = _("Importer - Item key") + verbose_name_plural = _("Imports - Item keys") + ADMIN_SECTION = _("Imports") + + def __str__(self): + return self.key |