From 9ad6454e1796186d68c3bb118ade3011e33e6a34 Mon Sep 17 00:00:00 2001 From: Aditi Mittal Date: Sat, 7 Sep 2013 11:33:10 +0530 Subject: [PATCH] Insert URL to blog in a user's profile page by spaetz --- mediagoblin/media_types/blog/__init__.py | 15 +++++++++++ .../blog/url_to_blogs_dashboard.html | 27 +++++++++++++++++++ .../mediagoblin/user_pages/user.html | 1 + 3 files changed, 43 insertions(+) create mode 100644 mediagoblin/media_types/blog/templates/mediagoblin/blog/url_to_blogs_dashboard.html diff --git a/mediagoblin/media_types/blog/__init__.py b/mediagoblin/media_types/blog/__init__.py index 83742d0a..bb33dc95 100644 --- a/mediagoblin/media_types/blog/__init__.py +++ b/mediagoblin/media_types/blog/__init__.py @@ -75,6 +75,8 @@ def setup_plugin(): pluginapi.register_routes(routes) pluginapi.register_template_path(os.path.join(PLUGIN_DIR, 'templates')) + pluginapi.register_template_hooks({"user_profile": "mediagoblin/blog/url_to_blogs_dashboard.html" + }) class BlogPostMediaManager(MediaManagerBase): @@ -87,9 +89,22 @@ class BlogPostMediaManager(MediaManagerBase): blog = Blog.query.filter_by(id=blog_post_data.blog).first() return blog +def add_to_user_home_context(context): + blogs = context['request'].db.Blog.query.filter_by(author=context['user'].id) + _log.info("blah blah blah") + if blogs: + context['blogs'] = blogs + else: + context['blogs'] = None + return context + + hooks = { 'setup': setup_plugin, ('media_manager', MEDIA_TYPE): lambda: BlogPostMediaManager, + # Inject blog context on user profile page + ("mediagoblin.user_pages.user_home", + "mediagoblin/user_pages/user.html"): add_to_user_home_context } diff --git a/mediagoblin/media_types/blog/templates/mediagoblin/blog/url_to_blogs_dashboard.html b/mediagoblin/media_types/blog/templates/mediagoblin/blog/url_to_blogs_dashboard.html new file mode 100644 index 00000000..9417c36f --- /dev/null +++ b/mediagoblin/media_types/blog/templates/mediagoblin/blog/url_to_blogs_dashboard.html @@ -0,0 +1,27 @@ +{# +# 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 . +} + +{#This injects the URL to a user's blog dashboard on her profile. +#} +{%if blogs %} +

Blog

+{% set blogs_url = request.urlgen('mediagoblin.media_types.blog.blog_admin_dashboard', + blogs=blogs, user=user.username) %} + +

The user's blogs can be found here

+{%endif%} diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 71acd66c..6cb6aa51 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -141,6 +141,7 @@ {% set feed_url = request.urlgen( 'mediagoblin.user_pages.atom_feed', user=user.username) %} + {% template_hook("user_profile") %} {% include "mediagoblin/utils/feed_link.html" %} {% else %} -- 2.25.1