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
+6
View File
@@ -8,6 +8,12 @@
<h2>{% trans "Member applications" %}</h2> <h2>{% trans "Member applications" %}</h2>
</div> </div>
{% if notification %}
<div class="alert alert-success">
{{ notification }}
</div>
{% endif %}
{{ table|safe }} {{ table|safe }}
</div> </div>
+6
View File
@@ -11,6 +11,12 @@
<h2>{% trans "Member register" %}</h2> <h2>{% trans "Member register" %}</h2>
</div> </div>
{% if notification %}
<div class="alert alert-success">
{{ notification }}
</div>
{% endif %}
{{ table|safe }} {{ table|safe }}
<div> <div>
+6
View File
@@ -8,6 +8,12 @@
<h2>{% trans "Payment events" %}</h2> <h2>{% trans "Payment events" %}</h2>
</div> </div>
{% if notification %}
<div class="alert alert-success">
{{ notification }}
</div>
{% endif %}
{{ table|safe }} {{ table|safe }}
<div> <div>
+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.http import HttpResponse, HttpResponseBadRequest, HttpResponseRedirect
from django.core.mail import send_mail from django.core.mail import send_mail
from django.conf import settings from django.conf import settings
from django.db.models import Max from django.utils.translation import ugettext as _
import json import json
import requests import requests
import logging import logging
import html
from django_tables2 import RequestConfig
from members.models import Member, Request, Payment from members.models import Member, Request, Payment
from members.forms import MemberForm, PaymentForm from members.forms import MemberForm, PaymentForm
@@ -88,7 +87,8 @@ def member_list(request, *args, **kwargs):
context = { context = {
'table': table_html, 'table': table_html,
'member_count': len(members) 'member_count': len(members),
'notification': request.GET.get('notification', None)
} }
return render(request, 'member_list.html', context) return render(request, 'member_list.html', context)
@@ -129,7 +129,11 @@ def member_submit(request, *args, **kwargs):
if form.is_valid(): if form.is_valid():
form.save() form.save()
memberlogger.info("Saved new member to member register with the following info: {}".format(form)) 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: else:
return render(request, 'error.html', {'error': form.errors}) return render(request, 'error.html', {'error': form.errors})
@@ -171,6 +175,19 @@ def member_delete(request, *args, **kwargs):
return resp 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 @ensure_csrf_cookie
@require_http_methods(["GET"]) @require_http_methods(["GET"])
@permission_required('members.change_member', login_url='/login') @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) table_html = convert_table_to_html(table, request)
context = { context = {
'table': table_html, 'table': table_html,
'application_count': application_count 'application_count': application_count,
'notification': request.GET.get('notification', None)
} }
return render(request, 'application_list.html', context) 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 @ensure_csrf_cookie
@require_http_methods(["GET"]) @require_http_methods(["GET"])
@permission_required('members.change_member', login_url='/login') @permission_required('members.change_member', login_url='/login')
@@ -235,15 +240,15 @@ def payment_list(request, *args, **kwargs):
table = PaymentTable(payments, table = PaymentTable(payments,
request=request, request=request,
exclude=['id'], 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.paginate(page=request.GET.get('page', 1), per_page=25)
table_html = convert_table_to_html(table, request) table_html = convert_table_to_html(table, request)
context = { context = {
'table': table_html, 'table': table_html,
'payment_count': len(payments) 'payment_count': len(payments),
'notification': request.GET.get('notification', None)
} }
return render(request, 'payment_list.html', context) return render(request, 'payment_list.html', context)
@@ -264,7 +269,9 @@ def payment_submit(request, *args, **kwargs):
if form.is_valid(): if form.is_valid():
form.save() form.save()
memberlogger.info("Saved new payment to member register with the following info: {}".format(form)) 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: else:
return render(request, 'error.html', {'error': form.errors}) return render(request, 'error.html', {'error': form.errors})