aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/views.py
blob: 3728d4aaacba0077a662aa3986d84ae6aae7d72a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# 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 datetime

from webob import Response, exc
import wtforms

from mediagoblin import models

def root_view(request):
    media_entries = request.db.MediaEntry.find(
        {u'state': u'processed'})

    template = request.template_env.get_template(
        'mediagoblin/root.html')
    return Response(
        template.render(
            {'request': request,
             'media_entries': media_entries}))


class ImageSubmitForm(wtforms.Form):
    title = wtforms.TextField(
        'Title',
        [wtforms.validators.Length(min=1, max=500)])
    description = wtforms.TextAreaField('Description of this work')
    file = wtforms.FileField('File')


def submit_test(request):
    image_form = ImageSubmitForm(request.POST)
    if request.method == 'POST' and image_form.validate():
        # create entry and save in database

        entry = request.db.MediaEntry()
        entry['title'] = request.POST['title']
        entry['description'] = request.POST.get(['description'])
        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')
    return Response(
        template.render(
            {'request': request,
             'image_form': image_form}))