ФорумПрограммированиеPythonDjango → Notifications

Notifications

  • john2dark

    Сообщения: 99 Репутация: N Группа: Адекваты

    Spritz 8 апреля 2016 г. 5:17

    Прижало замутить систему нотификаций для юзверя в джанге.
    У пользователя есть настройки, где он может выбрать о каких событиях ему надо сообщать на веб-морду (alert logs) и/или еще и почтой слать.
    На настройки отдельная табличка, на логи алертов отдельно своя.
    Вопрос вот в чём, как правильно сделать для Джанги, что бы у меня в любой view, из в разных app, был доступ до отправки алерта пользователю, согласно его настроек?
    Т.е. вот к примеру у меня есть вьюшка с def post(...), в ней я пишу чего нить в базу и тут же делаю вызов глобального для всех app в проекте метода

    alert('BLABLA_EVENT', 'Your task #100500 is done. Need to review.')

    И меня не волнует в этом месте, подписан юзер на этот BLABLA_EVENT или нет, система сама там где то определит это и заалертит ему или нет согласно его настройкам.
    Может какие то уже готовые, простые решения есть?

  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 8 апреля 2016 г. 5:32, спустя 14 минут 42 секунды

    @john2dark, можно посмотреть как здесь сделано The messages framework — Документация Django 1.9 [djbook.ru] это простейшая версия того, что ты делаешь, только для "flash-сообщений", без отправки на эмейл

    Спустя 35 сек.

    django/django [github.com]

  • john2dark

    Сообщения: 99 Репутация: N Группа: Адекваты

    Spritz 8 апреля 2016 г. 5:46, спустя 14 минут 21 секунду

    @Sinkler, messages мне не подходит, у меня он уже ездит в проекте но это не то, что нужно.

  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 8 апреля 2016 г. 5:50, спустя 3 минуты 57 секунд

    @john2dark, вопрос не совсем понятен вообще)

    Вопрос вот в чём, как правильно сделать для Джанги, что бы у меня в любой view, из в разных app, был доступ до отправки алерта пользователю, согласно его настроек?

    можете тебе middleware нужен?

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 8 апреля 2016 г. 5:59, спустя 9 минут 16 секунд

    @john2dark, вопрос не совсем понятен вообще)

    Вопрос вот в чём, как правильно сделать для Джанги, что бы у меня в любой view, из в разных app, был доступ до отправки алерта пользователю, согласно его настроек?

    можете тебе middleware нужен?

    @Sinkler, да батарея ж ему нужна!)

    Сапожник без сапог
  • john2dark

    Сообщения: 99 Репутация: N Группа: Адекваты

    Spritz 8 апреля 2016 г. 6:04, спустя 4 минуты 57 секунд

    Я пока сам не знаю на какой уровень это вытаскивать, возможно middleware на process_request, может еще какой то оптимальный путь есть.
    Или уже готовые пакеты. Просто интересно как наиболее оптимально и праведно.

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 8 апреля 2016 г. 6:09, спустя 4 минуты 26 секунд

    хоть функция хоть миддлварь хоть просто функция, хоть внешний сервис - похую, она должна:

    1. отфильтровать то что увдит сейчас и показать это сразу через messages framework
    2. бросить в базу(реляцку, монго, редус, в кеш, в пизду не знаю) и отправить каким то планировщиком когда то там

    разве есть разница как это реализовывать?

    тебе понадобится функция фильтр которая принимает какие то парамтеры сообщения + объект request исходя из которого потом можно проверить какие то параметры юзера, сессии, еще чего нибудь.
    ну и понадобится очередь и ее обработчик, который будет раз в интервал времен уведомление юзеру и слать его по тому каналу который он указал. делов то на час, дольше пиздишь тут :)

    Спустя 38 сек.

    как же меня вот эта вот хуйня заебала пиздец просто, кто нить ебаните туда {% if чтоль?

    Screenshot “Monosnap 2016-04-08 16-09-25.png” [take.ms]

    Сапожник без сапог
  • john2dark

    Сообщения: 99 Репутация: N Группа: Адекваты

    Spritz 8 апреля 2016 г. 6:35, спустя 25 минут 55 секунд

    @phpdude, эт тебе на час работы, а мне, нубасу, это на долгие часы возни :)))
    Хотя ладно, сделаю через мидлварь, видимо это будет проще.

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 8 апреля 2016 г. 6:40, спустя 5 минут 51 секунду

    @john2dark, и что ты в мидлварь сунешь?

    Сапожник без сапог
  • john2dark

    Сообщения: 99 Репутация: N Группа: Адекваты

    Spritz 8 апреля 2016 г. 6:54, спустя 13 минут 26 секунд

    @phpdude, подумал, хуйня какая то надумалась с мидлварем, буду думать дальше. Если события на уровне сервера, то это надо делать через очередь и буду тыркать через Celery по расписанию с отправкой алертов юзеру в таблицу.

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 8 апреля 2016 г. 6:56, спустя 2 минуты 21 секунду

    @john2dark, второй вариант тоже полная хуйня

    Сапожник без сапог
  • john2dark

    Сообщения: 99 Репутация: N Группа: Адекваты

    Spritz 8 апреля 2016 г. 6:58, спустя 1 минуту 27 секунд

    @phpdude, тогда ёбну кофе и буду думать дальше.

  • john2dark

    Сообщения: 99 Репутация: N Группа: Адекваты

    Spritz 8 апреля 2016 г. 7:08, спустя 10 минут 25 секунд

    А с джанго мессаджес до сих пор не знаю как можно очистить сообщения. У меня на некоторых формах есть вывод типа:

    {% if messages %}
      <div class="alert alert-success margin-bottom-30">
        {% for message in messages %}
          {{ message }}
        {% endfor %}
      </div>
    {% endif %}

    И если юзер сразу логиниться на эту форму, то видит сообщение об успешном логине. А предпологается, что только сообщения о манипуляциях с формой.
    На стековере писали как чистить, но что то нихрена не чистит.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!