diff options
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 |