diff options
author | Joar Wandborg <git@wandborg.com> | 2012-07-11 01:43:21 +0200 |
---|---|---|
committer | Joar Wandborg <git@wandborg.com> | 2012-07-11 01:43:21 +0200 |
commit | 808eac008bdce4d6b05df36bca056e1fba504434 (patch) | |
tree | 99d58175759aa68a10fb29c7e5c2cddbc32cb223 /mediagoblin/admin | |
parent | 6471291575c97f03d129051dc3d2bef28b4d89f2 (diff) | |
download | mediagoblin-808eac008bdce4d6b05df36bca056e1fba504434.tar.lz mediagoblin-808eac008bdce4d6b05df36bca056e1fba504434.tar.xz mediagoblin-808eac008bdce4d6b05df36bca056e1fba504434.zip |
Processing panel improvements
- Added admin processing panel
- Minor fixes on the user processing panel template
Diffstat (limited to 'mediagoblin/admin')
-rw-r--r-- | mediagoblin/admin/__init__.py | 16 | ||||
-rw-r--r-- | mediagoblin/admin/routing.py | 21 | ||||
-rw-r--r-- | mediagoblin/admin/views.py | 46 |
3 files changed, 83 insertions, 0 deletions
diff --git a/mediagoblin/admin/__init__.py b/mediagoblin/admin/__init__.py new file mode 100644 index 00000000..719b56e7 --- /dev/null +++ b/mediagoblin/admin/__init__.py @@ -0,0 +1,16 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. +# +# 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/>. + diff --git a/mediagoblin/admin/routing.py b/mediagoblin/admin/routing.py new file mode 100644 index 00000000..ea768c24 --- /dev/null +++ b/mediagoblin/admin/routing.py @@ -0,0 +1,21 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. +# +# 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 routes.route import Route + +admin_routes = [ + Route('mediagoblin.admin.panel', '/panel', + controller='mediagoblin.admin.views:admin_processing_panel')] diff --git a/mediagoblin/admin/views.py b/mediagoblin/admin/views.py new file mode 100644 index 00000000..e6a3eac3 --- /dev/null +++ b/mediagoblin/admin/views.py @@ -0,0 +1,46 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. +# +# 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 mediagoblin.tools.response import render_to_response, render_404 +from mediagoblin.db.util import DESCENDING +from mediagoblin.decorators import require_active_login + + +@require_active_login +def admin_processing_panel(request): + ''' + Show the global processing panel for this instance + ''' + if not request.user.is_admin: + return render_404(request) + + processing_entries = request.db.MediaEntry.find( + {'state': u'processing'}).sort('created', DESCENDING) + + # Get media entries which have failed to process + failed_entries = request.db.MediaEntry.find( + {'state': u'failed'}).sort('created', DESCENDING) + + processed_entries = request.db.MediaEntry.find( + {'state': u'processed'}).sort('created', DESCENDING).limit(10) + + # Render to response + return render_to_response( + request, + 'mediagoblin/admin/panel.html', + {'processing_entries': processing_entries, + 'failed_entries': failed_entries, + 'processed_entries': processed_entries}) |