summaryrefslogtreecommitdiff
path: root/ishtar_common/models.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.py
parentd86abf7eb1d5a7ea8c8c0ecfde24680d3a5d7094 (diff)
downloadIshtar-2ae0e6f81e570a75ac27d455db9834c93f66d1fe.tar.bz2
Ishtar-2ae0e6f81e570a75ac27d455db9834c93f66d1fe.zip
Admin: overload index to add sub-section headers
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py60
1 files changed, 34 insertions, 26 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 83ca5129b..e4f13ab5f 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -49,7 +49,6 @@ from xml.etree import ElementTree as ET
from django.apps import apps
from django.conf import settings
from django.contrib.auth.models import User, Group
-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.aggregates import Union
@@ -117,6 +116,7 @@ from ishtar_common.models_imports import (
Import,
TargetKeyGroup,
ValueFormater,
+ ItemKey,
)
from ishtar_common.utils import (
@@ -177,6 +177,7 @@ __all__ = [
"ImporterDuplicateField",
"Regexp",
"ImportTarget",
+ "ItemKey",
"TargetKey",
"FormaterType",
"Import",
@@ -447,29 +448,6 @@ class TinyUrl(models.Model):
return i
-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
- )
-
- def __str__(self):
- return self.key
-
-
class ImageModel(models.Model, ImageContainerModel):
image = models.ImageField(
upload_to=get_image_path,
@@ -698,6 +676,7 @@ class JsonDataSection(models.Model):
verbose_name_plural = _("Custom data - Menus")
ordering = ["order", "name"]
unique_together = ("name", "content_type")
+ ADMIN_SECTION = _("Custom data / custom forms")
def natural_key(self):
return (self.name, self.content_type.app_label, self.content_type.model)
@@ -761,6 +740,7 @@ class JsonDataField(models.Model):
verbose_name_plural = _("Custom data - Fields")
ordering = ["order", "name"]
unique_together = ("content_type", "key")
+ ADMIN_SECTION = _("Custom data / custom forms")
def natural_key(self):
return (self.key, self.content_type.app_label, self.content_type.model)
@@ -1000,6 +980,7 @@ class Language(GeneralType):
class Meta:
verbose_name = _("Language")
verbose_name_plural = _("Languages")
+ ADMIN_SECTION = _("Documents")
CURRENCY = (("€", _("Euro")), ("$", _("US dollar")))
@@ -1542,6 +1523,7 @@ class IshtarSiteProfile(models.Model, Cached):
verbose_name = _("Ishtar site profile")
verbose_name_plural = _("Ishtar site profiles")
ordering = ["label"]
+ ADMIN_SECTION = _("General settings")
def __str__(self):
return str(self.label)
@@ -1667,6 +1649,7 @@ class CustomForm(models.Model):
verbose_name_plural = _("Custom forms")
ordering = ["name", "form"]
unique_together = (("name", "form"),)
+ ADMIN_SECTION = _("Custom data / custom forms")
def natural_key(self):
return (self.name, self.form)
@@ -1815,9 +1798,10 @@ class CustomFormJsonField(models.Model):
objects = CustomFormJsonFieldManager()
class Meta:
- verbose_name = _("Custom form - Json data field")
- verbose_name_plural = _("Custom form - Json data fields")
+ verbose_name = _("Custom forms - Json data field")
+ verbose_name_plural = _("Custom forms - Json data fields")
unique_together = ("custom_form", "json_field")
+ ADMIN_SECTION = _("Custom data / custom forms")
def natural_key(self):
return (
@@ -1841,6 +1825,7 @@ class GlobalVar(models.Model, Cached):
verbose_name = _("Global variable")
verbose_name_plural = _("Global variables")
ordering = ["slug"]
+ ADMIN_SECTION = _("General settings")
def natural_key(self):
return (self.slug,)
@@ -2063,6 +2048,7 @@ class DocumentTemplate(models.Model):
verbose_name = _("Document template")
verbose_name_plural = _("Document templates")
ordering = ["associated_model", "name"]
+ ADMIN_SECTION = _("General settings")
def __str__(self):
return self.name
@@ -2363,6 +2349,7 @@ class Area(HierarchicalType):
verbose_name = _("Town - Area")
verbose_name_plural = _("Town - Areas")
ordering = ("label",)
+ ADMIN_SECTION = _("Geography")
def __str__(self):
if not self.reference:
@@ -2492,6 +2479,7 @@ class OrganizationType(GenderedType):
verbose_name = _("Organization type")
verbose_name_plural = _("Organization types")
ordering = ("label",)
+ ADMIN_SECTION = _("Directory")
def get_orga_planning_service_label():
@@ -2591,6 +2579,7 @@ class Organization(Address, Merge, OwnPerms, BaseGenderedType, ValueGetter, Main
indexes = [
GinIndex(fields=["data"]),
]
+ ADMIN_SECTION = _("Directory")
def simple_lbl(self):
if self.name:
@@ -2644,6 +2633,7 @@ class PersonType(GeneralType):
verbose_name = _("Person type")
verbose_name_plural = _("Person types")
ordering = ("label",)
+ ADMIN_SECTION = _("Directory")
post_save.connect(post_save_cache, sender=PersonType)
@@ -2717,6 +2707,7 @@ class TitleType(GenderedType):
verbose_name = _("Title type")
verbose_name_plural = _("Title types")
ordering = ("label",)
+ ADMIN_SECTION = _("Directory")
@classmethod
def get_documentation_string(cls):
@@ -2886,6 +2877,7 @@ class Person(Address, Merge, OwnPerms, ValueGetter, MainItem):
("delete_own_person", "Can delete own Person"),
)
ordering = ['name', 'surname']
+ ADMIN_SECTION = _("Directory")
def natural_key(self):
return (self.uuid,)
@@ -3165,6 +3157,7 @@ class ProfileType(GeneralType):
verbose_name = _("Profile type")
verbose_name_plural = _("Profile types")
ordering = ("label",)
+ ADMIN_SECTION = _("Directory")
post_save.connect(post_save_cache, sender=ProfileType)
@@ -3176,6 +3169,7 @@ class ProfileTypeSummary(ProfileType):
proxy = True
verbose_name = _("Profile type summary")
verbose_name_plural = _("Profile types summary")
+ ADMIN_SECTION = _("Directory")
class UserProfile(models.Model):
@@ -3212,6 +3206,7 @@ class UserProfile(models.Model):
verbose_name = _("User profile")
verbose_name_plural = _("User profiles")
unique_together = (("name", "profile_type", "person"),)
+ ADMIN_SECTION = _("Directory")
def __str__(self):
lbl = self.name or str(self.profile_type)
@@ -3407,6 +3402,7 @@ class IshtarUser(FullSearch):
class Meta:
verbose_name = _("Ishtar user")
verbose_name_plural = _("Ishtar users")
+ ADMIN_SECTION = _("Directory")
def __str__(self):
return str(self.person)
@@ -3620,6 +3616,7 @@ class AuthorType(GeneralType):
verbose_name = _("Author type")
verbose_name_plural = _("Author types")
ordering = ["order", "label"]
+ ADMIN_SECTION = _("Directory")
post_save.connect(post_save_cache, sender=AuthorType)
@@ -3655,6 +3652,7 @@ class Author(FullSearch):
("change_own_author", "Can change own Author"),
("delete_own_author", "Can delete own Author"),
)
+ ADMIN_SECTION = _("Directory")
def __str__(self):
return self.cached_label or ""
@@ -3717,6 +3715,7 @@ class SourceType(HierarchicalType):
verbose_name = _("Document type")
verbose_name_plural = _("Document types")
ordering = ["label"]
+ ADMIN_SECTION = _("Documents")
post_save.connect(post_save_cache, sender=SourceType)
@@ -3734,6 +3733,7 @@ class SupportType(GeneralType):
class Meta:
verbose_name = _("Support type")
verbose_name_plural = _("Support types")
+ ADMIN_SECTION = _("Documents")
post_save.connect(post_save_cache, sender=SupportType)
@@ -3762,6 +3762,7 @@ class Format(GeneralType):
verbose_name = _("Format type")
verbose_name_plural = _("Format types")
ordering = ["label"]
+ ADMIN_SECTION = _("Documents")
post_save.connect(post_save_cache, sender=Format)
@@ -3775,6 +3776,7 @@ class LicenseType(GeneralType):
verbose_name = _("License type")
verbose_name_plural = _("License types")
ordering = ("label",)
+ ADMIN_SECTION = _("Documents")
class DocumentTag(GeneralType):
@@ -3784,6 +3786,7 @@ class DocumentTag(GeneralType):
verbose_name = _("Document tag")
verbose_name_plural = _("Document tags")
ordering = ("label",)
+ ADMIN_SECTION = _("Documents")
post_save.connect(post_save_cache, sender=LicenseType)
@@ -4304,6 +4307,7 @@ class Document(
indexes = [
GinIndex(fields=["data"]),
]
+ ADMIN_SECTION = _("Documents")
def __str__(self):
return self.title
@@ -5033,6 +5037,7 @@ class AdministrationScript(models.Model):
verbose_name = _("Administration script")
verbose_name_plural = _("Administration scripts")
ordering = ["name"]
+ ADMIN_SECTION = _("General settings")
def __str__(self):
return str(self.name)
@@ -5062,6 +5067,7 @@ class AdministrationTask(models.Model):
verbose_name = _("Administration task")
verbose_name_plural = _("Administration tasks")
ordering = ["script"]
+ ADMIN_SECTION = _("General settings")
def __str__(self):
state = _("Unknown")
@@ -5219,6 +5225,7 @@ class ExportTask(models.Model):
verbose_name = _("Archive - Export")
verbose_name_plural = _("Archive - Exports")
ordering = ["creation_date"]
+ ADMIN_SECTION = pgettext_lazy("name", "Archive")
def __str__(self):
state = _("Unknown")
@@ -5278,6 +5285,7 @@ class ImportTask(models.Model):
verbose_name = _("Archive - Import")
verbose_name_plural = _("Archive - Imports")
ordering = ["creation_date"]
+ ADMIN_SECTION = pgettext_lazy("name", "Archive")
def __str__(self):
state = _("Unknown")