diff options
author | Boris Bobrov <breton@cynicmansion.ru> | 2014-08-16 17:41:37 +0300 |
---|---|---|
committer | Boris Bobrov <breton@cynicmansion.ru> | 2016-02-01 00:29:44 +0100 |
commit | 906a00b6679fc7940262dde48467b102894fa9fe (patch) | |
tree | cef555b4abcd61455767bcff2ba33b6b7d63bf30 | |
parent | be9262b4d4317f244ae4602dad0aaed5fe4ee62f (diff) | |
download | mediagoblin-906a00b6679fc7940262dde48467b102894fa9fe.tar.lz mediagoblin-906a00b6679fc7940262dde48467b102894fa9fe.tar.xz mediagoblin-906a00b6679fc7940262dde48467b102894fa9fe.zip |
added filtering by entry state in processing panel
4 files changed, 29 insertions, 5 deletions
diff --git a/mediagoblin/plugins/processing_info/templates/mediagoblin/processing_info/header_left.html b/mediagoblin/plugins/processing_info/templates/mediagoblin/processing_info/header_left.html index d635afce..1d5e724d 100644 --- a/mediagoblin/plugins/processing_info/templates/mediagoblin/processing_info/header_left.html +++ b/mediagoblin/plugins/processing_info/templates/mediagoblin/processing_info/header_left.html @@ -18,15 +18,15 @@ {#This injects some information about entries in processing #} {% if request.user and request.user.has_privilege('active') %} {% if num_queued is defined and num_queued != 0 %} -{% set panel_url = request.urlgen('mediagoblin.user_pages.processing_panel', - user=request.user.username) %} <span class="num_queued status_icon"> - <a href="{{ panel_url }}">⏳ {{ num_queued }}</a> + <a href="{{ request.urlgen('mediagoblin.user_pages.processing_panel', + user=request.user.username, state="processing") }}">⏳ {{ num_queued }}</a> </span> {% endif %} {% if num_failed is defined and num_failed != 0 %} <span class="num_failed status_icon"> - <a href="{{ panel_url }}">☹ {{ num_failed }}</a> + <a href="{{ request.urlgen('mediagoblin.user_pages.processing_panel', + user=request.user.username, state="failed") }}">☹ {{ num_failed }}</a> </span> {% endif %} {% endif %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html b/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html index d803e51c..88eef827 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html +++ b/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html @@ -28,6 +28,18 @@ <p> {% trans %}You can track the state of media being processed for your gallery here.{% endtrans %} </p> + +<p> +Show: +<a href="{{ request.urlgen('mediagoblin.user_pages.processing_panel', + user=request.user.username) }}">All</a>, +<a href="{{ request.urlgen('mediagoblin.user_pages.processing_panel', + user=request.user.username, state="processing") }}">In processing</a>, +<a href="{{ request.urlgen('mediagoblin.user_pages.processing_panel', + user=request.user.username, state="failed") }}">Failed</a>, +<a href="{{ request.urlgen('mediagoblin.user_pages.processing_panel', + user=request.user.username, state="processed") }}">Succesful</a> +</p> {% if entries.count() %} <table class="media_panel processing"> 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 0de63440..97f0bac1 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -653,11 +653,18 @@ def processing_panel(request): return redirect( request, 'mediagoblin.user_pages.user_home', user=user.username) - # Get media entries which are in-processing entries = (MediaEntry.query.filter_by(uploader=user.id) .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 + # Render to response return render_to_response( request, |