Projet

Général

Profil

« Précédent | Suivant » 

Révision 1a3d8912

Ajouté par Jérôme Schneider il y a presque 10 ans

dossiers: merge administrative forms into one form

Closes #2739

Voir les différences:

calebasse/dossiers/templatetags/dossiers.py
1
import copy
2

  
1 3
from django import template
4
from django import forms
5
from django.utils.datastructures import SortedDict
2 6

  
3 7
register = template.Library()
4 8

  
9
def get_fieldset(parser, token):
10
    try:
11
        name, fields, as_, variable_name, from_, form = token.split_contents()
12
    except ValueError:
13
        raise template.TemplateSyntaxError('bad arguments for %r'  % token.split_contents()[0])
14

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

  
17
get_fieldset = register.tag(get_fieldset)
18

  
19

  
20
class FieldSetNode(template.Node):
21
    def __init__(self, fields, variable_name, form_variable):
22
        self.fields = fields
23
        self.variable_name = variable_name
24
        self.form_variable = form_variable
25

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

  
32
        return u''
33

  
5 34
def phone(value):
6 35
    result = ""
7 36
    if len(value) == 10:

Formats disponibles : Unified diff