from django.contrib import admin

from django.contrib.auth.admin import UserAdmin
from django.forms import forms, ModelChoiceField, ModelForm

from .models import User, Function


class ModelChoiceFunction(ModelChoiceField):
    def label_from_instance(self, Function):
        return Function.name


class UserAdmin(UserAdmin):
    list_display = (
         'username', 'email', 'first_name', 'last_name', 'is_staff', 'is_partner', 'is_superuser', 'is_badge', 'is_coord',
    )

    @admin.display(description='is_partner')
    def get_is_partner(self, obj):
        return obj.is_partner


    @admin.display(description='is_badge')
    def get_is_badge(self, obj):
        return obj.is_badge

    @admin.display(description='is_coord')
    def get_is_coord(self, obj):
        return obj.is_coord

    fieldsets = (
        (None, {
            'fields': ('username', 'password')
        }),
        ('Personal info', {
            'fields': ('first_name', 'last_name', 'email')
        }),
        ('Permissions', {
            'fields': (
                'is_active', 'is_staff', 'is_superuser', 'is_partner', 'is_badge', 'is_coord',
                'groups', 'user_permissions'
            )
        }),
        ('Important dates', {
            'fields': ('last_login', 'date_joined')
        }),
    )


# Register your models here.
admin.site.register(User, UserAdmin)
admin.site.register(Function)
