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"),)