Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / context_processors.py @ 7ee456f7

History | View | Annotate | Download (2.7 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 25d9d4d0 Sofia Papagiannaki
        COOKIE_NAME, LOGIN_MESSAGES, PROFILE_EXTRA_LINKS
36 f534fb96 Sofia Papagiannaki
from astakos.im.api import get_menu
37 0a569195 Sofia Papagiannaki
from astakos.im.util import get_query
38 f534fb96 Sofia Papagiannaki
39 9b25b9a9 Kostas Papadimitriou
from django.conf import settings
40 ded3a1b7 Sofia Papagiannaki
from django.core.urlresolvers import reverse
41 f534fb96 Sofia Papagiannaki
from django.utils import simplejson as json
42 0905ccd2 Sofia Papagiannaki
43 0905ccd2 Sofia Papagiannaki
def im_modules(request):
44 92defad4 Sofia Papagiannaki
    return {'im_modules': IM_MODULES}
45 0905ccd2 Sofia Papagiannaki
46 0905ccd2 Sofia Papagiannaki
def next(request):
47 0a569195 Sofia Papagiannaki
    return {'next' : get_query(request).get('next', '')}
48 0905ccd2 Sofia Papagiannaki
49 0905ccd2 Sofia Papagiannaki
def code(request):
50 0905ccd2 Sofia Papagiannaki
    return {'code' : request.GET.get('code', '')}
51 890b0eaf Sofia Papagiannaki
52 890b0eaf Sofia Papagiannaki
def invitations(request):
53 92defad4 Sofia Papagiannaki
    return {'invitations_enabled' :INVITATIONS_ENABLED}
54 13858d75 Kostas Papadimitriou
55 13858d75 Kostas Papadimitriou
def media(request):
56 4ff98a1e Sofia Papagiannaki
    return {'IM_STATIC_URL' : IM_STATIC_URL}
57 13858d75 Kostas Papadimitriou
58 25d9d4d0 Sofia Papagiannaki
def custom_messages(request):
59 25d9d4d0 Sofia Papagiannaki
    return {
60 25d9d4d0 Sofia Papagiannaki
            'LOGIN_MESSAGES' : LOGIN_MESSAGES,
61 25d9d4d0 Sofia Papagiannaki
            'PROFILE_EXTRA_LINKS' : PROFILE_EXTRA_LINKS
62 25d9d4d0 Sofia Papagiannaki
           }
63 25d9d4d0 Sofia Papagiannaki
64 f534fb96 Sofia Papagiannaki
def menu(request):
65 f534fb96 Sofia Papagiannaki
    absolute = lambda (url): request.build_absolute_uri(url)
66 cb79e2ed Kostas Papadimitriou
    resp = get_menu(request, True, False)
67 7ee456f7 root
    try:
68 7ee456f7 root
        menu_items = json.loads(resp.content)[1:]
69 7ee456f7 root
    except Exception, e:
70 7ee456f7 root
        return {}
71 7ee456f7 root
    else:
72 7ee456f7 root
        for item in menu_items:
73 7ee456f7 root
            item['is_active'] = absolute(request.path) == item['url']
74 7ee456f7 root
        return {'menu':menu_items}