diff options
Diffstat (limited to 'mediagoblin/user_pages')
-rw-r--r-- | mediagoblin/user_pages/routing.py | 5 | ||||
-rw-r--r-- | mediagoblin/user_pages/views.py | 36 |
2 files changed, 22 insertions, 19 deletions
diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py index 1a1d4139..68cb0a3b 100644 --- a/mediagoblin/user_pages/routing.py +++ b/mediagoblin/user_pages/routing.py @@ -97,6 +97,11 @@ add_route('mediagoblin.user_pages.processing_panel', '/u/<string:user>/panel/', 'mediagoblin.user_pages.views:processing_panel') +add_route('mediagoblin.user_pages.processing_panel', + '/u/<string:user>/panel/<any(processed, processing, failed):state>/', + 'mediagoblin.user_pages.views:processing_panel') + + # Stray edit routes add_route('mediagoblin.edit.edit_media', '/u/<string:user>/m/<int:media_id>/edit/', diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 88e077d4..547048d6 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -637,8 +637,10 @@ def collection_atom_feed(request): return feed.get_response() +@active_user_from_url +@uses_pagination @require_active_login -def processing_panel(request): +def processing_panel(request, page, url_user): """ Show to the user what media is still in conversion/processing... and what failed, and why! @@ -653,33 +655,29 @@ def processing_panel(request): return redirect( request, 'mediagoblin.user_pages.user_home', user=user.username) - # Get media entries which are in-processing - processing_entries = MediaEntry.query.\ - filter_by(actor = user.id, - state = u'processing').\ - order_by(MediaEntry.created.desc()) + entries = (MediaEntry.query.filter_by(actor=user.id) + .order_by(MediaEntry.created.desc())) - # Get media entries which have failed to process - failed_entries = MediaEntry.query.\ - filter_by(actor = user.id, - state = u'failed').\ - order_by(MediaEntry.created.desc()) + try: + state = request.matchdict['state'] + # no exception was thrown, filter entries by state + entries = entries.filter_by(state=state) + except KeyError: + # show all entries + pass - processed_entries = MediaEntry.query.\ - filter_by(actor = user.id, - state = u'processed').\ - order_by(MediaEntry.created.desc()).\ - limit(10) + pagination = Pagination(page, entries) + pagination.per_page = 30 + entries_on_a_page = pagination() # Render to response return render_to_response( request, 'mediagoblin/user_pages/processing_panel.html', {'user': user, - 'processing_entries': processing_entries, - 'failed_entries': failed_entries, - 'processed_entries': processed_entries}) + 'entries': entries_on_a_page, + 'pagination': pagination}) @allow_reporting @get_user_media_entry |