admin.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. from django.contrib import admin
  2. from django.contrib.auth.models import User
  3. from django.contrib.auth.admin import UserAdmin as AuthUserAdmin
  4. #from django.core.exceptions import PermissionDenied
  5. from .models import Profile
  6. #from .forms import UserCreationForm
  7. from adhesions.admin import AdhesionInline
  8. class ProfileInline(admin.StackedInline):
  9. model = Profile
  10. def has_add_permission(self, request):
  11. return False
  12. def has_delete_permission(self, request, obj=None):
  13. return False
  14. class UserAdmin(AuthUserAdmin):
  15. list_display = AuthUserAdmin.list_display + ('adherent_id',)
  16. inlines = (ProfileInline, AdhesionInline,)
  17. def adherent_id(self, user):
  18. adherent = user.profile.adhesion
  19. if adherent:
  20. return adherent.id
  21. adherent_id.short_description = 'Numéro d’adhérent'
  22. #
  23. # def get_readonly_fields(self, request, obj=None):
  24. # readonly_fields = super().get_readonly_fields(request, obj)
  25. # if obj and not request.user.is_superuser:
  26. # readonly_fields += ('username',)
  27. # return readonly_fields
  28. #
  29. # def get_fieldsets(self, request, obj=None):
  30. # if request.user.is_superuser:
  31. # return (
  32. # AuthUserAdmin.fieldsets[0],
  33. # AuthUserAdmin.fieldsets[1],
  34. # (AuthUserAdmin.fieldsets[2][0], {
  35. # 'classes': ('collapse',),
  36. # 'fields': ('is_active', 'is_staff', 'is_superuser', 'groups',), # removing of user_permissions
  37. # }),
  38. # (AuthUserAdmin.fieldsets[3][0], {
  39. # 'classes': ('collapse',),
  40. # 'fields': AuthUserAdmin.fieldsets[3][1]['fields'],
  41. # }),
  42. # )
  43. # if obj:
  44. # return (
  45. # AuthUserAdmin.fieldsets[0], # Note: password is mandatory (but readonly)
  46. # AuthUserAdmin.fieldsets[1],
  47. # )
  48. # else:
  49. # return (
  50. # (None, {'fields': ('username',)}),
  51. # AuthUserAdmin.fieldsets[1],
  52. # )
  53. #
  54. # def get_form(self, request, obj=None, **kwargs):
  55. # # get_inlines does not exists :-(
  56. # if obj:
  57. # self.inlines = (ProfileInline, AdherentInline,)
  58. # else:
  59. # self.inlines = ()
  60. #
  61. # if request.user.is_superuser or obj:
  62. # return super().get_form(request, obj, **kwargs)
  63. # else:
  64. # # This creation form does not ask for a password
  65. # return UserCreationForm
  66. #
  67. # def user_change_password(self, request, id):
  68. # if not request.user.is_superuser:
  69. # # Les non admin peuvent modifier le mot de passe des utilisateurs qui ne sont ni staff ni admin
  70. # user = User.objects.get(pk=id)
  71. # if user.is_staff or user.is_superuser:
  72. # raise PermissionDenied
  73. # return super().user_change_password(request, id)
  74. admin.site.unregister(User)
  75. admin.site.register(User, UserAdmin)