Spaces:
Runtime error
Runtime error
from aiogram import Router, F | |
from aiogram.types import Message, CallbackQuery | |
from aiogram.fsm.context import FSMContext | |
from app.database import requests as rq | |
from app.keyboards import admin_keyboards as kb | |
from app.states import AdminAddService, AdminStates | |
from app.middleware.authentification import admin_check | |
router = Router() | |
async def catalog_editor_start(message: Message): | |
if not await admin_check(message, {}): | |
await message.answer("У вас нет доступа к админ-панели") | |
return | |
await message.answer( | |
'Текущие услуги. Нажмите на услугу для редактирования', | |
reply_markup=await kb.admin_keyboard_service_catalog() | |
) | |
async def edit_service(callback: CallbackQuery): | |
await callback.answer('') | |
service = await rq.get_service_info(callback.data.split('_')[2]) | |
await callback.message.answer(f'Услуга {service.service_name} \n\n' | |
f'Описание: {service.service_description}\n' | |
f'Цена: {service.service_price} рублей \n\n' | |
f'Что Вы хотите изменить?', | |
reply_markup=await kb.admin_change_service(service.id)) | |
async def add_service(callback: CallbackQuery, state: FSMContext): | |
await callback.answer('Добавляем услугу') | |
await state.set_state(AdminAddService.admin_add_name) | |
await callback.message.answer('Введите название новой услуги') | |
async def add_name(message: Message, state: FSMContext): | |
await state.update_data(name=message.text) | |
await state.set_state(AdminAddService.admin_add_desc) | |
await message.answer('Введите описание новой услуги') | |
async def add_desc(message: Message, state: FSMContext): | |
await state.update_data(desc=message.text) | |
await state.set_state(AdminAddService.admin_add_price) | |
await message.answer('Введите цену услуги в рублях') | |
async def add_price(message: Message, state: FSMContext): | |
await state.update_data(price=message.text) | |
data = await state.get_data() | |
await rq.add_service(data['name'], data['desc'], data['price'], True) | |
await message.answer('Услуга сохранена! Теперь можно изменить ее, выбрав услугу в меню и отредактировав', | |
reply_markup=kb.admin_back) | |
await state.clear() | |
async def begin_service_edit(callback: CallbackQuery, state: FSMContext): | |
await callback.answer('') | |
await state.set_state(AdminStates.admin_edit_service) | |
await state.update_data(service_id=callback.data.split('_')[2]) | |
await state.update_data(parameter_changed=callback.data.split("_")[1]) | |
replace_dict = {'name': 'ое название', 'desc': 'ое описание', 'price': 'ую цену'} | |
await callback.message.answer(f'Введите нов{replace_dict[callback.data.split("_")[1]]} услуги') | |
async def finish_service_edit(message: Message, state: FSMContext): | |
await state.update_data(change=message.text) | |
data = await state.get_data() | |
await rq.edit_service(data['service_id'], data['parameter_changed'], data['change'], True) | |
await state.clear() | |
await message.answer(f'Информация была обновлена, можно вернуться на главную', reply_markup=kb.admin_back) | |
async def confirm_service_deletion(callback: CallbackQuery, state: FSMContext): | |
await callback.answer('') | |
await state.set_state(AdminStates.admin_delete_service) | |
await state.update_data(serv_id=callback.data.split("_")[1]) | |
await callback.message.answer(f'Вы уверены, что хотите удалить услугу?', | |
reply_markup=kb.yes_no_keyboard) | |
async def delete_or_not_delete(message: Message, state: FSMContext): | |
if message.text == 'Нет': | |
await state.clear() | |
await message.answer('Тогда вернемся в меню :)', reply_markup=kb.admin_back) | |
if message.text == 'Да': | |
data = await state.get_data() | |
await rq.delete_service(data['serv_id']) | |
await state.clear() | |
await message.answer('Услуга была успешно удалена! Можно вернуться в меню', reply_markup=kb.admin_back) | |
async def return_to_main(callback: CallbackQuery): | |
await callback.answer('Возвращаемся в меню') | |
await callback.message.answer('Здравствуйте! Что Вы хотите сделать?', reply_markup=kb.admin_main) |