[silva.ui][Sylvain Viollon] Add an option to display username in...

[email protected] Wed, 11 Sep 2013 18:13:17 +0200
Newsgroups gmane.comp.web.zope.silva.cvs
Message-ID <[email protected]>
author:    Sylvain Viollon
date:      Wed Sep 11 18:13:14 2013 +0200
revision:  658:422ae715e01c in silva.ui
branch:    
details:   https://hg.infrae.com/silva.ui?cmd=changeset;node=422ae715e01c
modified:  src/silva/ui/rest/container/serializer.py
added:     
removed:   
log:       Add an option to display username instead of user ids.


diffstat:

 src/silva/ui/rest/container/serializer.py |  6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diffs (30 lines):

diff -r b8d0560984e7 -r 422ae715e01c src/silva/ui/rest/container/serializer.py
--- a/src/silva/ui/rest/container/serializer.py	Fri Sep 06 11:48:32 2013 +0200
+++ b/src/silva/ui/rest/container/serializer.py	Wed Sep 11 18:13:14 2013 +0200
@@ -11,6 +11,7 @@
 from silva.core.interfaces import IPublishable, INonPublishable
 from silva.core.interfaces import IVersionedObject
 from silva.core.interfaces.adapters import IIconResolver
+from silva.core.services.interfaces import IMemberService
 from silva.translations import translate as _
 
 from AccessControl import getSecurityManager
@@ -73,6 +74,9 @@
         locale = self.request.locale
         formatter = locale.dates.getFormatter('dateTime', 'short')
         self.format_date = lambda d: formatter.format(d.asdatetime())
+        self.format_author = lambda a: a.userid()
+        if not getUtility(IMemberService).get_display_usernames():
+            self.format_author = lambda a: a.fullname()
 
     def get_access(self, content):
         for access, permission in [
@@ -95,7 +99,7 @@
         if previewable is not None:
             icon = self.get_icon(content)
             title = cgi.escape(previewable.get_title_or_id_editable())
-            author = previewable.get_last_author_info().userid()
+            author = self.format_author(previewable.get_last_author_info())
             modified = self.get_metadata(
                 previewable, 'silva-extra', 'modificationtime')
             if modified is None: