from django.contrib import admin
from django.contrib.auth.models import Group
from django.contrib.auth.admin import UserAdmin, GroupAdmin

from . import models


class MyUserAdmin(UserAdmin):
    # @staticmethod
    # def group_list(self):
    #     return ', '.join([a.name for a in self.groups.all()])
    # group_list.short_description = '部门/组'

    list_display = ('username', 'real_name', 'staff_id', 'department')
    fieldsets = (
        (None, {'fields': ('username', 'password', 'real_name', 'staff_id', 'department')}),
        ('权限', {
            'fields': ('is_active', 'is_staff', 'is_superuser', 'groups'),
        }),
    )


class MyGroupAdmin(GroupAdmin):
    pass


class DepartmentAdmin(admin.ModelAdmin):
    pass


class TaskPropertyAdmin(admin.ModelAdmin):
    list_display = (
        'task_property', 'own_department'
    )

    def get_queryset(self, request):
        qs = super(TaskPropertyAdmin, self).get_queryset(request)
        if request.user.is_superuser:
            return qs
        else:
            return qs.filter(own_department=request.user.department)


class QualityMarkAdmin(admin.ModelAdmin):
    list_display = (
        'mark_name',
        'mark_value'
    )
    def mark_value(self):
        return self.mark_value
    mark_value.short_description = 'ss'

    # # 仅显示当前部门的任务属性,除非为超管
    # def get_queryset(self, request):
    #     qs = super(QualityMarkAdmin, self).get_queryset(request)
    #     if request.user.is_superuser:
    #         return qs
    #     else:
    #         return qs.filter(department=request.user.department)


class MarkValueAdmin(admin.ModelAdmin):
    # def get_queryset(self, request):
    #     qs = super(MarkValueAdmin, self).get_queryset(request)
    #     if request.user.is_superuser:
    #         return qs
    #     else:
    #         return qs.filter(department=request.user.department)
    pass

admin.site.register(models.User, MyUserAdmin)
admin.site.register(models.MyGroup, MyGroupAdmin)
admin.site.register(models.MarkValue, MarkValueAdmin)
admin.site.register(models.Department)
admin.site.register(models.QualityMark, QualityMarkAdmin)
admin.site.register(models.TaskProperty, TaskPropertyAdmin)
admin.site.unregister(Group)