X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=mediagoblin%2Fmedia_types%2Fblog%2F__init__.py;h=859c2162381abbbdd3e0e0ef782b2dc9cb9750a2;hb=90779509bbe65ab56dd137ffb9d5019f498e79e1;hp=c44372755826ad6957d10d37856bf8e3072d73f2;hpb=a7f02e9514ca9256412d138c9bba89b299431efa;p=mediagoblin.git diff --git a/mediagoblin/media_types/blog/__init__.py b/mediagoblin/media_types/blog/__init__.py index c4437275..859c2162 100644 --- a/mediagoblin/media_types/blog/__init__.py +++ b/mediagoblin/media_types/blog/__init__.py @@ -26,34 +26,40 @@ from mediagoblin.tools import pluginapi PLUGIN_DIR = os.path.dirname(__file__) MEDIA_TYPE = 'mediagoblin.media_types.blogpost' + def setup_plugin(): config = pluginapi.get_config(MEDIA_TYPE) _log.info("setting up blog media type plugin.") - - routes = [ + + routes = [ #blog_create - ('mediagoblin.media_types.blog.create', + ('mediagoblin.media_types.blog.create', '/u//b/create/', 'mediagoblin.media_types.blog.views:blog_edit' - ), - #blog_edit - ('mediagoblin.media_types.blog.edit', - '/u//b//edit/', + ), + #blog_edit + ('mediagoblin.media_types.blog.edit', + '/u//b//edit/', 'mediagoblin.media_types.blog.views:blog_edit' ), #blog post create - ('mediagoblin.media_types.blog.blogpost.create', + ('mediagoblin.media_types.blog.blogpost.create', '/u//b//p/create/', 'mediagoblin.media_types.blog.views:blogpost_create' ), #blog post edit - ('mediagoblin.media_types.blog.blogpost.edit', + ('mediagoblin.media_types.blog.blogpost.edit', '/u//b//p//edit/', 'mediagoblin.media_types.blog.views:blogpost_edit' ), - #blog admin dashboard + #blog collection dashboard in case of multiple blogs + ('mediagoblin.media_types.blog.blog_admin_dashboard', + '/u//b/dashboard/', + 'mediagoblin.media_types.blog.views:blog_dashboard' + ), + #blog dashboard ('mediagoblin.media_types.blog.blog-dashboard', - '/u//b//blog_dashboard/', + '/u//b//dashboard/', 'mediagoblin.media_types.blog.views:blog_dashboard' ), #blog post listing view @@ -62,36 +68,54 @@ def setup_plugin(): 'mediagoblin.media_types.blog.views:blog_post_listing' ), #blog post draft view - ('mediagoblin.media_types.blog.blogpost_draft_view', + ('mediagoblin.media_types.blog.blogpost_draft_view', '/u//b//p//draft/', - 'mediagoblin.media_types.blog.views:draft_view') - ] - - + 'mediagoblin.media_types.blog.views:draft_view' + ), + #blog delete view + ('mediagoblin.media_types.blog.blog_delete', + '/u//b//delete/', + 'mediagoblin.media_types.blog.views:blog_delete' + ), + # blog about view + ('mediagoblin.media_types.blog.blog_about', + '/u//b//about/', + 'mediagoblin.media_types.blog.views:blog_about_view' + )] + + 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", + "blog_dashboard_home": "mediagoblin/blog/url_to_dashboard.html", + }) + + class BlogPostMediaManager(MediaManagerBase): human_readable = "Blog Post" display_template = "mediagoblin/media_displays/blogpost.html" default_thumb = "images/media_thumbs/blogpost.jpg" - + def get_blog_by_blogpost(self): blog_post_data = BlogPostData.query.filter_by(media_entry=self.entry.id).first() blog = Blog.query.filter_by(id=blog_post_data.blog).first() return blog - -def get_media_type_and_manager(): - return MEDIA_TYPE, BlogPostMediaManager + +def add_to_user_home_context(context): + """Inject a user's blogs into a (user home page) template context""" + blogs = context['request'].db.Blog.query.filter_by(author=context['user'].id) + + if blogs.count(): + context['blogs'] = blogs + else: + context['blogs'] = None + return context + hooks = { 'setup': setup_plugin, - 'get_media_type_and_manager': get_media_type_and_manager, ('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 } - - - - -