Studio-Yandex-Practicum / ProCharity_back_2.0

bot ProCharity (НКО Фонд Друзья)
13 stars 13 forks source link

Добавить альтернативную обработку кнопки "Изменить настройку уведомлений" #660

Open gorskyolga opened 2 weeks ago

gorskyolga commented 2 weeks ago

При нажатии на эту кнопку в боте сейчас предлагается перейти по ссылке в личный кабинет.

Нужно добавить альтернативную обработку этой кнопки для выбора настроек уведомлений. Переключение используемого варианта обработки кнопки можно сделать через переменную в настройках. Для инфо: Пока сайт не будет обрабатывать эту информацию от бота, новая клавиатура с выбором настроек будет скрыта, а когда функционал будет готов на новой версии сайта, обработку кнопки заменят.

  1. При нажатии на кнопку нужно отображать:

    • сообщение для волонтера: "Выбери, какие уведомления хочешь получать в боте, и нажми кнопку "Готово 👌"";
    • сообщение для фонда: "Выберите, какие уведомления вы хотите получать в боте, и нажмите кнопку "Готово 👌"";
    • для всех ролей четыре кнопки: "О профиле", "О текущих задачах", "О ProCharity", "Готово 👌".
  2. Пользователь галочками (как при выборе категорий) отмечает, какие уведомления хочет получать.

  3. Результат выбора нужно:

    • сохранять в БД в таблицу external_site_users в поля has_mailing_profile (О профиле), has_mailing_my_tasks (О текущих задачах), has_mailing_procharity (О ProCharity).
    • передавать по энпдоинту сайта. Нужно добавить вызов метода send_user_bot_status из src\core\services\procharity_api.py. В рамках задачи в него будет добавлена передача новых полей. Соответственно в рамках этой задачи нужно просто добавить вызов метода без проверки, какие именно поля передаются по эндпоинту.
  4. После нажатия кнопки "Готово 👌" нужно отображать сообщение:

    • для волонтера: "Настройки уведомлений сохранены. Ты можешь изменить их в любой момент в меню бота или в личном кабинете";
    • для фонда: "Настройки уведомлений сохранены. Вы можете изменить их в любой момент в меню бота или в личном кабинете";
    • и для всех ролей кнопку "Вернуться в меню".