Add notification system to replace noty

This commit is contained in:
Jan Tuomi
2017-05-13 11:19:39 +03:00
parent b798f62a6b
commit 850ff0a74d
4 changed files with 48 additions and 23 deletions
+30 -23
View File
@@ -5,13 +5,12 @@ from django.views.decorators.csrf import ensure_csrf_cookie
from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseRedirect
from django.core.mail import send_mail
from django.conf import settings
from django.db.models import Max
from django.utils.translation import ugettext as _
import json
import requests
import logging
from django_tables2 import RequestConfig
import html
from members.models import Member, Request, Payment
from members.forms import MemberForm, PaymentForm
@@ -88,7 +87,8 @@ def member_list(request, *args, **kwargs):
context = {
'table': table_html,
'member_count': len(members)
'member_count': len(members),
'notification': request.GET.get('notification', None)
}
return render(request, 'member_list.html', context)
@@ -129,7 +129,11 @@ def member_submit(request, *args, **kwargs):
if form.is_valid():
form.save()
memberlogger.info("Saved new member to member register with the following info: {}".format(form))
return HttpResponseRedirect('/members')
notification = "{} {} {}.".format(_("Successfully added member"),
form.cleaned_data['last_name'],
form.cleaned_data['first_name'])
return HttpResponseRedirect('/members/list?notification={}'.format(html.escape(notification)))
else:
return render(request, 'error.html', {'error': form.errors})
@@ -171,6 +175,19 @@ def member_delete(request, *args, **kwargs):
return resp
@ensure_csrf_cookie
@require_http_methods(["GET"])
@permission_required('members.change_member', login_url='/login')
def member_edit(request, *args, **kwargs):
i = kwargs.pop('index', None)
if i is None:
return HttpResponse(status=500, error="{'error': 'No member id specified'}")
else:
member = Member.objects.get(id=i)
form = MemberForm(instance=member)
return render(request, 'member_edit.html', {'member_id': i, 'form': form})
@ensure_csrf_cookie
@require_http_methods(["GET"])
@permission_required('members.change_member', login_url='/login')
@@ -187,24 +204,12 @@ def application_list(request, *args, **kwargs):
table_html = convert_table_to_html(table, request)
context = {
'table': table_html,
'application_count': application_count
'application_count': application_count,
'notification': request.GET.get('notification', None)
}
return render(request, 'application_list.html', context)
@ensure_csrf_cookie
@require_http_methods(["GET"])
@permission_required('members.change_member', login_url='/login')
def member_edit(request, *args, **kwargs):
i = kwargs.pop('index', None)
if i is None:
return HttpResponse(status=500, error="{'error': 'No member id specified'}")
else:
member = Member.objects.get(id=i)
form = MemberForm(instance=member)
return render(request, 'member_edit.html', {'member_id': i, 'form': form})
@ensure_csrf_cookie
@require_http_methods(["GET"])
@permission_required('members.change_member', login_url='/login')
@@ -235,15 +240,15 @@ def payment_list(request, *args, **kwargs):
table = PaymentTable(payments,
request=request,
exclude=['id'],
attrs={'class': 'table table-bordered table-hover'},
)
attrs={'class': 'table table-bordered table-hover'})
table.paginate(page=request.GET.get('page', 1), per_page=25)
table_html = convert_table_to_html(table, request)
context = {
'table': table_html,
'payment_count': len(payments)
'payment_count': len(payments),
'notification': request.GET.get('notification', None)
}
return render(request, 'payment_list.html', context)
@@ -264,7 +269,9 @@ def payment_submit(request, *args, **kwargs):
if form.is_valid():
form.save()
memberlogger.info("Saved new payment to member register with the following info: {}".format(form))
return HttpResponseRedirect('/members/payments')
notification = "{} {}.".format(_("Successfully added payment for member"),
form.cleaned_data['member'])
return HttpResponseRedirect('/members/payments?notification={}'.format(html.escape(notification)))
else:
return render(request, 'error.html', {'error': form.errors})