diff --git a/wagtail/wagtailadmin/utils.py b/wagtail/wagtailadmin/utils.py
index a2dd39b8f..45d7c3512 100644
--- a/wagtail/wagtailadmin/utils.py
+++ b/wagtail/wagtailadmin/utils.py
@@ -1,21 +1,13 @@
from wagtail.wagtailcore.models import Page
-
-
-def usage_count(self):
- """The number of times that an obect has been used"""
- count = 0
- relations = self._meta.get_all_related_objects(
- include_hidden=True,
- include_proxy_eq=True
- )
- for relation in relations:
- count += relation.model._base_manager.filter(
- **{relation.field.name: self.id}
- ).count()
- return count
+from django.conf import settings
def used_by(self):
+ """Returns the pages that an object was used in."""
+
+ if not hasattr(settings, 'USAGE_COUNT') or not settings.USAGE_COUNT:
+ return []
+
related_objects = []
result = []
@@ -34,3 +26,12 @@ def used_by(self):
result.append(r.page)
return result
+
+
+def usage_count(self):
+ """Returns the number of times that an obect has been used in a page"""
+
+ if not hasattr(settings, 'USAGE_COUNT') or not settings.USAGE_COUNT:
+ return None
+
+ return len(used_by(self))
diff --git a/wagtail/wagtaildocs/templates/wagtaildocs/documents/usage.html b/wagtail/wagtaildocs/templates/wagtaildocs/documents/usage.html
index 8db42fa07..b86571760 100644
--- a/wagtail/wagtaildocs/templates/wagtaildocs/documents/usage.html
+++ b/wagtail/wagtaildocs/templates/wagtaildocs/documents/usage.html
@@ -6,12 +6,45 @@
{% include "wagtailadmin/shared/header.html" with title="Usage" %}
-
- {% for u in document.used_by %}
- -
- {{ u.title }}
-
+
+
+
+
+
+
+
+
+ | {% trans "Title" %} |
+ {% trans "Parent" %} |
+ {% trans "Type" %} |
+ {% trans "Status" %} |
+
+
+
+ {% for page in document.used_by %}
+
+ |
+
+ |
+
+ {% if page.get_parent %}
+ {{ page.get_parent.title }}
+ {% endif %}
+ |
+
+ {{ page.content_type.model_class.get_verbose_name }}
+ |
+
+ {% if page.live %}
+ {{ page.status_string }}
+ {% else %}
+ {{ page.status_string }}
+ {% endif %}
+ |
+
{% endfor %}
-
+
+
+
{% endblock %}
diff --git a/wagtail/wagtailimages/templates/wagtailimages/images/usage.html b/wagtail/wagtailimages/templates/wagtailimages/images/usage.html
index e99ddc313..5f1c268fd 100644
--- a/wagtail/wagtailimages/templates/wagtailimages/images/usage.html
+++ b/wagtail/wagtailimages/templates/wagtailimages/images/usage.html
@@ -6,12 +6,45 @@
{% include "wagtailadmin/shared/header.html" with title="Usage" %}
-
- {% for u in image.used_by %}
- -
- {{ u.title }}
-
+
+
+
+
+
+
+
+
+ | {% trans "Title" %} |
+ {% trans "Parent" %} |
+ {% trans "Type" %} |
+ {% trans "Status" %} |
+
+
+
+ {% for page in image.used_by %}
+
+ |
+
+ |
+
+ {% if page.get_parent %}
+ {{ page.get_parent.title }}
+ {% endif %}
+ |
+
+ {{ page.content_type.model_class.get_verbose_name }}
+ |
+
+ {% if page.live %}
+ {{ page.status_string }}
+ {% else %}
+ {{ page.status_string }}
+ {% endif %}
+ |
+
{% endfor %}
-
+
+
+
{% endblock %}
diff --git a/wagtail/wagtailsnippets/templates/wagtailsnippets/snippets/usage.html b/wagtail/wagtailsnippets/templates/wagtailsnippets/snippets/usage.html
index 8db42fa07..bf1fc5eed 100644
--- a/wagtail/wagtailsnippets/templates/wagtailsnippets/snippets/usage.html
+++ b/wagtail/wagtailsnippets/templates/wagtailsnippets/snippets/usage.html
@@ -6,12 +6,46 @@
{% include "wagtailadmin/shared/header.html" with title="Usage" %}
-
- {% for u in document.used_by %}
- -
- {{ u.title }}
-
+
+
+
+
+
+
+
+
+ | {% trans "Title" %} |
+ {% trans "Parent" %} |
+ {% trans "Type" %} |
+ {% trans "Status" %} |
+
+
+
+ {% for page in instance.used_by %}
+
+ |
+
+ |
+
+ {% if page.get_parent %}
+ {{ page.get_parent.title }}
+ {% endif %}
+ |
+
+ {{ page.content_type.model_class.get_verbose_name }}
+ |
+
+ {% if page.live %}
+ {{ page.status_string }}
+ {% else %}
+ {{ page.status_string }}
+ {% endif %}
+ |
+
{% endfor %}
-
+
+
+
+
{% endblock %}