Commit 6cca79c7 authored by Cédric Le Ninivin's avatar Cédric Le Ninivin

ERP5UserManager: Move to transactional cache for getPersonByReference method

parent 6ed7cc53
...@@ -126,7 +126,7 @@ class ERP5UserManager(BasePlugin): ...@@ -126,7 +126,7 @@ class ERP5UserManager(BasePlugin):
return person_url return person_url
else: else:
person_list = portal.portal_catalog.unrestrictedSearchResults( person_list = portal.portal_catalog.unrestrictedSearchResults(
select_list=('relative_url',), select_list=('relative_url', 'reference'),
portal_type='Person', portal_type='Person',
reference={'query': reference, 'key': 'ExactMatch'}, reference={'query': reference, 'key': 'ExactMatch'},
limit=2 limit=2
...@@ -136,11 +136,10 @@ class ERP5UserManager(BasePlugin): ...@@ -136,11 +136,10 @@ class ERP5UserManager(BasePlugin):
raise RuntimeError, 'More than one Person have login %r' % \ raise RuntimeError, 'More than one Person have login %r' % \
(reference,) (reference,)
elif l == 1: elif l == 1:
self.REQUEST.set('_person_cache', {})
self.REQUEST['_person_cache'][person_list[0]['reference']] = \
person_list[0]['relative_url']
return person_list[0]['relative_url'] return person_list[0]['relative_url']
_getPersonRelativeUrlFromReference = CachingMethod(
_getPersonRelativeUrlFromReference,
id='ERP5UserManager._getPersonRelativeUrlFromReference',
cache_factory='erp5_content_short')
person_relative_url = _getPersonRelativeUrlFromReference(reference) person_relative_url = _getPersonRelativeUrlFromReference(reference)
if person_relative_url is not None: if person_relative_url is not None:
return self.getPortalObject().unrestrictedTraverse( return self.getPortalObject().unrestrictedTraverse(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment