aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/user_pages
diff options
context:
space:
mode:
authorSebastian Spaeth <Sebastian@SSpaeth.de>2011-05-11 08:39:57 +0200
committerChristopher Allan Webber <cwebber@dustycloud.org>2011-05-12 23:10:21 -0500
commit7acdbfd36457720789c183260424e0f78139211a (patch)
tree32d41524cefc9103cf7f5f55fda824f7dbdbb518 /mediagoblin/user_pages
parentb77eec653df14059296fc3185ff9817edfa0825b (diff)
downloadmediagoblin-7acdbfd36457720789c183260424e0f78139211a.tar.lz
mediagoblin-7acdbfd36457720789c183260424e0f78139211a.tar.xz
mediagoblin-7acdbfd36457720789c183260424e0f78139211a.zip
Improve user homepage
1) Only consider user's with 'status': 'active'. We don't want to display unconfirmed/blocked users, right? 2) Actually query user's media in the view and display on their home page. 3) Throw an error 404 if we don't find a valid user, rather than saying, "User not found" (from within the template). 4) Pass in medias as media_entries to remain compatible with the 'root' page. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
Diffstat (limited to 'mediagoblin/user_pages')
-rw-r--r--mediagoblin/user_pages/views.py25
1 files changed, 16 insertions, 9 deletions
diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py
index cc613c40..2c9792fa 100644
--- a/mediagoblin/user_pages/views.py
+++ b/mediagoblin/user_pages/views.py
@@ -14,17 +14,22 @@
# 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 webob import Response, exc
from mongokit import ObjectId
import wtforms
def user_home(request):
"""'Homepage' of a User()"""
- user = request.db.User.find_one(
- {'username': request.matchdict['user']})
+ user = request.db.User.find_one({
+ 'username': request.matchdict['user'],
+ 'status': 'active'})
+ if not user:
+ return exc.HTTPNotFound()
- medias = request.db.MediaEntry.find()
+ medias = request.db.MediaEntry.find({
+ 'uploader': user,
+ 'state': 'processed'})
template = request.template_env.get_template(
'mediagoblin/user_pages/user.html')
@@ -32,16 +37,18 @@ def user_home(request):
template.render(
{'request': request,
'user': user,
- 'medias': medias}))
+ 'media_entries': medias}))
def media_home(request):
"""'Homepage' of a MediaEntry()"""
- media = request.db.MediaEntry.find_one(
- ObjectId(request.matchdict['m_id']))
+ media = request.db.MediaEntry.find_one({
+ '_id': ObjectId(request.matchdict['m_id']),
+ 'state': 'processed'})
- #check that media uploader and user correspond
- if media['uploader'].get('username') != request.matchdict['user']:
+ # Check that media uploader and user correspond.
+ if not media or \
+ media['uploader'].get('username') != request.matchdict['user']:
return exc.HTTPNotFound()
template = request.template_env.get_template(