Exemple #1
0
 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
Exemple #2
0
 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