chore(admin): Harmonize ModelAdmin classes

This commit is contained in:
Tom Hubrecht 2025-03-31 10:23:14 +02:00
parent eecfdc8c1d
commit 0630a8251c
Signed by: thubrecht
SSH key fingerprint: SHA256:CYNvFo44Ar9qCNnWNnvJVhs0QXO9AZjOLlPeWcSij3Q
3 changed files with 50 additions and 36 deletions

View file

@ -1,22 +1,12 @@
from django.contrib import admin
from django.utils.translation import gettext_lazy as _
from import_export.admin import (
ImportExportMixin,
ImportForm,
SelectableFieldsExportForm,
)
from import_export.forms import ExportForm
from unfold.admin import ModelAdmin
from api.models import ServiceUser, Token
from shared.admin import BaseModelAdmin
@admin.register(ServiceUser)
class UserAdmin(ImportExportMixin, ModelAdmin):
import_form_class = ImportForm
export_form_class = ExportForm
export_form_class = SelectableFieldsExportForm
class UserAdmin(BaseModelAdmin):
fieldsets = (
(
None,
@ -47,8 +37,15 @@ class UserAdmin(ImportExportMixin, ModelAdmin):
@admin.register(Token)
class AdminClass(ImportExportMixin, ModelAdmin):
compressed_fields = True
import_form_class = ImportForm
export_form_class = ExportForm
export_form_class = SelectableFieldsExportForm
class AdminClass(BaseModelAdmin):
readonly_fields = ("key",)
add_fieldsets = (
(
None,
{
"classes": ("wide",),
"fields": ("user",),
},
),
)

View file

@ -1,21 +1,16 @@
from allauth.socialaccount.models import SocialAccount, SocialApp, SocialToken
from django.contrib import admin
from django.contrib.auth.admin import GroupAdmin as DjangoGroupAdmin
from django.contrib.auth.admin import UserAdmin as DjangoUserAdmin
from django.contrib.auth.models import Group
from django.utils.translation import gettext_lazy as _
from import_export.admin import ImportExportMixin
from unfold.admin import ModelAdmin
from unfold.contrib.import_export.forms import (
ExportForm,
ImportForm,
SelectableFieldsExportForm,
)
from dgsi.models import Archive, Bylaws, Service, Statutes, Translation, User
from shared.admin import BaseModelAdmin
assert DjangoUserAdmin.fieldsets is not None
# Unregister allauth models
def unregister(*models, site=None):
"""
Unregister the given model(s) classes.
@ -35,15 +30,20 @@ def unregister(*models, site=None):
admin_site.unregister(models)
# Unregister allauth models
unregister(SocialAccount, SocialApp, SocialToken)
# Unregister django models
unregister(Group)
@admin.register(Group)
class GroupAdmin(DjangoGroupAdmin, BaseModelAdmin):
pass
@admin.register(User)
class UserAdmin(DjangoUserAdmin, ImportExportMixin, ModelAdmin):
import_form_class = ImportForm
export_form_class = ExportForm
export_form_class = SelectableFieldsExportForm
class UserAdmin(DjangoUserAdmin, BaseModelAdmin):
readonly_fields = ("vlan_id",)
# Add the local fields
@ -60,9 +60,12 @@ class UserAdmin(DjangoUserAdmin, ImportExportMixin, ModelAdmin):
)
@admin.register(Archive, Bylaws, Service, SocialAccount, Statutes, Translation)
class AdminClass(ImportExportMixin, ModelAdmin):
compressed_fields = True
import_form_class = ImportForm
export_form_class = ExportForm
export_form_class = SelectableFieldsExportForm
for model in [
Archive,
Bylaws,
Service,
SocialAccount,
Statutes,
Translation,
]:
admin.site.register(model, BaseModelAdmin)

14
src/shared/admin.py Normal file
View file

@ -0,0 +1,14 @@
from import_export.admin import (
ImportExportMixin,
ImportForm,
SelectableFieldsExportForm,
)
from import_export.forms import ExportForm
from unfold.admin import ModelAdmin
class BaseModelAdmin(ImportExportMixin, ModelAdmin):
compressed_fields = True
import_form_class = ImportForm
export_form_class = ExportForm
export_form_class = SelectableFieldsExportForm