add sqladmin (#32)

This commit is contained in:
Dmitry Afanasyev
2023-10-11 02:05:02 +03:00
committed by GitHub
parent e9f76d0ea9
commit 7cd0f30c55
7 changed files with 211 additions and 108 deletions

View File

@@ -0,0 +1,32 @@
import os
from typing import TYPE_CHECKING
from sqladmin import Admin, ModelView
from core.bot.models.chat_gpt import ChatGpt
from settings.config import settings
if TYPE_CHECKING:
from main import Application
class ChatGptAdmin(ModelView, model=ChatGpt):
column_list = [ChatGpt.id, ChatGpt.model, ChatGpt.priority]
column_sortable_list = [ChatGpt.priority]
column_default_sort = ("priority", True)
form_widget_args = {"model": {"readonly": True}}
can_create = False
can_delete = False
def create_admin(application: "Application") -> Admin:
admin = Admin(
title='Chat GPT admin',
app=application.fastapi_app,
engine=application.db.async_engine,
base_url=os.path.join(settings.URL_PREFIX, "admin"),
authentication_backend=None,
)
admin.add_view(ChatGptAdmin)
return admin

View File

@@ -51,6 +51,10 @@ class Database:
session.commit()
session.close()
@property
def async_engine(self) -> AsyncEngine:
return self._async_engine
@asynccontextmanager
async def session(self) -> AsyncGenerator[AsyncSession, None]:
session: AsyncSession = self._async_session_factory()