Merge branch 'master' of https://code.grnet.gr/git/astakos
[astakos] / snf-astakos-app / astakos / im / context_processors.py
index 647e0e4..31ba885 100644 (file)
 # or implied, of GRNET S.A.
 
 from astakos.im.settings import IM_MODULES, INVITATIONS_ENABLED, IM_STATIC_URL, \
-        COOKIE_NAME
-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
 from django.core.urlresolvers import reverse
@@ -43,7 +45,7 @@ def im_modules(request):
     return {'im_modules': IM_MODULES}
 
 def next(request):
-    return {'next' : request.GET.get('next', '')}
+    return {'next' : get_query(request).get('next', '')}
 
 def code(request):
     return {'code' : request.GET.get('code', '')}
@@ -54,10 +56,39 @@ def invitations(request):
 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_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)
-    menu_items = json.loads(resp.content)[1:]
-    for item in menu_items:
-        item['is_active'] = absolute(request.path) == item['url']
-    return {'menu':menu_items}
+    resp = get_menu(request, True, False)
+    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}