Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / context_processors.py @ f534fb96

History | View | Annotate | Download (3 kB)

1 0905ccd2 Sofia Papagiannaki
# Copyright 2011 GRNET S.A. All rights reserved.
2 13858d75 Kostas Papadimitriou
#
3 0905ccd2 Sofia Papagiannaki
# Redistribution and use in source and binary forms, with or
4 0905ccd2 Sofia Papagiannaki
# without modification, are permitted provided that the following
5 0905ccd2 Sofia Papagiannaki
# conditions are met:
6 13858d75 Kostas Papadimitriou
#
7 0905ccd2 Sofia Papagiannaki
#   1. Redistributions of source code must retain the above
8 0905ccd2 Sofia Papagiannaki
#      copyright notice, this list of conditions and the following
9 0905ccd2 Sofia Papagiannaki
#      disclaimer.
10 13858d75 Kostas Papadimitriou
#
11 0905ccd2 Sofia Papagiannaki
#   2. Redistributions in binary form must reproduce the above
12 0905ccd2 Sofia Papagiannaki
#      copyright notice, this list of conditions and the following
13 0905ccd2 Sofia Papagiannaki
#      disclaimer in the documentation and/or other materials
14 0905ccd2 Sofia Papagiannaki
#      provided with the distribution.
15 13858d75 Kostas Papadimitriou
#
16 0905ccd2 Sofia Papagiannaki
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17 0905ccd2 Sofia Papagiannaki
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 0905ccd2 Sofia Papagiannaki
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 0905ccd2 Sofia Papagiannaki
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20 0905ccd2 Sofia Papagiannaki
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 0905ccd2 Sofia Papagiannaki
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 0905ccd2 Sofia Papagiannaki
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23 0905ccd2 Sofia Papagiannaki
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24 0905ccd2 Sofia Papagiannaki
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 0905ccd2 Sofia Papagiannaki
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26 0905ccd2 Sofia Papagiannaki
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 0905ccd2 Sofia Papagiannaki
# POSSIBILITY OF SUCH DAMAGE.
28 13858d75 Kostas Papadimitriou
#
29 0905ccd2 Sofia Papagiannaki
# The views and conclusions contained in the software and
30 0905ccd2 Sofia Papagiannaki
# documentation are those of the authors and should not be
31 0905ccd2 Sofia Papagiannaki
# interpreted as representing official policies, either expressed
32 0905ccd2 Sofia Papagiannaki
# or implied, of GRNET S.A.
33 0905ccd2 Sofia Papagiannaki
34 9b25b9a9 Kostas Papadimitriou
from astakos.im.settings import IM_MODULES, INVITATIONS_ENABLED, IM_STATIC_URL, \
35 9b25b9a9 Kostas Papadimitriou
        COOKIE_NAME
36 f534fb96 Sofia Papagiannaki
from astakos.im.api import get_menu
37 f534fb96 Sofia Papagiannaki
38 9b25b9a9 Kostas Papadimitriou
from django.conf import settings
39 ded3a1b7 Sofia Papagiannaki
from django.core.urlresolvers import reverse
40 f534fb96 Sofia Papagiannaki
from django.utils import simplejson as json
41 0905ccd2 Sofia Papagiannaki
42 0905ccd2 Sofia Papagiannaki
def im_modules(request):
43 92defad4 Sofia Papagiannaki
    return {'im_modules': IM_MODULES}
44 0905ccd2 Sofia Papagiannaki
45 0905ccd2 Sofia Papagiannaki
def next(request):
46 0905ccd2 Sofia Papagiannaki
    return {'next' : request.GET.get('next', '')}
47 0905ccd2 Sofia Papagiannaki
48 0905ccd2 Sofia Papagiannaki
def code(request):
49 0905ccd2 Sofia Papagiannaki
    return {'code' : request.GET.get('code', '')}
50 890b0eaf Sofia Papagiannaki
51 890b0eaf Sofia Papagiannaki
def invitations(request):
52 92defad4 Sofia Papagiannaki
    return {'invitations_enabled' :INVITATIONS_ENABLED}
53 13858d75 Kostas Papadimitriou
54 13858d75 Kostas Papadimitriou
def media(request):
55 4ff98a1e Sofia Papagiannaki
    return {'IM_STATIC_URL' : IM_STATIC_URL}
56 13858d75 Kostas Papadimitriou
57 9b25b9a9 Kostas Papadimitriou
def cloudbar(request):
58 9b25b9a9 Kostas Papadimitriou
    """
59 9b25b9a9 Kostas Papadimitriou
    Cloudbar configuration
60 9b25b9a9 Kostas Papadimitriou
    """
61 9b25b9a9 Kostas Papadimitriou
    CB_LOCATION = getattr(settings, 'CLOUDBAR_LOCATION', IM_STATIC_URL + 'cloudbar/')
62 9b25b9a9 Kostas Papadimitriou
    CB_COOKIE_NAME = getattr(settings, 'CLOUDBAR_COOKIE_NAME', COOKIE_NAME)
63 9b25b9a9 Kostas Papadimitriou
    CB_ACTIVE_SERVICE = getattr(settings, 'CLOUDBAR_ACTIVE_SERVICE', 'cloud')
64 26774255 Sofia Papagiannaki
    
65 26774255 Sofia Papagiannaki
    absolute = lambda (url): request.build_absolute_uri(url)
66 26774255 Sofia Papagiannaki
    
67 9b25b9a9 Kostas Papadimitriou
    return {'CLOUDBAR_LOC': CB_LOCATION,
68 9b25b9a9 Kostas Papadimitriou
            'CLOUDBAR_COOKIE_NAME': CB_COOKIE_NAME,
69 ded3a1b7 Sofia Papagiannaki
            'ACTIVE_SERVICE': CB_ACTIVE_SERVICE,
70 26774255 Sofia Papagiannaki
            'GET_SERVICES_URL': absolute(reverse('astakos.im.api.get_services')),
71 26774255 Sofia Papagiannaki
            'GET_MENU_URL': absolute(reverse('astakos.im.api.get_menu'))}
72 f534fb96 Sofia Papagiannaki
73 f534fb96 Sofia Papagiannaki
def menu(request):
74 f534fb96 Sofia Papagiannaki
    absolute = lambda (url): request.build_absolute_uri(url)
75 f534fb96 Sofia Papagiannaki
    resp = get_menu(request)
76 f534fb96 Sofia Papagiannaki
    menu_items = json.loads(resp.content)[1:]
77 f534fb96 Sofia Papagiannaki
    for item in menu_items:
78 f534fb96 Sofia Papagiannaki
        item['is_active'] = absolute(request.path) == item['url']
79 f534fb96 Sofia Papagiannaki
    return {'menu':menu_items}