diff --git a/conntrackt/models.py b/conntrackt/models.py --- a/conntrackt/models.py +++ b/conntrackt/models.py @@ -25,8 +25,9 @@ from django.core.exceptions import Valid from django.core.urlresolvers import reverse from django.db import models from django.db.models.query_utils import Q -from django.utils.html import format_html -from django.utils.text import capfirst + +# Application imports. +from .utils import list_formatter_callback class SearchManager(models.Manager): @@ -94,13 +95,8 @@ class RelatedCollectorMixin(object): The resulting nested list can be shown to the user for warning/notification purposes using the unordered_list template tag. - Each non-list element will be a string of format: - - MODEL_NAME: OBJECT_REPRESENTATION - - If object has a callable get_absolute_url method, the object - representation will be surrouned by HTML anchor tag () where - target (href) is set to the value of get_absolute_url() method call. + Each non-list element will be a string generated using the + conntrackt.utils.list_formatter_callback function. Returns: Nested list of representations of model objects that depend @@ -111,30 +107,7 @@ class RelatedCollectorMixin(object): collector.collect([self]) - def formatter_callback(obj): - """ - Creates model object representation in format: - - MODEL_NAME: OBJECT_REPRESENTATION - - If passed object has a callable get_absolute_url method, the - instance representation will be surrouned by an HTML anchor - () where target is set to value of the get_absolute_url() - method call. - - Arguments: - obj - Model object whose representation should be returned. - - Returns: - String represenation of passed model object. - """ - - try: - return format_html('{0}: {2}', capfirst(obj._meta.verbose_name), obj.get_absolute_url(), str(obj)) - except AttributeError: - return format_html('{0}: {1}', capfirst(obj._meta.verbose_name), str(obj)) - - return collector.nested(formatter_callback) + return collector.nested(list_formatter_callback) class Project(RelatedCollectorMixin, models.Model): @@ -152,7 +125,7 @@ class Project(RelatedCollectorMixin, mod name = models.CharField(max_length=100, unique=True) description = models.TextField(blank=True) objects = SearchManager() - deletion_collect_models = ["Entity", "Interface"] + deletion_collect_models = ["Entity", "Interface"] class Meta: permissions = (("view", "Can view information"),)