aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/user_pages/views.py
diff options
context:
space:
mode:
authorSebastian Spaeth <Sebastian@SSpaeth.de>2011-05-08 20:35:54 +0200
committerChristopher Allan Webber <cwebber@dustycloud.org>2011-05-10 16:01:43 -0500
commit9a16e16ffa9c0477bec6ea0bf1db7efd6f988638 (patch)
tree5dbbba02cb40cd23be76489a159d4718f66c8aa4 /mediagoblin/user_pages/views.py
parent9d97145fe40cc2a7bce298cad618374375ad4d8b (diff)
downloadmediagoblin-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.py52
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}))