editing updates, cosmetic changes
This commit is contained in:
@@ -4,11 +4,15 @@ from aiogram.types import Message, CallbackQuery
|
||||
from aiogram.fsm.context import FSMContext
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from dto.catalogue import CategoryActionContext
|
||||
from dto.control import EditProductContext
|
||||
from misc.filters import IsVerified
|
||||
from misc.kb.admins import back_to_product_kb
|
||||
from misc.kb.client import get_back_to_catalogue
|
||||
from misc.mapper import parse_cat_id
|
||||
from misc.states import AdminControlStorage
|
||||
from misc.texts import product_editing_mapping
|
||||
from repositories.categories import CategoriesRepository
|
||||
from repositories.products import ProductRepository
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -93,3 +97,52 @@ async def edit_product_query(
|
||||
except Exception as e:
|
||||
logger.exception(e)
|
||||
await ctx.msg.edit_text(text="‼️ Что-то пошло не так.", reply_markup=kb)
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("edit:"))
|
||||
async def edit_entry(cb: CallbackQuery, state: FSMContext):
|
||||
await state.clear()
|
||||
|
||||
data = cb.data.split(":")
|
||||
mode = data[1]
|
||||
entry_id = data[2]
|
||||
|
||||
if mode == "category":
|
||||
await cb.message.edit_text(
|
||||
"<b>✍️ Введите новое название категории.</b>",
|
||||
reply_markup=get_back_to_catalogue(entry_id),
|
||||
)
|
||||
ctx = CategoryActionContext(cb.message, entry_id)
|
||||
await state.set_state(AdminControlStorage.edit_category)
|
||||
await state.set_data({"ctx": ctx})
|
||||
|
||||
if mode == "product":
|
||||
...
|
||||
|
||||
|
||||
@router.message(AdminControlStorage.edit_category)
|
||||
async def edit_category(
|
||||
msg: Message,
|
||||
state: FSMContext,
|
||||
session: AsyncSession,
|
||||
categories_repo: CategoriesRepository,
|
||||
):
|
||||
await msg.delete()
|
||||
data = await state.get_data()
|
||||
await state.clear()
|
||||
|
||||
ctx: CategoryActionContext | None = data.get("ctx")
|
||||
if not ctx:
|
||||
await msg.answer("❌ Ошибка при редактировании категории.")
|
||||
logger.error("no context found while editing category!")
|
||||
return
|
||||
|
||||
await ctx.msg.edit_text("⏳")
|
||||
|
||||
cat = await categories_repo.update_category_name(
|
||||
session=session, category_id=parse_cat_id(ctx.parent_id), value=msg.text
|
||||
)
|
||||
|
||||
await ctx.msg.edit_text(
|
||||
"✅ Успешно.", reply_markup=get_back_to_catalogue(cat.parent_id)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user