diff options
author | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-04-19 19:05:46 -0500 |
---|---|---|
committer | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-04-19 19:05:46 -0500 |
commit | e323a06851cf2a5c7f26d4a969185323c20c8d9d (patch) | |
tree | fa64cfb126cb97bfe6dfeb7ea5c7c0b26162f9b4 | |
parent | bb3eaf20eaf6a413d5561b848ac6b051e36a2f79 (diff) | |
download | mediagoblin-e323a06851cf2a5c7f26d4a969185323c20c8d9d.tar.lz mediagoblin-e323a06851cf2a5c7f26d4a969185323c20c8d9d.tar.xz mediagoblin-e323a06851cf2a5c7f26d4a969185323c20c8d9d.zip |
Start of the submit view, but not much there quite yet.
-rw-r--r-- | mediagoblin/routing.py | 5 | ||||
-rw-r--r-- | mediagoblin/submit/__init__.py | 0 | ||||
-rw-r--r-- | mediagoblin/submit/forms.py | 26 | ||||
-rw-r--r-- | mediagoblin/submit/routing.py | 22 | ||||
-rw-r--r-- | mediagoblin/submit/views.py | 37 | ||||
-rw-r--r-- | mediagoblin/templates/mediagoblin/submit/start.html | 35 |
6 files changed, 122 insertions, 3 deletions
diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py index 169917f0..b47bec8d 100644 --- a/mediagoblin/routing.py +++ b/mediagoblin/routing.py @@ -17,6 +17,7 @@ from routes import Mapper from mediagoblin.auth.routing import auth_routes +from mediagoblin.submit.routing import submit_routes def get_mapper(): @@ -26,10 +27,8 @@ def get_mapper(): mapping.connect( "index", "/", controller="mediagoblin.views:root_view") - mapping.connect( - "test_submit", "/test_submit/", - controller="mediagoblin.views:submit_test") mapping.extend(auth_routes, '/auth') + mapping.extend(submit_routes, '/submit') return mapping diff --git a/mediagoblin/submit/__init__.py b/mediagoblin/submit/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/mediagoblin/submit/__init__.py diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py new file mode 100644 index 00000000..fe51e7fd --- /dev/null +++ b/mediagoblin/submit/forms.py @@ -0,0 +1,26 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + + +import wtforms + + +class SubmitStartForm(wtforms.Form): + title = wtforms.TextField( + 'Title', + [wtforms.validators.Length(min=1, max=500)]) + description = wtforms.TextAreaField('Description of this work') + file = wtforms.FileField('File') diff --git a/mediagoblin/submit/routing.py b/mediagoblin/submit/routing.py new file mode 100644 index 00000000..b2713540 --- /dev/null +++ b/mediagoblin/submit/routing.py @@ -0,0 +1,22 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +from routes.route import Route + +submit_routes = [ + Route('mediagoblin.submit.start', '/', + controller='mediagoblin.submit.views:submit_start'), + ] diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py new file mode 100644 index 00000000..aa0f8121 --- /dev/null +++ b/mediagoblin/submit/views.py @@ -0,0 +1,37 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + + +from webob import Response, exc + +from mediagoblin.decorators import require_active_login +from mediagoblin.submit import forms as submit_forms + + +@require_active_login +def submit_start(request): + """ + First view for submitting a file. + """ + submit_form = submit_forms.SubmitStartForm() + + # render + template = request.template_env.get_template( + 'mediagoblin/submit/start.html') + return Response( + template.render( + {'request': request, + 'submit_form': submit_form})) diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html new file mode 100644 index 00000000..562d9050 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -0,0 +1,35 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +#} +{% extends "mediagoblin/base.html" %} + +{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} + +{% block mediagoblin_content %} + <h2>Submit yer media</h2> + + <form action="{{ request.urlgen('mediagoblin.submit.start') }}" + method="POST" enctype="multipart/form-data"> + <table> + {{ wtforms_util.render_table(submit_form) }} + <tr> + <td></td> + <td><input type="submit" value="submit" /></td> + </tr> + </table> + </form> +{% endblock %} |