summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alex@spline.inf.fu-berlin.de>2016-01-12 03:16:01 +0100
committerAlexander Sulfrian <alex@spline.inf.fu-berlin.de>2016-01-12 04:05:49 +0100
commit4d81829ff47208ffe19eb3bd2d472a5344844374 (patch)
tree9433dcdd30599c1dd286671060aa7db1dfb07dab
parentb275ac6f8a0589f5a3f0b93a74b7307ff3a996c2 (diff)
downloadpadlite-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.py13
-rw-r--r--utils/forms.py7
2 files changed, 7 insertions, 13 deletions
diff --git a/forms.py b/forms.py
index 9a2ea85..e1dab0f 100644
--- a/forms.py
+++ b/forms.py
@@ -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()