aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/edit/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/edit/forms.py')
-rw-r--r--mediagoblin/edit/forms.py42
1 files changed, 31 insertions, 11 deletions
diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py
index c0bece8b..83e83c3c 100644
--- a/mediagoblin/edit/forms.py
+++ b/mediagoblin/edit/forms.py
@@ -24,8 +24,20 @@ from mediagoblin.tools.metadata import DEFAULT_SCHEMA, DEFAULT_CHECKER
from mediagoblin.auth.tools import normalize_user_or_email_field
+class WebsiteField(wtforms.StringField):
+ """A field that expects a website URL but adds http:// if not provided."""
+ def process_formdata(self, valuelist):
+ if valuelist:
+ data = valuelist[0]
+ if not data.startswith((u'http://', u'https://')):
+ data = u'http://' + data
+ self.data = data
+ else:
+ super(WebsiteField, self).process_formdata(valuelist)
+
+
class EditForm(wtforms.Form):
- title = wtforms.TextField(
+ title = wtforms.StringField(
_('Title'),
[wtforms.validators.Length(min=0, max=500)])
description = wtforms.TextAreaField(
@@ -33,12 +45,12 @@ class EditForm(wtforms.Form):
description=_("""You can use
<a href="http://daringfireball.net/projects/markdown/basics">
Markdown</a> for formatting."""))
- tags = wtforms.TextField(
+ tags = wtforms.StringField(
_('Tags'),
[tag_length_validator],
description=_(
"Separate tags by commas."))
- slug = wtforms.TextField(
+ slug = wtforms.StringField(
_('Slug'),
[wtforms.validators.InputRequired(message=_("The slug can't be empty"))],
description=_(
@@ -49,6 +61,7 @@ class EditForm(wtforms.Form):
[wtforms.validators.Optional(),],
choices=licenses_as_choices())
+
class EditProfileForm(wtforms.Form):
bio = wtforms.TextAreaField(
_('Bio'),
@@ -56,10 +69,14 @@ class EditProfileForm(wtforms.Form):
description=_("""You can use
<a href="http://daringfireball.net/projects/markdown/basics">
Markdown</a> for formatting."""))
- url = wtforms.TextField(
+ url = WebsiteField(
_('Website'),
[wtforms.validators.Optional(),
- wtforms.validators.URL(message=_("This address contains errors"))])
+ wtforms.validators.URL(message=_("This address contains errors"))],
+ description=_("www.example.com, http://www.example.com or "
+ "https://www.example.com"))
+
+ location = wtforms.StringField(_('Hometown'))
class EditAccountForm(wtforms.Form):
@@ -78,14 +95,14 @@ class EditAccountForm(wtforms.Form):
class EditAttachmentsForm(wtforms.Form):
- attachment_name = wtforms.TextField(
+ attachment_name = wtforms.StringField(
'Title')
attachment_file = wtforms.FileField(
'File')
class EditCollectionForm(wtforms.Form):
- title = wtforms.TextField(
+ title = wtforms.StringField(
_('Title'),
[wtforms.validators.Length(min=0, max=500), wtforms.validators.InputRequired(message=_("The title can't be empty"))])
description = wtforms.TextAreaField(
@@ -93,7 +110,7 @@ class EditCollectionForm(wtforms.Form):
description=_("""You can use
<a href="http://daringfireball.net/projects/markdown/basics">
Markdown</a> for formatting."""))
- slug = wtforms.TextField(
+ slug = wtforms.StringField(
_('Slug'),
[wtforms.validators.InputRequired(message=_("The slug can't be empty"))],
description=_(
@@ -115,7 +132,7 @@ class ChangePassForm(wtforms.Form):
class ChangeEmailForm(wtforms.Form):
- new_email = wtforms.TextField(
+ new_email = wtforms.StringField(
_('New email address'),
[wtforms.validators.InputRequired(),
normalize_user_or_email_field(allow_user=False)])
@@ -125,6 +142,7 @@ class ChangeEmailForm(wtforms.Form):
description=_(
"Enter your password to prove you own this account."))
+
class MetaDataValidator(object):
"""
Custom validator which runs form data in a MetaDataForm through a jsonschema
@@ -151,9 +169,11 @@ class MetaDataValidator(object):
raise wtforms.validators.ValidationError(
errors.pop())
+
class MetaDataForm(wtforms.Form):
- identifier = wtforms.TextField(_(u'Identifier'),[MetaDataValidator()])
- value = wtforms.TextField(_(u'Value'))
+ identifier = wtforms.StringField(_(u'Identifier'),[MetaDataValidator()])
+ value = wtforms.StringField(_(u'Value'))
+
class EditMetaDataForm(wtforms.Form):
media_metadata = wtforms.FieldList(