Projet

Général

Profil

0001-template-vars-defined-in-the-database-used-in-templa.patch

Serghei Mihai, 16 février 2014 19:32

Télécharger (3,25 ko)

Voir les différences:

Subject: [PATCH] template vars, defined in the database,  used in template
 contexts and in apps code

 passerelle/base/admin.py              | 3 ++-
 passerelle/base/context_processors.py | 9 +++++++++
 passerelle/base/models.py             | 8 ++++++++
 passerelle/settings.py                | 3 +++
 passerelle/utils.py                   | 6 ++++++
 5 files changed, 28 insertions(+), 1 deletion(-)
 create mode 100644 passerelle/base/context_processors.py
passerelle/base/admin.py
1 1
from django.contrib import admin
2 2

  
3
from .models import ApiUser
3
from .models import ApiUser, TemplateVar
4 4

  
5 5
admin.site.register(ApiUser)
6
admin.site.register(TemplateVar)
passerelle/base/context_processors.py
1
# -*- coding: utf-8 -*-
2

  
3
def template_vars(request):
4
    """
5
    returns a dict with all the template vars
6
    """
7
    from .models import TemplateVar
8

  
9
    return dict((obj.name, obj.value) for obj in TemplateVar.objects.all())
passerelle/base/models.py
19 19
        return u'%s <%s>' % (self.fullname, self.username)
20 20

  
21 21

  
22
class TemplateVar(models.Model):
23
    name = models.CharField(max_length=64)
24
    value = models.CharField(max_length=128)
25

  
26
    def __unicode__(self):
27
        return u'%s - %s' % (self.name, self.value)
28

  
29

  
22 30
class InheritanceManager(ModelUtilsInheritanceManager):
23 31

  
24 32
    def get_slug(self, slug, request=None):
passerelle/settings.py
114 114
    'django.core.context_processors.tz',
115 115
    'django.core.context_processors.request',
116 116
    'django.contrib.messages.context_processors.messages',
117
    'passerelle.base.context_processors.template_vars',
117 118
)
118 119

  
119 120

  
......
202 203
    from local_settings import *
203 204
except ImportError:
204 205
    pass
206

  
207

  
passerelle/utils.py
2 2
from jsonresponse import to_json, DEFAULT_DEBUG, CALLBACK_NAME, HttpResponse
3 3
from django.core.serializers.json import DjangoJSONEncoder
4 4

  
5
from .base.context_processors import template_vars
6

  
5 7
class custom_to_json(to_json):
6 8
    def __init__(self, serializer_type, error_code = 500, raises = (), **kwargs):
7 9
        super(custom_to_json, self).__init__(serializer_type, error_code)
......
29 31
            return self.render_data(req, response, self.error_code)
30 32

  
31 33
to_json = custom_to_json
34

  
35
def get_template_vars():
36
    from django.http import HttpRequest
37
    return template_vars(HttpRequest())
32
-