Merge branch 'master' of https://code.grnet.gr/git/astakos
[astakos] / snf-astakos-app / astakos / im / context_processors.py
index 029e9c8..31ba885 100644 (file)
 # or implied, of GRNET S.A.
 
 from astakos.im.settings import IM_MODULES, INVITATIONS_ENABLED, IM_STATIC_URL, \
-        COOKIE_NAME
+        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
+from django.utils import simplejson as json
 
 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', '')}
@@ -51,18 +56,39 @@ def invitations(request):
 def media(request):
     return {'IM_STATIC_URL' : IM_STATIC_URL}
 
-def cloudbar(request):
-    """
-    Cloudbar configuration
-    """
-    CB_LOCATION = getattr(settings, 'CLOUDBAR_LOCATION', IM_STATIC_URL + 'cloudbar/')
-    CB_COOKIE_NAME = getattr(settings, 'CLOUDBAR_COOKIE_NAME', COOKIE_NAME)
-    CB_ACTIVE_SERVICE = getattr(settings, 'CLOUDBAR_ACTIVE_SERVICE', 'cloud')
-    
+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)
-    
-    return {'CLOUDBAR_LOC': CB_LOCATION,
-            'CLOUDBAR_COOKIE_NAME': CB_COOKIE_NAME,
-            'ACTIVE_SERVICE': CB_ACTIVE_SERVICE,
-            'GET_SERVICES_URL': absolute(reverse('astakos.im.api.get_services')),
-            'GET_MENU_URL': absolute(reverse('astakos.im.api.get_menu'))}
+    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}