diff --git a/themis/fields/vocabs.py b/themis/fields/vocabs.py index 6c58ef1..62b42da 100644 --- a/themis/fields/vocabs.py +++ b/themis/fields/vocabs.py @@ -178,6 +178,26 @@ class ContactsSource(object): def __init__(self): pass + def fastGetTitleByToken(self, context, token): + if not ':' in token: + return token + if token == 'ministry:college': + return u'Collège' + prefix, value = token.split(':') + portal = getToolByName(context, 'portal_url').getPortalObject() + if prefix == 'deputy': + url = 'deputes' + elif prefix in ('ministry', 'ministry-collab'): + url = 'ministres' + elif prefix == 'contact': + url = 'contacts' + else: + raise KeyError(token) + try: + return getattr(getattr(portal, url), value).Title() + except AttributeError: + raise KeyError(token) + def __call__(self, context): catalog = getToolByName(context, 'portal_catalog')