Skip to content
Snippets Groups Projects
Commit b3b2594a authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

Integrate Profile admin

parent 734cf64c
No related branches found
No related tags found
No related merge requests found
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
from program.models import (
Category,
FundingCategory,
......@@ -8,6 +10,7 @@ from program.models import (
MusicFocus,
Topic,
Type,
UserProfile,
)
......@@ -23,6 +26,49 @@ class AdminWithNameType(admin.ModelAdmin):
list_display = ("name", "type")
class UserProfileInline(admin.StackedInline):
model = UserProfile
fields = ("cba_username", "cba_user_token")
can_delete = False
verbose_name_plural = "Profile"
fk_name = "user"
class UserProfileUserAdmin(UserAdmin):
inlines = (UserProfileInline,)
def get_queryset(self, request):
"""Let common users only edit their own profile"""
if not request.user.is_superuser:
return super(UserAdmin, self).get_queryset(request).filter(pk=request.user.id)
return super(UserAdmin, self).get_queryset(request)
def get_readonly_fields(self, request, obj=None):
"""Limit field access for common users"""
if not request.user.is_superuser:
return (
"username",
"is_staff",
"is_superuser",
"is_active",
"date_joined",
"last_login",
"groups",
"user_permissions",
)
return list()
def get_inline_instances(self, request, obj=None):
"""Append profile fields to UserAdmin"""
if not obj:
return list()
return super(UserProfileUserAdmin, self).get_inline_instances(request, obj)
admin.site.unregister(User)
admin.site.register(User, UserProfileUserAdmin)
admin.site.register(Category, AdminWithNameSlugIsActive)
admin.site.register(FundingCategory, AdminWithNameSlugIsActive)
admin.site.register(Language, LanguageAdmin)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment