This commit is contained in:
2025-11-14 13:49:37 +03:00
5 changed files with 37 additions and 0 deletions

View File

@@ -1,9 +1,11 @@
# Бот для записи на курсы и мероприятия от школы фасциопатии
# Бот для записи на курсы и мероприятия от школы фасциопатии
## Текущие возможности
**Администраторы могут:**
- [x] Редактировать свой профиль
- [x] Создавать мероприятия
- [x] Создавать мероприятия
- (указав дату, время, название, описание)
- [ ] Редактировать мероприятия
@@ -23,13 +25,22 @@
- [x] Просматривать информацию о мероприятии
- [ ] Регистрироваться на мероприятие
- [ ] Отменять регистрацию на мероприятие
- [x] Просматривать список мероприятий
- [x] Просматривать информацию о мероприятии
- [ ] Регистрироваться на мероприятие
- [ ] Отменять регистрацию на мероприятие
---
## Планируемые возможности
- Прямая ссылка на мероприятие извне бота
- Прямая ссылка на мероприятие извне бота
- Подтверждение регистрации администратором
- Число записавшихся на мероприятие пользователей у администратора
- Уведомление пользователям о изменении мероприятия, на которые они подписаны
- Значок о регистрации на мероприятие в списке мероприятий у пользователя
- Выгружать людей записавшихся на мероприятие в виде Excel файла
- Число записавшихся на мероприятие пользователей у администратора
- Уведомление пользователям о изменении мероприятия, на которые они подписаны
- Значок о регистрации на мероприятие в списке мероприятий у пользователя
- Выгружать людей записавшихся на мероприятие в виде Excel файла

View File

@@ -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("Назад")),

View File

@@ -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)
}

View File

@@ -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

View File

@@ -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