diff options
author | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2016-01-12 03:16:01 +0100 |
---|---|---|
committer | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2016-01-12 04:05:49 +0100 |
commit | 4d81829ff47208ffe19eb3bd2d472a5344844374 (patch) | |
tree | 9433dcdd30599c1dd286671060aa7db1dfb07dab | |
parent | b275ac6f8a0589f5a3f0b93a74b7307ff3a996c2 (diff) | |
download | padlite-teams-4d81829ff47208ffe19eb3bd2d472a5344844374.tar.gz padlite-teams-4d81829ff47208ffe19eb3bd2d472a5344844374.tar.bz2 padlite-teams-4d81829ff47208ffe19eb3bd2d472a5344844374.zip |
forms: Fix customization of input fields
The sqlalchemy extension of wtforms does not allow to customize the generated
field for specific columns, but only the generated widget.
-rw-r--r-- | forms.py | 13 | ||||
-rw-r--r-- | utils/forms.py | 7 |
2 files changed, 7 insertions, 13 deletions
@@ -2,11 +2,12 @@ from flask.ext.wtf import Form from wtforms import StringField, HiddenField, PasswordField, BooleanField, \ validators, ValidationError from wtforms.ext.sqlalchemy.orm import model_form, ModelConverter +from wtforms.widgets import PasswordInput from app import db from models import Group, Pad -from utils.forms import Unique, ReadonlyField, RedirectMixin -from utils.widgets import TextArea +from utils.forms import Unique, RedirectMixin +from utils.widgets import TextArea, Static CreateGroup = model_form( @@ -31,11 +32,11 @@ CreateGroup = model_form( ChangeGroup = model_form( Group, base_class=Form, only=['name', 'description', 'public', 'browsable'], field_args={ + 'name': {'widget': Static()}, 'description': {'widget': TextArea(rows=7)}, 'public': {'validators': []}, 'browsable': {'validators': []}, }, - converter=ModelConverter({'name': ReadonlyField}), db_session=db.session) @@ -49,8 +50,8 @@ _CreatePad = model_form( validators.Regexp('^[a-zA-Z1-9]', message=u'Pad name should not ' 'start with a special character.')]}, 'public': {'validators': []}, + 'password': {'widget': PasswordInput()}, }, - converter=ModelConverter({'password': PasswordField}), db_session=db.session) @@ -69,10 +70,10 @@ class CreatePad(_CreatePad): ChangePad = model_form( Pad, base_class=Form, exclude=['api_id', 'created', 'group'], field_args={ + 'name': {'widget': Static()}, 'public': {'validators': []}, + 'password': {'widget': PasswordInput()}, }, - converter=ModelConverter({'password': PasswordField, - 'name': ReadonlyField}), db_session=db.session) diff --git a/utils/forms.py b/utils/forms.py index 59afe61..01120d0 100644 --- a/utils/forms.py +++ b/utils/forms.py @@ -19,13 +19,6 @@ class Unique(object): raise ValidationError(self.message) -class ReadonlyField(Field): - widget = Static() - - def process_formdata(self, _): - pass - - class RedirectMixin(object): next = HiddenField() |