Statistics
| Branch: | Tag: | Revision:

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

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