Modification form group pour voir les utilisateurs

This commit is contained in:
Ambulance Clerc
2022-05-02 08:31:03 +02:00
parent 6a3997424b
commit f410e3c5da
4 changed files with 69 additions and 15 deletions

0
custom_admin/__init__.py Normal file
View File

44
custom_admin/admin.py Normal file
View File

@@ -0,0 +1,44 @@
from django import forms
from django.contrib import admin
from django.contrib.auth.admin import GroupAdmin as origGroupAdmin
from django.contrib.auth.models import Group, User
class GroupAdminForm(forms.ModelForm):
"""
ModelForm that adds an additional multiple select field for managing
the users in the group.
"""
users = forms.ModelMultipleChoiceField(
User.objects.all(),
widget=admin.widgets.FilteredSelectMultiple('Users', False),
required=False,
)
def __init__(self, *args, **kwargs):
super(GroupAdminForm, self).__init__(*args, **kwargs)
if self.instance.pk:
initial_users = self.instance.user_set.values_list('pk', flat=True)
self.initial['users'] = initial_users
def save(self, *args, **kwargs):
kwargs['commit'] = True
return super(GroupAdminForm, self).save(*args, **kwargs)
def save_m2m(self):
self.instance.user_set.clear()
self.instance.user_set.add(*self.cleaned_data['users'])
class GroupAdmin(origGroupAdmin):
"""
Customized GroupAdmin class that uses the customized form to allow
management of users within a group.
"""
form = GroupAdminForm
admin.site.unregister(Group)
admin.site.register(Group, GroupAdmin)

6
custom_admin/apps.py Normal file
View File

@@ -0,0 +1,6 @@
from django.apps import AppConfig
class CustomAdminConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'custom_admin'