From ae0d26e71bc53f53cda0ebc45f4ab8f5a9e79111 Mon Sep 17 00:00:00 2001 From: Tom Talbot Date: Thu, 10 Jul 2014 11:23:18 +0100 Subject: [PATCH] 'Usage' page now displays a table of pages. Add new 'USAGE_COUNT' setting. --- wagtail/wagtailadmin/utils.py | 29 ++++++------ .../wagtaildocs/documents/usage.html | 45 +++++++++++++++--- .../templates/wagtailimages/images/usage.html | 45 +++++++++++++++--- .../wagtailsnippets/snippets/usage.html | 46 ++++++++++++++++--- 4 files changed, 133 insertions(+), 32 deletions(-) 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" %}
-
{% 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" %}
-
{% 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" %}
-
+ {% endblock %}