From 42cf0bdc99b7b3c9ccfa5ae753b22da5d7de36da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Fri, 7 Mar 2014 10:52:18 +0100 Subject: [PATCH] use plone.principalsource.Principals to get user and group names (#4416) --- src/collective/dms/basecontent/browser/column.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/collective/dms/basecontent/browser/column.py b/src/collective/dms/basecontent/browser/column.py index 95cb332..9311b26 100644 --- a/src/collective/dms/basecontent/browser/column.py +++ b/src/collective/dms/basecontent/browser/column.py @@ -9,6 +9,8 @@ from zope.i18n import translate import z3c.table.table import z3c.table.column from Products.CMFCore.WorkflowCore import WorkflowException +from zope.schema.interfaces import IVocabularyFactory +from zope.component import getUtility import plone.api from collective.dms.basecontent import _ @@ -78,17 +80,15 @@ class PrincipalColumn(Column): if not isinstance(value, (list, tuple)): value = (value,) - gtool = getToolByName(plone.api.portal.get(), 'portal_groups') - mtool = getToolByName(plone.api.portal.get(), 'portal_membership') + factory = getUtility(IVocabularyFactory, 'plone.principalsource.Principals') + principals_vocab = factory(self.context) + principals = [] for principal_id in value: - user = mtool.getMemberById(principal_id) - if user is not None: - principals.append(user.getProperty('fullname', None) or user.getId()) + if principal_id in principals_vocab: + principals.append(principals_vocab.getTermByToken(principal_id).title) else: - group = gtool.getGroupById(principal_id) - if group is not None: - principals.append(group.getProperty('title', None) or group.getId()) + principals.append(unicode(principal_id)) return ', '.join(principals).decode('utf-8')