Merge branch 'master' of https://code.grnet.gr/git/astakos
[astakos] / snf-astakos-app / astakos / im / context_processors.py
index ac48a17..31ba885 100644 (file)
@@ -32,8 +32,9 @@
 # or implied, of GRNET S.A.
 
 from astakos.im.settings import IM_MODULES, INVITATIONS_ENABLED, IM_STATIC_URL, \
-        COOKIE_NAME, LOGIN_MESSAGES, PROFILE_EXTRA_LINKS
-from astakos.im.api import get_menu
+        COOKIE_NAME, LOGIN_MESSAGES, SIGNUP_MESSAGES, PROFILE_MESSAGES, \
+        GLOBAL_MESSAGES, PROFILE_EXTRA_LINKS
+from astakos.im.api.admin import get_menu
 from astakos.im.util import get_query
 
 from django.conf import settings
@@ -56,15 +57,38 @@ def media(request):
     return {'IM_STATIC_URL' : IM_STATIC_URL}
 
 def custom_messages(request):
+    global GLOBAL_MESSAGES, SIGNUP_MESSAGES, LOGIN_MESSAGES, PROFILE_MESSAGES
+
+    # keep backwards compatibility with dict settings
+    if type(GLOBAL_MESSAGES) == dict:
+        GLOBAL_MESSAGES = GLOBAL_MESSAGES.items()
+    if type(SIGNUP_MESSAGES) == dict:
+        SIGNUP_MESSAGES = SIGNUP_MESSAGES.items()
+    if type(LOGIN_MESSAGES) == dict:
+        LOGIN_MESSAGES = LOGIN_MESSAGES.items()
+    if type(PROFILE_MESSAGES) == dict:
+        PROFILE_MESSAGES = PROFILE_MESSAGES.items()
+
+    EXTRA_MESSAGES_SET = bool(GLOBAL_MESSAGES or SIGNUP_MESSAGES or \
+            LOGIN_MESSAGES or PROFILE_MESSAGES)
+
     return {
+            'GLOBAL_MESSAGES' : GLOBAL_MESSAGES,
+            'SIGNUP_MESSAGES' : SIGNUP_MESSAGES,
             'LOGIN_MESSAGES' : LOGIN_MESSAGES,
-            'PROFILE_EXTRA_LINKS' : PROFILE_EXTRA_LINKS
+            'PROFILE_MESSAGES' : PROFILE_MESSAGES,
+            'PROFILE_EXTRA_LINKS' : PROFILE_EXTRA_LINKS,
+            'EXTRA_MESSAGES_SET' : EXTRA_MESSAGES_SET
            }
 
 def menu(request):
     absolute = lambda (url): request.build_absolute_uri(url)
     resp = get_menu(request, True, False)
-    menu_items = json.loads(resp.content)[1:]
-    for item in menu_items:
-        item['is_active'] = absolute(request.path) == item['url']
-    return {'menu':menu_items}
+    try:
+        menu_items = json.loads(resp.content)[1:]
+    except Exception, e:
+        return {}
+    else:
+        for item in menu_items:
+            item['is_active'] = absolute(request.path) == item['url']
+        return {'menu':menu_items}