Adding a general purpose context hook for the media display page.
authorChristopher Allan Webber <cwebber@dustycloud.org>
Mon, 7 Apr 2014 21:58:54 +0000 (16:58 -0500)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Mon, 7 Apr 2014 21:58:54 +0000 (16:58 -0500)
Since the media template name gets swapped out for each media
type, normal context hooks don't work if you want to affect all
media displays.  This gives a general purpose hook.

This commit sponsored by Kẏra.  Thanks! :)

mediagoblin/user_pages/views.py

index 64fa793e0349d50c29ad9221da2c10c7b5b016aa..78751a28f85ef0d2ccc794618c2ba0b71b7033c0 100644 (file)
@@ -31,6 +31,7 @@ from mediagoblin.user_pages.lib import (send_comment_email,
        add_media_to_collection, build_report_object)
 from mediagoblin.notifications import trigger_notification, \
     add_comment_subscription, mark_comment_notification_seen
+from mediagoblin.tools.pluginapi import hook_transform
 
 from mediagoblin.decorators import (uses_pagination, get_user_media_entry,
     get_media_entry_by_id, user_has_privilege, user_not_banned,
@@ -146,14 +147,23 @@ def media_home(request, media, page, **kwargs):
 
     media_template_name = media.media_manager.display_template
 
+    context = {
+        'media': media,
+        'comments': comments,
+        'pagination': pagination,
+        'comment_form': comment_form,
+        'app_config': mg_globals.app_config}
+
+    # Since the media template name gets swapped out for each media
+    # type, normal context hooks don't work if you want to affect all
+    # media displays.  This gives a general purpose hook.
+    context = hook_transform(
+        "media_home_context", context)
+
     return render_to_response(
         request,
         media_template_name,
-        {'media': media,
-         'comments': comments,
-         'pagination': pagination,
-         'comment_form': comment_form,
-         'app_config': mg_globals.app_config})
+        context)
 
 
 @get_media_entry_by_id