def _experimental_aq_dynamic(self, name): result = Base._aq_dynamic(self, name) if result is not None: return result # Do some optimisation here for names which can not be names of documents if name.startswith('_') or name.startswith('portal_')\ or name.startswith('aq_') or name.startswith('selection_') \ or name.startswith('sort-') or name == 'getLayout' \ or name == 'getListItemUrl' or name.startswith('WebSite_'): return None # Use a non recursion variable cache_key = 'web_site_aq_cache' request = self.REQUEST # Prevent infinite recursion if not request.has_key(cache_key): request[cache_key] = {} elif request[cache_key].has_key(name): return request[cache_key][name] try: result_list = self.portal_catalog(portal_type="Person", id=name) if len(result_list): return result_list[0].getObject() except: # Cleanup non recursion dict in case of exception if request[cache_key].has_key(name): del request[cache_key][name] raise return None
def _experimental_aq_dynamic(self, name): result = Base._aq_dynamic(self, name) if result is not None: return result # Do some optimisation here for names which can not be names of documents if name.startswith('_') or name.startswith('portal_')\ or name.startswith('aq_') or name.startswith('selection_') \ or name.startswith('sort-') or name == 'getLayout' \ or name == 'getListItemUrl' or name.startswith('WebSite_'): return None # Use a non recursion variable cache_key = 'web_site_aq_cache' request = self.REQUEST # Prevent infinite recursion if not request.has_key(cache_key): request[cache_key] = {} elif request[cache_key].has_key(name): return request[cache_key][name] try: result_list = self.portal_catalog(portal_type="Person", id = name) if len(result_list): return result_list[0].getObject() except: # Cleanup non recursion dict in case of exception if request[cache_key].has_key(name): del request[cache_key][name] raise return None