Force evaluation of Query() through count()
authorSebastian Spaeth <Sebastian@SSpaeth.de>
Thu, 12 Dec 2013 17:03:47 +0000 (18:03 +0100)
committerSebastian Spaeth <Sebastian@SSpaeth.de>
Thu, 12 Dec 2013 17:03:47 +0000 (18:03 +0100)
Otherwise "blogs" is a query that evaluates to true, even if the user
has no blogs. This fixes the bug that the blog link is shown on a user's
profile page even if she has no blogs at all.

mediagoblin/media_types/blog/__init__.py
mediagoblin/media_types/blog/templates/mediagoblin/blog/url_to_blogs_dashboard.html

index 8a61c6e0ed7d176087e1138c6e3e20ba14b8e7b6..eca4c8fbe74eadb365c69f8ead100d080c7b6f13 100644 (file)
@@ -103,9 +103,10 @@ class BlogPostMediaManager(MediaManagerBase):
         return blog
 
 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:
+    if blogs.count():
         context['blogs'] = blogs
     else:
         context['blogs'] = None
index 483c145581f44168e322883618766a95aff8c73c..cb781b533164ccabd2ef6389efd541dbdc577778 100644 (file)
 #
 # 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 the URL to a user's blog dashboard on her profile.
-#}
+#}{#This injects the URL to a user's blog dashboard on her profile.#}
 {%if blogs %}
 <h3>Blog</h3>
 {% set blogs_url = request.urlgen('mediagoblin.media_types.blog.blog_admin_dashboard', 
                                       blogs=blogs, user=user.username) %}
                                     
-<p><a href="{{ blogs_url }}"><em>Go to blogs</em></a></p>
+<p><a href="{{ blogs_url }}"><em>Go to user's blog</em></a></p>
 {%endif%}