Commit df375701804ecfdc3e61091321ed34bce2986c0b
1 parent
c62b0571
Exists in
master
and in
5 other branches
ajax call is working and notifications html are coming, I've separated notificat…
…ions into a template: notifications.html #158 #80
Showing
7 changed files
with
61 additions
and
39 deletions
Show diff stats
core/context_processors.py
| @@ -5,6 +5,6 @@ def notifications(request): | @@ -5,6 +5,6 @@ def notifications(request): | ||
| 5 | context['notifications'] = None | 5 | context['notifications'] = None |
| 6 | if request.user.is_authenticated: | 6 | if request.user.is_authenticated: |
| 7 | return { | 7 | return { |
| 8 | - 'notifications': Notification.objects.filter(user= request.user, read=False).order_by('-datetime') | 8 | + 'notifications': Notification.objects.filter(user= request.user, read=False).order_by('-datetime')[0:5] |
| 9 | } | 9 | } |
| 10 | return context | 10 | return context |
core/static/js/base/amadeus.js
| @@ -126,4 +126,14 @@ function validarCpfSemAlert(campo,nome,idElementoMensagemErro){ | @@ -126,4 +126,14 @@ function validarCpfSemAlert(campo,nome,idElementoMensagemErro){ | ||
| 126 | return true; | 126 | return true; |
| 127 | } | 127 | } |
| 128 | return retorno; | 128 | return retorno; |
| 129 | -} | ||
| 130 | \ No newline at end of file | 129 | \ No newline at end of file |
| 130 | +} | ||
| 131 | + | ||
| 132 | +/* | ||
| 133 | +This functions get the next 5 notifications from the user given a "step"(an amount) of previous notifications | ||
| 134 | +*/ | ||
| 135 | +function getNotifications(step){ | ||
| 136 | + $.get('/getNotifications', | ||
| 137 | + {'steps':step, 'amount': 5}, function(data){ | ||
| 138 | + console.log(data); | ||
| 139 | + }); | ||
| 140 | +} |
core/static/js/base/header.js
| @@ -6,8 +6,8 @@ $(document).ready(function(){ | @@ -6,8 +6,8 @@ $(document).ready(function(){ | ||
| 6 | /* | 6 | /* |
| 7 | 7 | ||
| 8 | */ | 8 | */ |
| 9 | -function loadNotifications(step){ | ||
| 10 | - $.ajax('/loadNotifications',{ | 9 | +function getNotifications(step){ |
| 10 | + $.ajax('/getNotifications',{ | ||
| 11 | steps: step, | 11 | steps: step, |
| 12 | amount: 5, | 12 | amount: 5, |
| 13 | sucess: function(response){ | 13 | sucess: function(response){ |
core/templates/base.html
| @@ -64,7 +64,7 @@ | @@ -64,7 +64,7 @@ | ||
| 64 | {% include "notifications.html" %} | 64 | {% include "notifications.html" %} |
| 65 | 65 | ||
| 66 | <li> | 66 | <li> |
| 67 | - <a> | 67 | + <a onclick="getNotifications(5)"> |
| 68 | <div class="list-group-item"> | 68 | <div class="list-group-item"> |
| 69 | <div class="row-content"> | 69 | <div class="row-content"> |
| 70 | <p class="list-group-item-text">See More</p> | 70 | <p class="list-group-item-text">See More</p> |
core/templates/notifications.html
| 1 | {% for notification in notifications %} | 1 | {% for notification in notifications %} |
| 2 | - {% if notification.actor %} <!-- if the notification has a user--> | ||
| 3 | - <li> | ||
| 4 | - <a href="{% url 'core:notification_read' notification.id %}"><div class="list-group-item"> | ||
| 5 | - <div class="row-picture"> | ||
| 6 | - <img class="circle" src="http://lorempixel.com/56/56/people/1" alt="icon"> | ||
| 7 | - <div class="least-content pull-right">{{ notification.datetime }}</div> | ||
| 8 | - </div> | ||
| 9 | - <div class="row-content"> | ||
| 10 | - <p class="list-group-item-text">{{ notification.message }}</p> | ||
| 11 | - </div> | ||
| 12 | - </div> | ||
| 13 | - </a> | ||
| 14 | - </li> | ||
| 15 | - {% else %} | ||
| 16 | - <li> | ||
| 17 | - <a href="{% url 'core:notification_read' notification.id %}"> | ||
| 18 | - <div class="list-group-item"> | ||
| 19 | - <div class="row-action-primary"> | ||
| 20 | - <i class="material-icons">folder</i> | ||
| 21 | - </div> | ||
| 22 | - <div class="row-content"> | 2 | + {% if notification.actor %} <!-- if the notification has a user--> |
| 3 | + <li> | ||
| 4 | + <a href="{% url 'core:notification_read' notification.id %}"><div class="list-group-item"> | ||
| 5 | + <div class="row-picture"> | ||
| 6 | + <img class="circle" src="http://lorempixel.com/56/56/people/1" alt="icon"> | ||
| 7 | + <div class="least-content pull-right">{{ notification.datetime }}</div> | ||
| 8 | + </div> | ||
| 9 | + <div class="row-content"> | ||
| 10 | + <p class="list-group-item-text">{{ notification.message }}</p> | ||
| 11 | + </div> | ||
| 12 | + </div> | ||
| 13 | + </a> | ||
| 14 | + </li> | ||
| 15 | + {% else %} | ||
| 16 | + <li> | ||
| 17 | + <a href="{% url 'core:notification_read' notification.id %}"> | ||
| 18 | + <div class="list-group-item"> | ||
| 19 | + <div class="row-action-primary"> | ||
| 20 | + <i class="material-icons">folder</i> | ||
| 21 | + </div> | ||
| 22 | + <div class="row-content"> | ||
| 23 | 23 | ||
| 24 | - <div class="least-content pull-right">{{ notification.datetime }}</div> | 24 | + <div class="least-content pull-right">{{ notification.datetime }}</div> |
| 25 | 25 | ||
| 26 | - <p class="list-group-item-text">{{ notification.message }}</p> | ||
| 27 | - </div> | ||
| 28 | - </a> | ||
| 29 | - </li> | ||
| 30 | - {% endif %} | ||
| 31 | - {% endfor %} | ||
| 32 | \ No newline at end of file | 26 | \ No newline at end of file |
| 27 | + <p class="list-group-item-text">{{ notification.message }}</p> | ||
| 28 | + </div> | ||
| 29 | + </a> | ||
| 30 | + </li> | ||
| 31 | + {% endif %} | ||
| 32 | +{% endfor %} | ||
| 33 | \ No newline at end of file | 33 | \ No newline at end of file |
core/urls.py
| @@ -9,5 +9,6 @@ urlpatterns = [ | @@ -9,5 +9,6 @@ urlpatterns = [ | ||
| 9 | url(r'^register/$', views.RegisterUser.as_view(), name='register'), | 9 | url(r'^register/$', views.RegisterUser.as_view(), name='register'), |
| 10 | url(r'^remember_password/$', views.remember_password, name='remember_password'), | 10 | url(r'^remember_password/$', views.remember_password, name='remember_password'), |
| 11 | url(r'^logout/$', auth_views.logout, {'next_page': 'core:home'}, name='logout'), | 11 | url(r'^logout/$', auth_views.logout, {'next_page': 'core:home'}, name='logout'), |
| 12 | - url(r'^notification/([0-9]+)/$', views.processNotification, name='notification_read') | 12 | + url(r'^notification/([0-9]+)/$', views.processNotification, name='notification_read'), |
| 13 | + url(r'^getNotifications/$', views.getNotifications, name='getNotifications'), | ||
| 13 | ] | 14 | ] |
core/views.py
| @@ -5,6 +5,7 @@ from django.contrib.auth.mixins import LoginRequiredMixin | @@ -5,6 +5,7 @@ from django.contrib.auth.mixins import LoginRequiredMixin | ||
| 5 | from .decorators import log_decorator | 5 | from .decorators import log_decorator |
| 6 | from django.contrib import messages | 6 | from django.contrib import messages |
| 7 | from django.shortcuts import render, redirect | 7 | from django.shortcuts import render, redirect |
| 8 | +from django.template.loader import render_to_string | ||
| 8 | from django.views.generic import CreateView, UpdateView | 9 | from django.views.generic import CreateView, UpdateView |
| 9 | from django.http import HttpResponse, JsonResponse | 10 | from django.http import HttpResponse, JsonResponse |
| 10 | from django.core.mail import send_mail,BadHeaderError | 11 | from django.core.mail import send_mail,BadHeaderError |
| @@ -97,13 +98,23 @@ def processNotification(self, notificationId): | @@ -97,13 +98,23 @@ def processNotification(self, notificationId): | ||
| 97 | 98 | ||
| 98 | 99 | ||
| 99 | 100 | ||
| 100 | -def getNotifications(self, amount, step=0): | ||
| 101 | - if self.request.is_ajax and self.request.user.is_authenticated: | ||
| 102 | - notifications = Notification.objects.filter(user= self.request.user, read=False).orderby('-datetime')[step:amount] | 101 | + |
| 102 | +def getNotifications(request): | ||
| 103 | + context = {} | ||
| 104 | + if request.user.is_authenticated: | ||
| 105 | + | ||
| 106 | + steps = int(request.GET['steps']) | ||
| 107 | + amount = int(request.GET['amount']) | ||
| 108 | + notifications = Notification.objects.filter(user= request.user, read=False).order_by('-datetime')[steps:steps+amount] | ||
| 109 | + context['notifications'] = notifications | ||
| 103 | else: #go to login page | 110 | else: #go to login page |
| 104 | - return response('teste') | 111 | + return HttpResponse('teste') |
| 105 | 112 | ||
| 106 | - return JsonResponse(notifications) | 113 | + |
| 114 | + html = render_to_string("notifications.html", context) | ||
| 115 | + print(html) | ||
| 116 | + return HttpResponse(html) | ||
| 117 | + | ||
| 107 | 118 | ||
| 108 | 119 | ||
| 109 | 120 |