root / snf-webproject / synnefo / webproject / context_processors.py @ 49044e69
History | View | Annotate | Download (2.3 kB)
1 | 9af7206b | Kostas Papadimitriou | from django.utils.safestring import mark_safe |
---|---|---|---|
2 | 9af7206b | Kostas Papadimitriou | from django.conf import settings |
3 | 9af7206b | Kostas Papadimitriou | |
4 | 762b93d7 | Christos Stavrakakis | |
5 | 9af7206b | Kostas Papadimitriou | def cloudbar(request): |
6 | 9af7206b | Kostas Papadimitriou | """
|
7 | 9af7206b | Kostas Papadimitriou | Django context processor that applies all cloudbar settings in response
|
8 | 9af7206b | Kostas Papadimitriou | context plus a ready to use pre rendered script html tag containing valid
|
9 | 9af7206b | Kostas Papadimitriou | javascript code for cloudbar to display.
|
10 | 9af7206b | Kostas Papadimitriou |
|
11 | 49044e69 | Christos Stavrakakis | To use it add ``synnefo.webproject.context_processors.cloudbar`` in your
|
12 | 49044e69 | Christos Stavrakakis | project's ``TEMPLATE_CONTEXT_PROCESSORS setting`` (snf-webproject already
|
13 | 49044e69 | Christos Stavrakakis | does).
|
14 | 9af7206b | Kostas Papadimitriou |
|
15 | 9af7206b | Kostas Papadimitriou | Then in your base html template::
|
16 | 9af7206b | Kostas Papadimitriou |
|
17 | 9af7206b | Kostas Papadimitriou | <html>
|
18 | 9af7206b | Kostas Papadimitriou | ....
|
19 | 9af7206b | Kostas Papadimitriou | <head>
|
20 | 9af7206b | Kostas Papadimitriou | ...
|
21 | 9af7206b | Kostas Papadimitriou | {% if CLOUDBAR_ACTIVE %}
|
22 | 9af7206b | Kostas Papadimitriou | {{ CLOUDBAR_CODE }}
|
23 | 9af7206b | Kostas Papadimitriou | {% endif %}
|
24 | 9af7206b | Kostas Papadimitriou | </head>
|
25 | 9af7206b | Kostas Papadimitriou | <body>
|
26 | 9af7206b | Kostas Papadimitriou | ....
|
27 | 9af7206b | Kostas Papadimitriou | </body>
|
28 | 9af7206b | Kostas Papadimitriou | </html>
|
29 | 9af7206b | Kostas Papadimitriou |
|
30 | 9af7206b | Kostas Papadimitriou |
|
31 | 9af7206b | Kostas Papadimitriou | """
|
32 | 9af7206b | Kostas Papadimitriou | |
33 | 9af7206b | Kostas Papadimitriou | CB_ACTIVE = getattr(settings, 'CLOUDBAR_ACTIVE', True) |
34 | fb814235 | Kostas Papadimitriou | CB_LOCATION = getattr(settings, 'CLOUDBAR_LOCATION') |
35 | 9af7206b | Kostas Papadimitriou | CB_COOKIE_NAME = getattr(settings, 'CLOUDBAR_COOKIE_NAME', |
36 | 9af7206b | Kostas Papadimitriou | 'okeanos_account')
|
37 | fb814235 | Kostas Papadimitriou | CB_SERVICES_URL = getattr(settings, 'CLOUDBAR_SERVICES_URL') |
38 | fb814235 | Kostas Papadimitriou | CB_MENU_URL = getattr(settings, 'CLOUDBAR_MENU_URL') |
39 | 7f7863bb | Kostas Papadimitriou | CB_HEIGHT = getattr(settings, 'CLOUDBAR_HEIGHT', |
40 | 7f7863bb | Kostas Papadimitriou | '35')
|
41 | 7f7863bb | Kostas Papadimitriou | CB_BGCOLOR = getattr(settings, 'CLOUDBAR_BACKGROUND_COLOR', |
42 | 7f7863bb | Kostas Papadimitriou | '#000000')
|
43 | 9af7206b | Kostas Papadimitriou | |
44 | 9af7206b | Kostas Papadimitriou | CB_CODE = """
|
45 | 9af7206b | Kostas Papadimitriou | <script type="text/javascript">
|
46 | 9af7206b | Kostas Papadimitriou | var CLOUDBAR_LOCATION = "%(location)s";
|
47 | 9af7206b | Kostas Papadimitriou | var CLOUDBAR_COOKIE_NAME = "%(cookie_name)s";
|
48 | 9af7206b | Kostas Papadimitriou | var GET_SERVICES_URL = "%(services_url)s";
|
49 | 9af7206b | Kostas Papadimitriou | var GET_MENU_URL = "%(menu_url)s";
|
50 | 7f7863bb | Kostas Papadimitriou | var CLOUDBAR_HEIGHT = '%(height)s';
|
51 | 9af7206b | Kostas Papadimitriou |
|
52 | 9af7206b | Kostas Papadimitriou | $(document).ready(function(){
|
53 | 9af7206b | Kostas Papadimitriou | $.getScript(CLOUDBAR_LOCATION + 'cloudbar.js');
|
54 | 7f7863bb | Kostas Papadimitriou | });
|
55 | 7f7863bb | Kostas Papadimitriou |
|
56 | 9af7206b | Kostas Papadimitriou | </script>
|
57 | 7f7863bb | Kostas Papadimitriou | <style>
|
58 | 7f7863bb | Kostas Papadimitriou | body {
|
59 | 7f7863bb | Kostas Papadimitriou | border-top: %(height)spx solid %(bg_color)s;
|
60 | 7f7863bb | Kostas Papadimitriou | }
|
61 | 7f7863bb | Kostas Papadimitriou | body .cloudbar {
|
62 | 7f7863bb | Kostas Papadimitriou | height: %(height)spx;
|
63 | 7f7863bb | Kostas Papadimitriou | }
|
64 | 7f7863bb | Kostas Papadimitriou | </style>
|
65 | 9af7206b | Kostas Papadimitriou | """ % {'location': CB_LOCATION, |
66 | 9af7206b | Kostas Papadimitriou | 'cookie_name': CB_COOKIE_NAME,
|
67 | 9af7206b | Kostas Papadimitriou | 'services_url': CB_SERVICES_URL,
|
68 | 7f7863bb | Kostas Papadimitriou | 'menu_url': CB_MENU_URL,
|
69 | 7f7863bb | Kostas Papadimitriou | 'height': str(CB_HEIGHT), |
70 | 7f7863bb | Kostas Papadimitriou | 'bg_color': CB_BGCOLOR}
|
71 | 9af7206b | Kostas Papadimitriou | |
72 | 9af7206b | Kostas Papadimitriou | CB_CODE = mark_safe(CB_CODE) |
73 | 9af7206b | Kostas Papadimitriou | |
74 | 9af7206b | Kostas Papadimitriou | return {
|
75 | 9af7206b | Kostas Papadimitriou | 'CLOUDBAR_ACTIVE': CB_ACTIVE,
|
76 | 9af7206b | Kostas Papadimitriou | 'CLOUDBAR_LOCATION': CB_LOCATION,
|
77 | 9af7206b | Kostas Papadimitriou | 'CLOUDBAR_COOKIE_NAME': CB_COOKIE_NAME,
|
78 | 9af7206b | Kostas Papadimitriou | 'CLOUDBAR_SERVICES_URL': CB_SERVICES_URL,
|
79 | 9af7206b | Kostas Papadimitriou | 'CLOUDBAR_MENU_URL': CB_MENU_URL,
|
80 | 9af7206b | Kostas Papadimitriou | 'CLOUDBAR_CODE': CB_CODE
|
81 | 9af7206b | Kostas Papadimitriou | } |