summaryrefslogtreecommitdiffstats
path: root/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'forms.py')
-rw-r--r--forms.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/forms.py b/forms.py
index 459839d..72848ad 100644
--- a/forms.py
+++ b/forms.py
@@ -1,4 +1,4 @@
-from wtforms import HiddenField, PasswordField, validators
+from wtforms import HiddenField, PasswordField, validators, ValidationError
from wtfpeewee.orm import model_form, ModelConverter
from flask.ext.wtf import Form
from utils import Unique, ReadonlyField
@@ -24,7 +24,7 @@ ChangeGroup = model_form(Group, base_class=Form, exclude=['api_id'], field_args=
converter=ModelConverter(overrides={'name': ReadonlyField}))
-CreatePad = model_form(
+_CreatePad = model_form(
Pad, base_class=Form, exclude=['api_id', 'created', 'group'], field_args={
'name': {'validators': [
validators.Required(),
@@ -35,5 +35,20 @@ CreatePad = model_form(
converter=ModelConverter(overrides={'password': PasswordField}))
+class CreatePad(_CreatePad):
+ def __init__(self, formdata=None, obj=None, group=None, prefix='', **kwarg):
+ self.group = group
+ super(CreatePad, self).__init__(formdata, obj, prefix, **kwarg)
+
+ def validate_name(self, field):
+ if self.group is not None:
+ try:
+ Pad.get(Pad.name == field.data, Pad.group == self.group)
+ raise ValidationError(u'A pad with this name already '
+ 'exists in this group.')
+ except Pad.DoesNotExist:
+ pass
+
+
class DeleteForm(Form):
sure = HiddenField('are you sure', default='yes')