summaryrefslogtreecommitdiffstats
path: root/utils/widgets.py
blob: 4ce206f41cfcab351c8f6dd906bde9df243d6638 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import wtforms.widgets.core


class Static(object):
    def __call__(self, field, **kwargs):
        kwargs.setdefault('id', field.id)
        if kwargs['class_'] == 'form-control':
            kwargs['class_'] = 'form-control-static'
        html = ['<p %s>' % wtforms.widgets.core.html_params(**kwargs), field.data,'</p>']
        return wtforms.widgets.core.HTMLString(''.join(html))


class TextArea(wtforms.widgets.core.TextArea):
    def __init__(self, **kwargs):
        self.kwargs = kwargs
        super(TextArea, self).__init__()

    def __call__(self, field, **kwargs):
        for arg in self.kwargs:
            if arg not in kwargs:
                kwargs[arg] = self.kwargs[arg]
        return super(TextArea, self).__call__(field, **kwargs)


class PasswordInput(wtforms.widgets.core.PasswordInput):
    def __init__(self, hide_value=True, **kwargs):
        self.kwargs = kwargs
        super(PasswordInput, self).__init__(hide_value)

    def __call__(self, field, **kwargs):
        for arg in self.kwargs:
            if arg not in kwargs:
                kwargs[arg] = self.kwargs[arg]
        return super(PasswordInput, self).__call__(field, **kwargs)