# 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', '')}
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
+ }
- return {'CLOUDBAR_LOC': CB_LOCATION,
- 'CLOUDBAR_COOKIE_NAME': CB_COOKIE_NAME,
- 'ACTIVE_SERVICE': CB_ACTIVE_SERVICE,
- 'GET_SERVICES_URL': reverse('astakos.im.api.get_services'),
- 'GET_MENU_URL': reverse('astakos.im.api.get_menu')}
+def menu(request):
+ absolute = lambda (url): request.build_absolute_uri(url)
+ 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}