Project

General

Profile

Download (1.24 KB) Statistics
| Branch: | Tag: | Revision:
1a3d8912 Jérôme Schneider
import copy

b773431d Jérôme Schneider
from django import template
1a3d8912 Jérôme Schneider
from django import forms
from django.utils.datastructures import SortedDict
b773431d Jérôme Schneider
register = template.Library()

1a3d8912 Jérôme Schneider
def get_fieldset(parser, token):
try:
name, fields, as_, variable_name, from_, form = token.split_contents()
except ValueError:
raise template.TemplateSyntaxError('bad arguments for %r' % token.split_contents()[0])

return FieldSetNode(fields.split(','), variable_name, form)

get_fieldset = register.tag(get_fieldset)


class FieldSetNode(template.Node):
def __init__(self, fields, variable_name, form_variable):
self.fields = fields
self.variable_name = variable_name
self.form_variable = form_variable

def render(self, context):
form = template.Variable(self.form_variable).resolve(context)
new_form = copy.copy(form)
new_form.fields = SortedDict([(key, form.fields[key]) for key in self.fields if key in self.fields])
context[self.variable_name] = new_form

return u''

b773431d Jérôme Schneider
def phone(value):
result = ""
if len(value) == 10:
for i in range(2, 11, 2):
result += value[i-2:i] + " "
result = result[:-1]
else:
result = value
return result

register.filter('phone', phone)