Django-notifications-hq Как в реальном времени обновлять уведомления для чтения

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

Мой пример - это, по сути, это учебник по началу работы, я просто настроил вывод html, перезаписав функцию javascript fill_notification_list: https://pypi.org/project/django-notifications-hq/

У меня есть вывод уведомлений в мой шаблон и я написал функцию для перезаписи стандартной javascript-функции уведомлений. Это просто список уведомлений в виде текстовых элементов. Я хочу пометить все уведомления "unread=False" при нажатии на выпадающий список уведомлений.

Я знаю, что должен пинговать url в моем приложении, чтобы установить уведомления на чтение, а затем обновить список с помощью ajax.

Я начал с:

$('.sh-alert-btn').on('click touch', function(){
  $.get('{% url "notifications:mark_all_as_read" %}', function(response) {
    
  });
});

но я понял, что не знаю, что делать в данный момент.

Это моя пользовательская функция fill_notification_list:

function streamshiv_notify(data) {
  var menus = document.getElementsByClassName('live_notify_list');
  if (menus) {
      var messages = data.unread_list.map(function (item) {
          if(typeof item.verb !== 'undefined'){
              message = message + '<h6>' + item.verb + "</h6>";
          }
          if(typeof item.timestamp !== 'undefined'){
              message = message + '<p>' + new Date(item.timestamp).toLocaleDateString('en-US', {  
                day:   'numeric',
                month: 'short',
                year:  'numeric',
            }); + '</p>';
          }
          var unread = ((item.unread) ? 'unread' : 'read');
          return '<li class="' + unread + '">' + message + '</li>';
      }).join('')

      for (var i = 0; i < menus.length; i++){
          menus[i].innerHTML = messages;
      }
  }
}

Я собирался имитировать это с помощью onclick и после пометить уведомления для чтения, но я не вижу ajax-запроса ни здесь, ни в js-файле пакета: https://github.com/django-notifications/django-notifications/blob/master/notifications/static/notifications/notify.js

Урлы для пакета следующие:

URLs:

{% url 'notifications:all' %}
{% url 'notifications:unread' %}
{% url 'notifications:mark_all_as_read' %} 
{% url 'notifications:mark_as_read' slug= %}
{% url 'notifications:mark_as_unread' slug= %}
{% url 'notifications:delete' slug= %}

api URLs:
{% url 'notifications:live_unread_notification_count' %}
{% url 'notifications:live_all_notification_count' %}
{% url 'notifications:live_unread_notification_list' %}
{% url 'notifications:live_all_notification_list' %}

Как заставить функцию onclick отмечать уведомления для чтения и обновления списка в реальном времени?

Вернуться на верх