Statistics
| Branch: | Tag: | Revision:

root / snf-branding / synnefo_branding / utils.py @ 9f41ab1e

History | View | Annotate | Download (2.6 kB)

1 b130ec7c Kostas Papadimitriou
# Copyright 2013 GRNET S.A. All rights reserved.
2 b130ec7c Kostas Papadimitriou
#
3 b130ec7c Kostas Papadimitriou
# Redistribution and use in source and binary forms, with or
4 b130ec7c Kostas Papadimitriou
# without modification, are permitted provided that the following
5 b130ec7c Kostas Papadimitriou
# conditions are met:
6 b130ec7c Kostas Papadimitriou
#
7 b130ec7c Kostas Papadimitriou
#   1. Redistributions of source code must retain the above
8 b130ec7c Kostas Papadimitriou
#      copyright notice, this list of conditions and the following
9 b130ec7c Kostas Papadimitriou
#      disclaimer.
10 b130ec7c Kostas Papadimitriou
#
11 b130ec7c Kostas Papadimitriou
#   2. Redistributions in binary form must reproduce the above
12 b130ec7c Kostas Papadimitriou
#      copyright notice, this list of conditions and the following
13 b130ec7c Kostas Papadimitriou
#      disclaimer in the documentation and/or other materials
14 b130ec7c Kostas Papadimitriou
#      provided with the distribution.
15 b130ec7c Kostas Papadimitriou
#
16 b130ec7c Kostas Papadimitriou
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17 b130ec7c Kostas Papadimitriou
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 b130ec7c Kostas Papadimitriou
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 b130ec7c Kostas Papadimitriou
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20 b130ec7c Kostas Papadimitriou
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 b130ec7c Kostas Papadimitriou
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 b130ec7c Kostas Papadimitriou
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23 b130ec7c Kostas Papadimitriou
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24 b130ec7c Kostas Papadimitriou
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 b130ec7c Kostas Papadimitriou
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26 b130ec7c Kostas Papadimitriou
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 b130ec7c Kostas Papadimitriou
# POSSIBILITY OF SUCH DAMAGE.
28 b130ec7c Kostas Papadimitriou
#
29 b130ec7c Kostas Papadimitriou
# The views and conclusions contained in the software and
30 b130ec7c Kostas Papadimitriou
# documentation are those of the authors and should not be
31 b130ec7c Kostas Papadimitriou
# interpreted as representing official policies, either expressed
32 b130ec7c Kostas Papadimitriou
# or implied, of GRNET S.A.
33 b130ec7c Kostas Papadimitriou
34 b130ec7c Kostas Papadimitriou
from django.conf import settings as django_settings
35 9d889386 Olga Brani
from synnefo_branding import settings
36 a2110608 Olga Brani
from django.template.loader import render_to_string as django_render_to_string
37 9d889386 Olga Brani
38 6dd9cc0b Kostas Papadimitriou
39 a2110608 Olga Brani
def get_branding_dict(prepend=None):
40 b130ec7c Kostas Papadimitriou
    # CONTACT_EMAIL may not be a branding setting. We include it here though
41 b130ec7c Kostas Papadimitriou
    # for practial reasons.
42 b130ec7c Kostas Papadimitriou
    dct = {'support': django_settings.CONTACT_EMAIL}
43 6dd9cc0b Kostas Papadimitriou
    for key in dir(settings):
44 6dd9cc0b Kostas Papadimitriou
        if key == key.upper():
45 6dd9cc0b Kostas Papadimitriou
            newkey = key.lower()
46 6dd9cc0b Kostas Papadimitriou
            if prepend:
47 6dd9cc0b Kostas Papadimitriou
                newkey = '%s_%s' % (prepend, newkey)
48 6dd9cc0b Kostas Papadimitriou
            dct[newkey.upper()] = getattr(settings, key)
49 6dd9cc0b Kostas Papadimitriou
    return dct
50 6dd9cc0b Kostas Papadimitriou
51 9d889386 Olga Brani
52 9d889386 Olga Brani
def brand_message(msg, **extra_args):
53 6dd9cc0b Kostas Papadimitriou
    params = get_branding_dict()
54 6dd9cc0b Kostas Papadimitriou
    params.update(extra_args)
55 6dd9cc0b Kostas Papadimitriou
    return msg % params
56 6dd9cc0b Kostas Papadimitriou
57 a2110608 Olga Brani
58 a2110608 Olga Brani
def render_to_string(template_name, dictionary=None, context_instance=None):
59 6dd9cc0b Kostas Papadimitriou
    if not dictionary:
60 6dd9cc0b Kostas Papadimitriou
        dictionary = {}
61 b130ec7c Kostas Papadimitriou
62 9a7d0680 Kostas Papadimitriou
    if isinstance(dictionary, dict):
63 9a7d0680 Kostas Papadimitriou
        newdict = get_branding_dict("BRANDING")
64 9a7d0680 Kostas Papadimitriou
        newdict.update(dictionary)
65 9a7d0680 Kostas Papadimitriou
    else:
66 9a7d0680 Kostas Papadimitriou
        newdict = dictionary
67 b130ec7c Kostas Papadimitriou
68 6dd9cc0b Kostas Papadimitriou
    return django_render_to_string(template_name, newdict, context_instance)