summaryrefslogtreecommitdiff
path: root/ishtar_common/models_imports.py
diff options
context:
space:
mode:
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
commit2ae0e6f81e570a75ac27d455db9834c93f66d1fe (patch)
treeade5f9523698ad0ec5bcf988834f73df8d140dc3 /ishtar_common/models_imports.py
parentd86abf7eb1d5a7ea8c8c0ecfde24680d3a5d7094 (diff)
downloadIshtar-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.py47
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