diff --git a/beat/web/search/templatetags/search_tags.py b/beat/web/search/templatetags/search_tags.py
index 14c6669c07529e1383110bfe01f35a963751fa68..eeba4cb39d6a00f93c8e8a1d293ef55f9dde5a60 100644
--- a/beat/web/search/templatetags/search_tags.py
+++ b/beat/web/search/templatetags/search_tags.py
@@ -27,20 +27,18 @@
 
 
 import re
-import simplejson as json
 
+import simplejson as json
 from django import template
-from django.conf import settings
 
-from ...experiments.models import Result
 from ...plotters.models import Plotter
 
 register = template.Library()
 
 
-@register.inclusion_tag('search/panels/table.html', takes_context=True)
+@register.inclusion_tag("search/panels/table.html", takes_context=True)
 def search_table(context, objects, owner, id):
-    '''Composes a search list table
+    """Composes a search list table
 
     This panel primarily exists for user's search list page.
 
@@ -52,27 +50,22 @@ def search_table(context, objects, owner, id):
         id: The HTML id to set on the generated table. This is handy for the
           filter functionality normally available on list pages.
 
-    '''
+    """
 
-    return dict(
-        request=context['request'],
-        objects=objects,
-        owner=owner,
-        panel_id=id,
-    )
+    return dict(request=context["request"], objects=objects, owner=owner, panel_id=id,)
 
 
-@register.inclusion_tag('search/panels/breadcrumb.html', takes_context=True)
+@register.inclusion_tag("search/panels/breadcrumb.html", takes_context=True)
 def search_breadcrumb(context, obj):
     return {
-        'request': context['request'],
-            'object': obj,
+        "request": context["request"],
+        "object": obj,
     }
 
 
-@register.inclusion_tag('search/panels/actions.html', takes_context=True)
+@register.inclusion_tag("search/panels/actions.html", takes_context=True)
 def search_actions(context, object, display_count):
-    '''Composes the action buttons for a particular search
+    """Composes the action buttons for a particular search
 
     This panel primarily exists for showing action buttons for a given
     search taking into consideration it is being displayed for a given user.
@@ -84,34 +77,26 @@ def search_actions(context, object, display_count):
         display_count (bool): If the set of buttons should include one with the
           number of experiments using this search.
 
-    '''
-    return dict(
-        request=context['request'],
-        object=object,
-        display_count=display_count,
-    )
+    """
+    return dict(request=context["request"], object=object, display_count=display_count,)
 
 
-@register.inclusion_tag('search/panels/sharing.html', takes_context=True)
+@register.inclusion_tag("search/panels/sharing.html", takes_context=True)
 def search_sharing(context, object):
-    '''Composes the current sharing properties and a form to change them
+    """Composes the current sharing properties and a form to change them
 
     Parameters:
 
         object (Search): The search object concerned for which the
           buttons will be drawn.
 
-    '''
-    return dict(
-        object=object,
-        users=context['users'],
-        teams=context['teams'],
-    )
+    """
+    return dict(object=object, users=context["users"], teams=context["teams"],)
 
 
-@register.inclusion_tag('search/panels/viewer.html', takes_context=True)
+@register.inclusion_tag("search/panels/viewer.html", takes_context=True)
 def search_viewer(context, object, results, filters, display_settings, owner):
-    '''Composes the search results for visualization
+    """Composes the search results for visualization
 
     Parameters:
 
@@ -125,21 +110,21 @@ def search_viewer(context, object, results, filters, display_settings, owner):
           and documentation, focusing on the results. Non-owner visualizations
           collapse only the filter panel.
 
-    '''
+    """
     return dict(
-        request=context['request'],
+        request=context["request"],
         filters=filters,
         settings=display_settings,
         object=object,
         results=results,
         owner=owner,
-        URL_PREFIX=context['URL_PREFIX'],
+        URL_PREFIX=context["URL_PREFIX"],
     )
 
 
-@register.inclusion_tag('search/panels/results.html', takes_context=True)
+@register.inclusion_tag("search/panels/results.html", takes_context=True)
 def results_table(context, object, results, id):
-    '''Composes the search results for visualization
+    """Composes the search results for visualization
 
     Parameters:
 
@@ -157,13 +142,13 @@ def results_table(context, object, results, id):
         id (str): The id to be used on the HTML component that will contain the
           results
 
-    '''
+    """
     return dict(
-        request=context['request'],
+        request=context["request"],
         object=object,
         results=results,
         id=id,
-        URL_PREFIX=context['URL_PREFIX'],
+        URL_PREFIX=context["URL_PREFIX"],
     )
 
 
@@ -172,15 +157,18 @@ def block_for_experiment(xp, blocks):
     """Selects the block that belongs to the given experiment"""
 
     retval = [k for k in blocks if k.experiment == xp]
-    if retval: return retval[0]
+    if retval:
+        return retval[0]
     return None
 
 
-TO_JS_STRING=re.compile('[/_\.]')
+TO_JS_STRING = re.compile(r"[/_\.]")
+
+
 @register.filter
 def javascriptify(s):
     """Transforms a string into a name that is usable by javascript"""
-    return TO_JS_STRING.sub('-', s)
+    return TO_JS_STRING.sub("-", s)
 
 
 @register.filter
@@ -196,9 +184,9 @@ def json_block_names(blocks):
 
 
 @register.filter
-def sortable_list(l):
+def sortable_list(list_):
     """Returns a concatenated list of block names from the blocks"""
-    return (','.join(l)).replace('/','')
+    return (",".join(list_)).replace("/", "")
 
 
 @register.simple_tag
@@ -209,14 +197,19 @@ def plot_details_for_result(r):
     plotting = Plotter.objects.for_strformat(r.type)
 
     return dict(
-        plotter=plotting['default'][0].fullname(),
-        parameter=None if plotting['default'][1] == None else plotting['default'][1].fullname(),
-        parameters=json.dumps([k.fullname() for k in plotting['options'][plotting['default'][0]]]),
+        plotter=plotting["default"][0].fullname(),
+        parameter=None
+        if plotting["default"][1] is None
+        else plotting["default"][1].fullname(),
+        parameters=json.dumps(
+            [k.fullname() for k in plotting["options"][plotting["default"][0]]]
+        ),
     )
 
 
 @register.simple_tag
 def user_subscribed_to_leaderboard(search, user):
     """Checks if a given user is subscribed to the search leaderboard"""
-    if not search.has_leaderboard(): return False
+    if not search.has_leaderboard():
+        return False
     return search.leaderboard.notify.filter(id=user.id).exists()