diff options
author | Boris Bobrov <breton@cynicmansion.ru> | 2016-02-01 00:28:32 +0100 |
---|---|---|
committer | Boris Bobrov <breton@cynicmansion.ru> | 2016-02-01 00:28:32 +0100 |
commit | 728ee1df3c7f6913e2462bbbb8388d12a580ee23 (patch) | |
tree | 5f55d8ddc82d2dba96f0b1cbabe42939fd5e76fa /mediagoblin/plugins | |
parent | e3663c7be1d8c5a11b5e47050d921739a068b64f (diff) | |
download | mediagoblin-728ee1df3c7f6913e2462bbbb8388d12a580ee23.tar.lz mediagoblin-728ee1df3c7f6913e2462bbbb8388d12a580ee23.tar.xz mediagoblin-728ee1df3c7f6913e2462bbbb8388d12a580ee23.zip |
added a plugin to display information about entries in processing
Conflicts:
mediagoblin/templates/mediagoblin/base.html -- resolved by using
the original file and manually adding pieces from my commit
Diffstat (limited to 'mediagoblin/plugins')
3 files changed, 87 insertions, 0 deletions
diff --git a/mediagoblin/plugins/processing_info/README.rst b/mediagoblin/plugins/processing_info/README.rst new file mode 100644 index 00000000..3bacbf50 --- /dev/null +++ b/mediagoblin/plugins/processing_info/README.rst @@ -0,0 +1,5 @@ +============== + sampleplugin +============== + +A plugin to insert some useful information about processing to templates diff --git a/mediagoblin/plugins/processing_info/__init__.py b/mediagoblin/plugins/processing_info/__init__.py new file mode 100644 index 00000000..f89378fe --- /dev/null +++ b/mediagoblin/plugins/processing_info/__init__.py @@ -0,0 +1,50 @@ +# 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/>. + + +import logging +import os + +from mediagoblin.tools.pluginapi import get_config +from mediagoblin.db.models import MediaEntry +from mediagoblin.tools import pluginapi + +_log = logging.getLogger(__name__) + +PLUGIN_DIR = os.path.dirname(__file__) + +def setup_plugin(): + pluginapi.register_template_path(os.path.join(PLUGIN_DIR, 'templates')) + pluginapi.register_template_hooks( + {'header_left': 'mediagoblin/processing_info/header_left.html'}) + return + +def make_stats(context): + request = context['request'] + user = request.user + num_queued = MediaEntry.query.filter_by( + uploader=user.id, state=u'processing').count() + context['num_queued'] = num_queued + num_failed = MediaEntry.query.filter_by( + uploader=user.id, state=u'failed').count() + context['num_failed'] = num_failed + return context + + +hooks = { + 'setup': setup_plugin, + 'template_context_prerender': make_stats + } 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 new file mode 100644 index 00000000..d635afce --- /dev/null +++ b/mediagoblin/plugins/processing_info/templates/mediagoblin/processing_info/header_left.html @@ -0,0 +1,32 @@ +{# +# 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/>. +#} +{#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> +</span> +{% endif %} +{% if num_failed is defined and num_failed != 0 %} +<span class="num_failed status_icon"> + <a href="{{ panel_url }}">☹ {{ num_failed }}</a> +</span> +{% endif %} +{% endif %} |