From be358f787988c56a7f53f1e94c86278bfb09eaf3 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sun, 16 Aug 2015 00:12:51 -0400 Subject: [PATCH] Remove use of extra_columns and move logic to models and apps. --- mayan/apps/acls/apps.py | 9 +++++++++ mayan/apps/acls/models.py | 7 +++++++ mayan/apps/acls/views.py | 20 -------------------- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/mayan/apps/acls/apps.py b/mayan/apps/acls/apps.py index 9ca431c430..2a039c7958 100644 --- a/mayan/apps/acls/apps.py +++ b/mayan/apps/acls/apps.py @@ -3,6 +3,7 @@ from __future__ import unicode_literals from django.utils.translation import ugettext_lazy as _ from common import MayanAppConfig, menu_object, menu_sidebar +from navigation import SourceColumn from .links import link_acl_new, link_acl_delete, link_acl_permissions from .models import AccessControlList @@ -15,6 +16,14 @@ class ACLsApp(MayanAppConfig): def ready(self): super(ACLsApp, self).ready() + SourceColumn( + source=AccessControlList, label=_('Permissions'), + attribute='get_permission_titles' + ) + SourceColumn( + source=AccessControlList, label=_('Role'), attribute='role' + ) + menu_object.bind_links( links=(link_acl_permissions, link_acl_delete), sources=(AccessControlList,) diff --git a/mayan/apps/acls/models.py b/mayan/apps/acls/models.py index 0b669eccb1..daea547249 100644 --- a/mayan/apps/acls/models.py +++ b/mayan/apps/acls/models.py @@ -51,3 +51,10 @@ class AccessControlList(models.Model): return AccessControlList.objects.get_inherited_permissions( role=self.role, obj=self.content_object ) + + def get_permission_titles(self): + result = ', '.join( + [unicode(permission) for permission in self.permissions.all()] + ) + + return result or _('None') diff --git a/mayan/apps/acls/views.py b/mayan/apps/acls/views.py index c70b68da34..2d61c8d654 100644 --- a/mayan/apps/acls/views.py +++ b/mayan/apps/acls/views.py @@ -26,12 +26,6 @@ logger = logging.getLogger(__name__) class ACLListView(SingleObjectListView): - @staticmethod - def permission_titles(permission_list): - return ', '.join( - [unicode(permission) for permission in permission_list] - ) - def dispatch(self, request, *args, **kwargs): self.content_type = get_object_or_404( ContentType, app_label=self.kwargs['app_label'], @@ -66,20 +60,6 @@ class ACLListView(SingleObjectListView): 'hide_object': True, 'object': self.content_object, 'title': _('Access control lists for: %s' % self.content_object), - 'extra_columns': [ - { - 'name': _('Role'), - 'attribute': 'role' - }, - { - 'name': _('Permissions'), - 'attribute': encapsulate( - lambda entry: ACLListView.permission_titles( - entry.permissions.all() - ) - ) - }, - ], }