1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- from django.contrib import admin
- from django.contrib.auth.models import User
- from django.contrib.auth.admin import UserAdmin as AuthUserAdmin
- #from django.core.exceptions import PermissionDenied
- from .models import Profile
- #from .forms import UserCreationForm
- from adhesions.admin import AdhesionInline
- class ProfileInline(admin.StackedInline):
- model = Profile
- def has_add_permission(self, request):
- return False
- def has_delete_permission(self, request, obj=None):
- return False
- class UserAdmin(AuthUserAdmin):
- list_display = AuthUserAdmin.list_display + ('adherent_id',)
- inlines = (ProfileInline, AdhesionInline,)
- def adherent_id(self, user):
- adherent = user.profile.adhesion
- if adherent:
- return adherent.id
- adherent_id.short_description = 'Numéro d’adhérent'
- #
- # def get_readonly_fields(self, request, obj=None):
- # readonly_fields = super().get_readonly_fields(request, obj)
- # if obj and not request.user.is_superuser:
- # readonly_fields += ('username',)
- # return readonly_fields
- #
- # def get_fieldsets(self, request, obj=None):
- # if request.user.is_superuser:
- # return (
- # AuthUserAdmin.fieldsets[0],
- # AuthUserAdmin.fieldsets[1],
- # (AuthUserAdmin.fieldsets[2][0], {
- # 'classes': ('collapse',),
- # 'fields': ('is_active', 'is_staff', 'is_superuser', 'groups',), # removing of user_permissions
- # }),
- # (AuthUserAdmin.fieldsets[3][0], {
- # 'classes': ('collapse',),
- # 'fields': AuthUserAdmin.fieldsets[3][1]['fields'],
- # }),
- # )
- # if obj:
- # return (
- # AuthUserAdmin.fieldsets[0], # Note: password is mandatory (but readonly)
- # AuthUserAdmin.fieldsets[1],
- # )
- # else:
- # return (
- # (None, {'fields': ('username',)}),
- # AuthUserAdmin.fieldsets[1],
- # )
- #
- # def get_form(self, request, obj=None, **kwargs):
- # # get_inlines does not exists :-(
- # if obj:
- # self.inlines = (ProfileInline, AdherentInline,)
- # else:
- # self.inlines = ()
- #
- # if request.user.is_superuser or obj:
- # return super().get_form(request, obj, **kwargs)
- # else:
- # # This creation form does not ask for a password
- # return UserCreationForm
- #
- # def user_change_password(self, request, id):
- # if not request.user.is_superuser:
- # # Les non admin peuvent modifier le mot de passe des utilisateurs qui ne sont ni staff ni admin
- # user = User.objects.get(pk=id)
- # if user.is_staff or user.is_superuser:
- # raise PermissionDenied
- # return super().user_change_password(request, id)
- admin.site.unregister(User)
- admin.site.register(User, UserAdmin)
|