ernestophone.ens.fr/gestion/admin.py
2015-07-22 16:08:59 -04:00

43 lines
1.6 KiB
Python

from django.contrib import admin
from django.contrib.auth.models import User, Group
from gestion.models import ErnestoUser
from django.contrib.auth.admin import UserAdmin
from calendrier.models import Event
from propositions.models import Prop
class UserProfileInline(admin.StackedInline):
model = ErnestoUser
def ProfileInfo(field, short_description, boolean=False):
def getter(self):
try:
return getattr(self.profile, field)
except ErnestoUser.DoesNotExist:
return ""
getter.short_description = short_description
getter.boolean = boolean
return getter
User.profile_phone = ProfileInfo("phone", "Telephone")
User.profile_instru = ProfileInfo("instru", "Instrument joué")
User.profile_is_ern = ProfileInfo("is_ernesto", "Ernestophoniste")
User.profile_is_chef = ProfileInfo("is_chef", "Chef Fanfare")
class UserProfileAdmin(UserAdmin):
list_display = ('username', 'first_name', 'last_name', 'email', 'profile_phone', 'profile_instru', 'profile_is_ern', 'profile_is_chef',)
list_display_links = ('username', 'email', 'first_name', 'last_name',)
list_filter = ('profile__instru',)
ordering = ('username',)
search_fields = ('username', 'first_name', 'last_name', 'profile__phone', 'profile__instru',)
inlines = [ UserProfileInline, ]
fieldsets = (('Général', { 'fields': ('username', 'first_name', 'last_name', ) }),
('Permissions', {'fields': ('is_active', 'is_staff', 'is_superuser' )})
)
admin.site.unregister(User)
admin.site.unregister(Group)
admin.site.register(User, UserProfileAdmin)
admin.site.register(Event)
admin.site.register(Prop)
# Register your models here.