Fix admin and create coupons
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user