diff --git a/README.md b/README.md index 114f415..fd5920d 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,11 @@ # Бот для записи на курсы и мероприятия от школы фасциопатии +# Бот для записи на курсы и мероприятия от школы фасциопатии ## Текущие возможности **Администраторы могут:** - [x] Редактировать свой профиль +- [x] Создавать мероприятия - [x] Создавать мероприятия - (указав дату, время, название, описание) - [ ] Редактировать мероприятия @@ -23,13 +25,22 @@ - [x] Просматривать информацию о мероприятии - [ ] Регистрироваться на мероприятие - [ ] Отменять регистрацию на мероприятие +- [x] Просматривать список мероприятий +- [x] Просматривать информацию о мероприятии +- [ ] Регистрироваться на мероприятие +- [ ] Отменять регистрацию на мероприятие --- ## Планируемые возможности - Прямая ссылка на мероприятие извне бота +- Прямая ссылка на мероприятие извне бота - Подтверждение регистрации администратором - Число записавшихся на мероприятие пользователей у администратора - Уведомление пользователям о изменении мероприятия, на которые они подписаны - Значок о регистрации на мероприятие в списке мероприятий у пользователя +- Выгружать людей записавшихся на мероприятие в виде Excel файла +- Число записавшихся на мероприятие пользователей у администратора +- Уведомление пользователям о изменении мероприятия, на которые они подписаны +- Значок о регистрации на мероприятие в списке мероприятий у пользователя - Выгружать людей записавшихся на мероприятие в виде Excel файла \ No newline at end of file diff --git a/app/bot/dialogs/flows/events/dialogs.py b/app/bot/dialogs/flows/events/dialogs.py index 6a022ec..788c86e 100644 --- a/app/bot/dialogs/flows/events/dialogs.py +++ b/app/bot/dialogs/flows/events/dialogs.py @@ -4,7 +4,11 @@ from aiogram_dialog.widgets.text import Case, Const, Format, Jinja from app.bot.dialogs.templates import event_template +<<<<<<< HEAD from .getters import event_getter, events_list_getter, registration_getter +======= +from .getters import event_getter, events_list_getter +>>>>>>> 7e5939394de1e40064ccf364bcfabbbd117d5d32 from .handlers import change_registration, on_event_selected from .states import EventsSG @@ -31,7 +35,10 @@ events_dialog = Dialog( [Const("зарегистрироваться"), Const("отменить регистрацию")], selector="is_registered_to_event", ), +<<<<<<< HEAD id="change_registration_btn", +======= +>>>>>>> 7e5939394de1e40064ccf364bcfabbbd117d5d32 on_click=change_registration, ), Back(Const("Назад")), diff --git a/app/bot/dialogs/flows/events/getters.py b/app/bot/dialogs/flows/events/getters.py index 7be4163..8ea46cc 100644 --- a/app/bot/dialogs/flows/events/getters.py +++ b/app/bot/dialogs/flows/events/getters.py @@ -5,7 +5,10 @@ from app.infrastructure.database.crud import ( get_event_by_id, get_events_list, ) +<<<<<<< HEAD from app.infrastructure.database.enums import UserEventStatus +======= +>>>>>>> 7e5939394de1e40064ccf364bcfabbbd117d5d32 from app.infrastructure.database.models import Event @@ -34,3 +37,11 @@ async def registration_getter(dialog_manager: DialogManager, **kwargs): for ue in user.events ) } + + +async def registraion_getter(dialog_manager: DialogManager, **kwargs): + user = dialog_manager.middleware_data["user"] + event_id = dialog_manager.dialog_data["selected_event"] + return { + "is_registered_to_event": any(ue.event_id == event_id for ue in user.events) + } diff --git a/app/bot/dialogs/flows/events/handlers.py b/app/bot/dialogs/flows/events/handlers.py index 6eac0dc..9b7e869 100644 --- a/app/bot/dialogs/flows/events/handlers.py +++ b/app/bot/dialogs/flows/events/handlers.py @@ -19,6 +19,7 @@ async def on_event_selected( manager.dialog_data["selected_event"] = int(item_id) await manager.next() +<<<<<<< HEAD async def change_registration( callback: CallbackQuery, @@ -39,3 +40,7 @@ async def change_registration( await register_user_to_event( manager.middleware_data["session"], user.id, event_id ) +======= +async def change_registration(): + ... +>>>>>>> 7e5939394de1e40064ccf364bcfabbbd117d5d32 diff --git a/app/infrastructure/database/crud.py b/app/infrastructure/database/crud.py index f09091d..0b546fa 100644 --- a/app/infrastructure/database/crud.py +++ b/app/infrastructure/database/crud.py @@ -104,6 +104,7 @@ async def update_event( event.end_date = end_date await session.commit() return event +<<<<<<< HEAD async def register_user_to_event(session: AsyncSession, user_id: int, event_id: int): @@ -133,3 +134,5 @@ async def unregister_user_to_event(session: AsyncSession, user_id: int, event_id ).scalar_one() user_event.status = UserEventStatus.CANCELLED.value await session.commit() +======= +>>>>>>> 7e5939394de1e40064ccf364bcfabbbd117d5d32