978 @property |
978 @property |
979 def transaction_data(self): |
979 def transaction_data(self): |
980 return self.cnx.transaction_data |
980 return self.cnx.transaction_data |
981 |
981 |
982 def set_cnx(self, cnx): |
982 def set_cnx(self, cnx): |
983 if 'ecache' in cnx.transaction_data: |
|
984 del cnx.transaction_data['ecache'] |
|
985 self.cnx = cnx |
983 self.cnx = cnx |
986 self.session = cnx.session |
984 self.session = cnx.session |
987 self._set_user(cnx.user) |
985 self._set_user(cnx.user) |
988 self.set_user_language(cnx.user) |
986 self.set_user_language(cnx.user) |
989 |
987 |
1019 def call_service(self, regid, **kwargs): |
1017 def call_service(self, regid, **kwargs): |
1020 return self.cnx.call_service(regid, **kwargs) |
1018 return self.cnx.call_service(regid, **kwargs) |
1021 |
1019 |
1022 # entities cache management ############################################### |
1020 # entities cache management ############################################### |
1023 |
1021 |
1024 entity_cache = _cnx_func('entity_cache') |
1022 def entity_cache(self, eid): |
1025 set_entity_cache = _cnx_func('set_entity_cache') |
1023 return self.transaction_data['req_ecache'][eid] |
1026 cached_entities = _cnx_func('cached_entities') |
1024 |
1027 drop_entity_cache = _cnx_func('drop_entity_cache') |
1025 def set_entity_cache(self, entity): |
1028 |
1026 ecache = self.transaction_data.setdefault('req_ecache', {}) |
1029 |
1027 ecache.setdefault(entity.eid, entity) |
|
1028 |
|
1029 def cached_entities(self): |
|
1030 return self.transaction_data.get('req_ecache', {}).values() |
|
1031 |
|
1032 def drop_entity_cache(self, eid=None): |
|
1033 if eid is None: |
|
1034 self.transaction_data.pop('req_ecache', None) |
|
1035 else: |
|
1036 del self.transaction_data['req_ecache'][eid] |
1030 |
1037 |
1031 |
1038 |
1032 CubicWebRequestBase = ConnectionCubicWebRequestBase |
1039 CubicWebRequestBase = ConnectionCubicWebRequestBase |
1033 |
1040 |
1034 |
1041 |