+{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %}
+
<html>
<body>
<form action="{{ request.urlgen('test_submit') }}" method="POST"
enctype="multipart/form-data">
<table>
- {% for field in image_form %}
- <tr>
- <td>{{ field.label }}</td>
- <td>{{ field }}</td>
- </tr>
- {% endfor %}
+ {{ wtforms_util.render_table(image_form) }}
<tr>
<td></td>
<td><input type="submit" value="submit" /></td>
--- /dev/null
+{% macro render_table(form) -%}
+ {% for field in form %}
+ <tr>
+ <th>{{field.label}}</th>
+ <td>
+ {{field}}
+ {% if field.errors %}
+ <br />
+ <ul class="errors">
+ {% for error in field.errors %}
+ <li>{{error}}</li>
+ {% endfor %}
+ </ul>
+ {% endif %}
+ </td>
+ </tr>
+ {% endfor %}
+{%- endmacro %}
from webob import Response, exc
import wtforms
+from mediagoblin import models
+
def root_view(request):
return Response("This is the root")
image_form = ImageSubmitForm(request.POST)
if request.method == 'POST' and image_form.validate():
# create entry and save in database
- work_id = request.app.db.works.insert(
- {'title': image_form.title.data,
- 'created': datetime.datetime.now(),
- 'description': image_form.description.data})
+
+ entry = request.db.MediaEntry()
+ entry['title'] = request.POST['title']
+ entry['description'] = request.POST.get(['description'])o
+ entry['media_type'] = u'image'
+
+ # TODO this does NOT look save, we should clean the filename somenow?
+ entry['file_store'] = request.POST['file'].filename
+
+ entry.save(validate=True)
# save file to disk
## TODO
+ #open('/tmp/read_file.png', 'wb').write(request.POST['file'].file.read())
+
# resize if necessary
## Hm. This should be done on a separate view?
# redirect
pass
+
+
# render
template = request.template_env.get_template(
'mediagoblin/test_submit.html')