Source code for socialregistration.templatetags
from django import template
from django.utils.translation import ugettext_lazy as _
register = template.Library()
[docs]def resolve(what, context):
try:
return template.Variable(what).resolve(context)
except template.VariableDoesNotExist:
return what
[docs]def get_bits(token):
bits = token.split_contents()
return [bit.replace("'","").replace('"','') for bit in bits[1:]]
[docs]def button(template_name):
def tag(parser, token):
return ButtonTag(template_name, get_bits(token))
return tag
[docs]class ButtonTag(template.Node):
def __init__(self, template_name, params = []):
self.template_name = template_name
self.params = params
[docs] def render(self, context):
if not 'request' in context:
raise AttributeError(_("Please add 'django.core.context_processors.request' "
"'to your settings.TEMPLATE_CONTEXT_PROCESSORS'"))
button = ''.join([resolve(bit, context) for bit in self.params])
return template.loader.render_to_string(self.template_name, {
'button': button}, context)