Tidy up federation code and add tests to cover more of the APIs
[mediagoblin.git] / mediagoblin / submit / forms.py
1 # GNU MediaGoblin -- federated, autonomous media hosting
2 # Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
3 #
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU Affero General Public License as published by
6 # the Free Software Foundation, either version 3 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU Affero General Public License for more details.
13 #
14 # You should have received a copy of the GNU Affero General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17
18 import wtforms
19
20 from mediagoblin import mg_globals
21 from mediagoblin.tools.text import tag_length_validator
22 from mediagoblin.tools.translate import lazy_pass_to_ugettext as _
23 from mediagoblin.tools.licenses import licenses_as_choices
24
25
26 def get_submit_start_form(form, **kwargs):
27 max_file_size = kwargs.get('max_file_size')
28 desc = None
29 if max_file_size:
30 desc = _('Max file size: {0} mb'.format(max_file_size))
31
32 class SubmitStartForm(wtforms.Form):
33 file = wtforms.FileField(
34 _('File'),
35 description=desc)
36 title = wtforms.TextField(
37 _('Title'),
38 [wtforms.validators.Length(min=0, max=500)])
39 description = wtforms.TextAreaField(
40 _('Description of this work'),
41 description=_("""You can use
42 <a href="http://daringfireball.net/projects/markdown/basics">
43 Markdown</a> for formatting."""))
44 tags = wtforms.TextField(
45 _('Tags'),
46 [tag_length_validator],
47 description=_(
48 "Separate tags by commas."))
49 license = wtforms.SelectField(
50 _('License'),
51 [wtforms.validators.Optional(),],
52 choices=licenses_as_choices())
53 max_file_size = wtforms.HiddenField('')
54 upload_limit = wtforms.HiddenField('')
55 uploaded = wtforms.HiddenField('')
56
57 return SubmitStartForm(form, **kwargs)
58
59 class AddCollectionForm(wtforms.Form):
60 title = wtforms.TextField(
61 _('Title'),
62 [wtforms.validators.Length(min=0, max=500), wtforms.validators.InputRequired()])
63 description = wtforms.TextAreaField(
64 _('Description of this collection'),
65 description=_("""You can use
66 <a href="http://daringfireball.net/projects/markdown/basics">
67 Markdown</a> for formatting."""))