From ac4498de125883a08fe9080c158c3a41ab9a047a Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 14 Dec 2011 09:10:34 -0400 Subject: [PATCH] Add support for classes --- apps/acls/widgets.py | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/apps/acls/widgets.py b/apps/acls/widgets.py index c35501df58..e2a57823e2 100644 --- a/apps/acls/widgets.py +++ b/apps/acls/widgets.py @@ -5,6 +5,8 @@ from django.forms.util import flatatt from django.utils.html import conditional_escape from django.utils.encoding import force_unicode from django.contrib.contenttypes.models import ContentType +from django.db.models.base import ModelBase +from django.template.defaultfilters import capfirst from acls.literals import CONTENT_TYPE_ICON_MAP @@ -14,13 +16,15 @@ def content_type_icon(content_type): def object_w_content_type_icon(obj): - content_type = ContentType.objects.get_for_model(obj) - - ct_fullname = '%s.%s' % (content_type.app_label, content_type.name) - - if ct_fullname == 'auth.user': - label = obj.get_full_name() - else: - label = unicode(obj) - - return mark_safe('%s%s' % (content_type_icon(content_type), label)) + content_type = ContentType.objects.get_for_model(obj) + + ct_fullname = '%s.%s' % (content_type.app_label, content_type.name) + if isinstance(obj, ModelBase): + label = getattr(obj._meta, 'verbose_name_plural', unicode(content_type)) + else: + if ct_fullname == 'auth.user': + label = obj.get_full_name() + else: + label = unicode(obj) + + return mark_safe('%s%s' % (content_type_icon(content_type), capfirst(label)))