Modification form group pour voir les utilisateurs
This commit is contained in:
0
custom_admin/__init__.py
Normal file
0
custom_admin/__init__.py
Normal file
44
custom_admin/admin.py
Normal file
44
custom_admin/admin.py
Normal 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
6
custom_admin/apps.py
Normal file
@@ -0,0 +1,6 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class CustomAdminConfig(AppConfig):
|
||||
default_auto_field = 'django.db.models.BigAutoField'
|
||||
name = 'custom_admin'
|
Reference in New Issue
Block a user