add ruff format, ruff check, time_picker, project structure and imports reorganized
This commit is contained in:
@@ -4,13 +4,12 @@ from aiogram.types import Message, CallbackQuery, InlineKeyboardButton
|
||||
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
||||
from babel.support import LazyProxy
|
||||
from logging import getLogger
|
||||
from sqlmodel.ext.asyncio.session import AsyncSession
|
||||
from typing import TYPE_CHECKING
|
||||
from ....model.settings import Settings
|
||||
from ....model.user import UserBase
|
||||
from ..context import ContextData, CallbackCommand
|
||||
from ..common import get_send_message
|
||||
from ....utils.main import get_send_message
|
||||
from ....model.descriptors import EntityCaptionCallable
|
||||
from ..navigation import save_navigation_context, pop_navigation_context
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from ....main import QBotApp
|
||||
@@ -20,55 +19,63 @@ logger = getLogger(__name__)
|
||||
router = Router()
|
||||
|
||||
|
||||
@router.callback_query(ContextData.filter(F.command == CallbackCommand.MENU_ENTRY_ENTITIES))
|
||||
@router.callback_query(
|
||||
ContextData.filter(F.command == CallbackCommand.MENU_ENTRY_ENTITIES)
|
||||
)
|
||||
async def menu_entry_entities(message: CallbackQuery, **kwargs):
|
||||
|
||||
callback_data: ContextData = kwargs["callback_data"]
|
||||
state: FSMContext = kwargs["state"]
|
||||
state_data = await state.get_data()
|
||||
kwargs["state_data"] = state_data
|
||||
|
||||
stack = save_navigation_context(callback_data = callback_data, state_data = state_data)
|
||||
stack = save_navigation_context(callback_data=callback_data, state_data=state_data)
|
||||
|
||||
await entities_menu(message = message, navigation_stack = stack, **kwargs)
|
||||
await entities_menu(message=message, navigation_stack=stack, **kwargs)
|
||||
|
||||
|
||||
async def entities_menu(message: Message | CallbackQuery,
|
||||
app: "QBotApp",
|
||||
state: FSMContext,
|
||||
navigation_stack: list[ContextData],
|
||||
**kwargs):
|
||||
|
||||
async def entities_menu(
|
||||
message: Message | CallbackQuery,
|
||||
app: "QBotApp",
|
||||
state: FSMContext,
|
||||
navigation_stack: list[ContextData],
|
||||
**kwargs,
|
||||
):
|
||||
keyboard_builder = InlineKeyboardBuilder()
|
||||
|
||||
entity_metadata = app.entity_metadata
|
||||
|
||||
for entity in entity_metadata.entity_descriptors.values():
|
||||
if entity.caption_plural.__class__ == EntityCaptionCallable:
|
||||
caption = entity.caption_plural(entity) or entity.name
|
||||
elif entity.caption_plural.__class__ == LazyProxy:
|
||||
caption = f"{f"{entity.icon} " if entity.icon else ""}{entity.caption_plural.value or entity.name}"
|
||||
if entity.full_name_plural.__class__ == EntityCaptionCallable:
|
||||
caption = entity.full_name_plural(entity) or entity.name
|
||||
elif entity.full_name_plural.__class__ == LazyProxy:
|
||||
caption = f"{f'{entity.icon} ' if entity.icon else ''}{entity.full_name_plural.value or entity.name}"
|
||||
else:
|
||||
caption = f"{f"{entity.icon} " if entity.icon else ""}{entity.caption_plural or entity.name}"
|
||||
|
||||
caption = f"{f'{entity.icon} ' if entity.icon else ''}{entity.full_name_plural or entity.name}"
|
||||
|
||||
keyboard_builder.row(
|
||||
InlineKeyboardButton(
|
||||
text = caption,
|
||||
callback_data = ContextData(command = CallbackCommand.ENTITY_LIST, entity_name = entity.name).pack()))
|
||||
|
||||
text=caption,
|
||||
callback_data=ContextData(
|
||||
command=CallbackCommand.ENTITY_LIST, entity_name=entity.name
|
||||
).pack(),
|
||||
)
|
||||
)
|
||||
|
||||
context = pop_navigation_context(navigation_stack)
|
||||
if context:
|
||||
keyboard_builder.row(
|
||||
InlineKeyboardButton(
|
||||
text = (await Settings.get(Settings.APP_STRINGS_BACK_BTN)),
|
||||
callback_data = context.pack()))
|
||||
|
||||
text=(await Settings.get(Settings.APP_STRINGS_BACK_BTN)),
|
||||
callback_data=context.pack(),
|
||||
)
|
||||
)
|
||||
|
||||
state_data = kwargs["state_data"]
|
||||
await state.set_data(state_data)
|
||||
|
||||
|
||||
send_message = get_send_message(message)
|
||||
|
||||
await send_message(text = (await Settings.get(Settings.APP_STRINGS_REFERENCES)), reply_markup = keyboard_builder.as_markup())
|
||||
|
||||
|
||||
from ..navigation import save_navigation_context, pop_navigation_context
|
||||
await send_message(
|
||||
text=(await Settings.get(Settings.APP_STRINGS_REFERENCES)),
|
||||
reply_markup=keyboard_builder.as_markup(),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user