diff options
author | Sebastian Spaeth <Sebastian@SSpaeth.de> | 2011-05-08 20:35:54 +0200 |
---|---|---|
committer | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-05-10 16:01:43 -0500 |
commit | 9a16e16ffa9c0477bec6ea0bf1db7efd6f988638 (patch) | |
tree | 5dbbba02cb40cd23be76489a159d4718f66c8aa4 /mediagoblin/user_pages/views.py | |
parent | 9d97145fe40cc2a7bce298cad618374375ad4d8b (diff) | |
download | mediagoblin-9a16e16ffa9c0477bec6ea0bf1db7efd6f988638.tar.lz mediagoblin-9a16e16ffa9c0477bec6ea0bf1db7efd6f988638.tar.xz mediagoblin-9a16e16ffa9c0477bec6ea0bf1db7efd6f988638.zip |
Implement simple media detail page
This patch creates a "homepage" for each media. The URL is
/u/<username>/m/<objID>.
On it we display the media and some details. It is ugly and lacking some
stuff but it works. The only thing left to do is to throw an 404 error
if the <username> and the media uploader don't correspond.
- Also create a user "home page" while at it. It is merely a place
holder for now though.
- Link from the entries on the homepage, to the media pages, so we
actually find them.
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
Diffstat (limited to 'mediagoblin/user_pages/views.py')
-rw-r--r-- | mediagoblin/user_pages/views.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py new file mode 100644 index 00000000..b1a301d4 --- /dev/null +++ b/mediagoblin/user_pages/views.py @@ -0,0 +1,52 @@ +# 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 +from mongokit import ObjectId +import wtforms +#from mongokit import ObjectId + +def user_home(request): + """'Homepage' of a User()""" + user = request.db.User.find_one( + {'username': request.matchdict['user']}) + + medias = request.db.MediaEntry.find() + + template = request.template_env.get_template( + 'mediagoblin/user_pages/user.html') + return Response( + template.render( + {'request': request, + 'user': user, + 'medias': medias})) + +def media_home(request): + """'Homepage' of a MediaEntry()""" + media = request.db.MediaEntry.find_one( + ObjectId(request.matchdict['m_id'])) + + #check that media uploader and user correspondent + if media['uploader'].get('username') != request.matchdict['user']: + #TODO: How do I throw an error 404? + pass + + template = request.template_env.get_template( + 'mediagoblin/user_pages/media.html') + return Response( + template.render( + {'request': request, + 'media': media})) |