75 lines
1.7 KiB
Python
75 lines
1.7 KiB
Python
from sqladmin import ModelView
|
|
from wtforms import PasswordField, SelectField
|
|
|
|
from app.backoffice.admin.models import Admin
|
|
from app.backoffice.mixins import SuperAdminOnly
|
|
|
|
|
|
class AdminAdmin(SuperAdminOnly, ModelView, model=Admin):
|
|
name = "관리자 계정"
|
|
name_plural = "관리자 계정 목록"
|
|
icon = "fa-solid fa-user-shield"
|
|
category = "백오피스 설정"
|
|
page_size = 30
|
|
|
|
column_list = [
|
|
"id",
|
|
"username",
|
|
"name",
|
|
"role",
|
|
"is_active",
|
|
"last_login_at",
|
|
"created_at",
|
|
]
|
|
|
|
column_details_list = [
|
|
"id",
|
|
"username",
|
|
"name",
|
|
"role",
|
|
"is_active",
|
|
"last_login_at",
|
|
"created_at",
|
|
"updated_at",
|
|
]
|
|
|
|
form_columns = ["username", "password", "name", "role", "is_active"]
|
|
|
|
form_overrides = {
|
|
"password": PasswordField,
|
|
"role": SelectField,
|
|
}
|
|
|
|
form_args = {
|
|
"role": {
|
|
"label": "권한",
|
|
"choices": [("superadmin", "전체 관리자"), ("viewer", "일반 관리자")],
|
|
"default": "viewer",
|
|
}
|
|
}
|
|
|
|
column_searchable_list = [Admin.username, Admin.name]
|
|
|
|
column_default_sort = (Admin.created_at, True)
|
|
|
|
column_sortable_list = [
|
|
Admin.id,
|
|
Admin.username,
|
|
Admin.is_active,
|
|
Admin.last_login_at,
|
|
Admin.created_at,
|
|
]
|
|
|
|
column_labels = {
|
|
"id": "ID",
|
|
"username": "아이디",
|
|
"name": "이름",
|
|
"role": "권한",
|
|
"is_active": "활성화",
|
|
"last_login_at": "마지막 로그인",
|
|
"created_at": "생성일시",
|
|
"updated_at": "수정일시",
|
|
}
|
|
|
|
can_delete = False
|