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 отмечать уведомления для чтения и обновления списка в реальном времени?