Dmitry Afanasyev 8266342214
add ban user action (#77)
* add ban user action

* fix tests

* send message through update.effective_message
2024-01-07 16:08:23 +03:00

55 lines
1.5 KiB
Python

from typing import TYPE_CHECKING
from sqladmin import Admin, ModelView
from core.auth.models.users import User
from core.bot.models.chatgpt import ChatGptModels
from core.utils import build_uri
from settings.config import settings
if TYPE_CHECKING:
from main import Application
class ChatGptAdmin(ModelView, model=ChatGptModels):
name = "ChatGPT model"
name_plural = "ChatGPT models"
column_list = [ChatGptModels.id, ChatGptModels.model, ChatGptModels.priority]
column_sortable_list = [ChatGptModels.priority]
column_default_sort = ("priority", True)
form_widget_args = {"model": {"readonly": True}}
can_create = False
can_delete = False
class UserAdmin(ModelView, model=User):
name = "User"
name_plural = "Users"
column_list = [
User.id,
User.username,
User.first_name,
User.last_name,
User.is_active,
User.ban_reason,
"question_count",
User.created_at,
]
column_sortable_list = [User.created_at]
column_default_sort = ("created_at", True)
form_widget_args = {"created_at": {"readonly": True}}
def create_admin(application: "Application") -> Admin:
admin = Admin(
title="Chat GPT admin",
app=application.fastapi_app,
engine=application.db.async_engine,
base_url=build_uri([settings.URL_PREFIX, "admin"]),
authentication_backend=None,
)
admin.add_view(ChatGptAdmin)
admin.add_view(UserAdmin)
return admin