summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-03-01 23:18:25 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-03-08 11:39:56 +0100
commit2113b7baf70571b22db3fd78d3bcf1c88352d32d (patch)
tree621d46dcd4d707f3a3bcf813593028101b9cf9d2
parent1b6f46cb1b9181cf82c3c5b8f5b5ed80ab72c327 (diff)
downloadIshtar-2113b7baf70571b22db3fd78d3bcf1c88352d32d.tar.bz2
Ishtar-2113b7baf70571b22db3fd78d3bcf1c88352d32d.zip
Message mecanism with session ID
-rw-r--r--ishtar_common/context_processors.py9
-rw-r--r--ishtar_common/templates/base.html10
-rw-r--r--ishtar_common/utils.py11
3 files changed, 29 insertions, 1 deletions
diff --git a/ishtar_common/context_processors.py b/ishtar_common/context_processors.py
index 437ceb677..90817776f 100644
--- a/ishtar_common/context_processors.py
+++ b/ishtar_common/context_processors.py
@@ -43,12 +43,19 @@ def get_base_context(request):
menu = Menu(request.user)
menu.init()
request.session['MENU'] = menu
- """ # temporary disabled
+ """ # menu is now in cache - put it back in session later?
current_action = None
if 'CURRENT_ACTION' in request.session:
dct['CURRENT_ACTION'] = request.session['CURRENT_ACTION']
current_action = dct['CURRENT_ACTION']
dct['CURRENT_PATH'] = request.path
+
+ # messages
+ dct['MESSAGES'] = []
+ if 'messages' in request.session and request.session['messages']:
+ for message, message_type in request.session['messages']:
+ dct['MESSAGES'].append((message, message_type))
+ request.session['messages'] = []
menu = Menu(request.user, current_action=current_action,
session=request.session)
menu.init()
diff --git a/ishtar_common/templates/base.html b/ishtar_common/templates/base.html
index fa43df6bc..c11ae524e 100644
--- a/ishtar_common/templates/base.html
+++ b/ishtar_common/templates/base.html
@@ -97,6 +97,16 @@
<div id="window_wrapper">
<div id="window" role="tablist"></div>
</div>
+ {% if MESSAGES %}{% for message, message_type in MESSAGES %}
+ <div class="alert alert-{{message_type}} alert-dismissible fade show"
+ role="alert">
+ {{message}}
+ <button type="button" class="close" data-dismiss="alert"
+ aria-label="Close">
+ <span aria-hidden="true">&times;</span>
+ </button>
+ </div>
+ {% endfor %}{% endif %}
{% if warnings %}{% for warning in warnings %}
<div class="alert alert-warning alert-dismissible fade show" role="alert">
{{warning}}<button type="button" class="close" data-dismiss="alert" aria-label="Close">
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py
index 8524b6bca..675b840ca 100644
--- a/ishtar_common/utils.py
+++ b/ishtar_common/utils.py
@@ -26,6 +26,7 @@ import random
from django import forms
from django.conf import settings
from django.contrib.gis.geos import GEOSGeometry
+from django.contrib.sessions.backends.db import SessionStore
from django.core.cache import cache
from django.core.urlresolvers import reverse
from django.utils.datastructures import MultiValueDict as BaseMultiValueDict
@@ -372,3 +373,13 @@ def merge_tsvectors(vectors):
for k in result_dict])
return result
+
+
+def put_session_message(session_key, message, message_type):
+ session = SessionStore(session_key=session_key)
+ messages = []
+ if 'messages' in session:
+ messages = session['messages'][:]
+ messages.append((message, message_type))
+ session['messages'] = messages
+ session.save()