Fix admin and create coupons

This commit is contained in:
Zakhar Izmaylov
2024-11-17 15:26:03 +03:00
parent a91629bd7f
commit 20d424f2d4
4 changed files with 18 additions and 11 deletions
+12 -6
View File
@@ -16,7 +16,7 @@ class AdminCouponsState(StatesGroup):
router = Router()
@router.callback_query(F.data == "coupons_editor",IsAdminFilter())
@router.callback_query(F.data == "coupons_editor", IsAdminFilter())
async def show_coupon_management_menu(callback_query: types.CallbackQuery):
try:
await callback_query.message.delete()
@@ -39,7 +39,7 @@ async def show_coupon_management_menu(callback_query: types.CallbackQuery):
await callback_query.answer()
@router.callback_query(F.data == "coupons",IsAdminFilter())
@router.callback_query(F.data == "coupons", IsAdminFilter())
async def show_coupon_list(callback_query: types.CallbackQuery):
try:
try:
@@ -100,7 +100,7 @@ async def show_coupon_list(callback_query: types.CallbackQuery):
await callback_query.answer()
@router.callback_query(F.data.startswith("delete_coupon_"),IsAdminFilter())
@router.callback_query(F.data.startswith("delete_coupon_"), IsAdminFilter())
async def handle_delete_coupon(callback_query: types.CallbackQuery):
coupon_code = callback_query.data[len("delete_coupon_") :]
@@ -128,24 +128,29 @@ async def handle_delete_coupon(callback_query: types.CallbackQuery):
await callback_query.answer()
@router.callback_query(F.data == "create_coupon",IsAdminFilter())
@router.callback_query(F.data == "create_coupon", IsAdminFilter())
async def handle_create_coupon(callback_query: types.CallbackQuery, state: FSMContext):
try:
await callback_query.message.delete()
except Exception as e:
logger.error(f"Ошибка при удалении сообщения: {e}")
builder = InlineKeyboardBuilder()
builder.row(InlineKeyboardButton(text="🔙 Назад", callback_data="coupons_editor"))
markup = builder.as_markup()
await callback_query.message.answer(
"<b>Введите данные для создания купона в формате:</b>\n\n"
"<i>код</i> <i>сумма</i> <i>лимит</i>\n\n"
"Пример: <b>'COUPON1 50 5'</b>\n\n",
parse_mode="HTML",
reply_markup=markup,
)
await state.set_state(AdminCouponsState.waiting_for_coupon_data)
await callback_query.answer()
@router.message(AdminCouponsState.waiting_for_coupon_data,IsAdminFilter())
@router.message(AdminCouponsState.waiting_for_coupon_data, IsAdminFilter())
async def process_coupon_data(message: types.Message, state: FSMContext):
text = message.text.strip()
@@ -203,6 +208,7 @@ async def process_coupon_data(message: types.Message, state: FSMContext):
@router.callback_query(F.data == "back_to_coupons_menu")
async def back_to_coupons_menu(callback_query: types.CallbackQuery):
async def back_to_coupons_menu(callback_query: types.CallbackQuery, state: FSMContext):
"""Возвращаем пользователя в меню управления купонами"""
await state.clear()
await show_coupon_management_menu(callback_query)
+2 -1
View File
@@ -22,10 +22,11 @@ class UserEditorState(StatesGroup):
waiting_for_tg_id = State()
displaying_user_info = State()
@router.callback_query(F.data == "admin", IsAdminFilter())
async def handle_admin_callback_query(callback_query: CallbackQuery):
await handle_admin_message(callback_query.message)
@router.message(Command("admin"), F.data == "admin", IsAdminFilter())
async def handle_admin_message(message: types.Message):
+2 -2
View File
@@ -72,8 +72,8 @@ async def handle_pay(callback_query: CallbackQuery):
@router.callback_query(F.data == "back_to_menu")
async def handle_back_to_menu(callback_query: CallbackQuery):
async def handle_back_to_menu(callback_query: CallbackQuery, admin: bool):
await callback_query.message.delete()
trial_status = await get_trial(callback_query.from_user.id)
await send_welcome_message(callback_query.from_user.id, trial_status)
await send_welcome_message(callback_query.from_user.id, trial_status, admin)
await callback_query.answer()
+2 -2
View File
@@ -154,8 +154,8 @@ async def handle_about_vpn(callback_query: CallbackQuery):
@router.callback_query(F.data == "back_to_menu")
async def handle_back_to_menu(callback_query: CallbackQuery):
async def handle_back_to_menu(callback_query: CallbackQuery, admin: bool):
await callback_query.message.delete()
trial_status = await get_trial(callback_query.from_user.id)
await send_welcome_message(callback_query.from_user.id, trial_status)
await send_welcome_message(callback_query.from_user.id, trial_status, admin)
await callback_query.answer()