def _query(self, instance, query, args): c_tool = getToolByName(instance, TOOL_NAME) connection_id = c_tool.getConnFor(instance) method = SQLMethod(instance) method.edit(connection_id, ' '.join(args.keys()), query) query, result = method(test__=1, **args) return result
def _query(self, instance, query, args): c_tool = getToolByName(instance, TOOL_NAME) connection_id = c_tool.getConnFor(instance) method = SQLMethod(instance) method.edit(connection_id, ' '.join(args.keys()), query) query, result = method(test__=1, **args) return result
def cleanupInstance(self, instance, item=None, container=None): if (self.is_cleaned(instance) or getattr(instance, '_at_is_fake_instance', None)): # duh, we don't need to be cleaned twice return # the object is being deleted. remove data from sql. but # first, made a temporary copy of the field values in case we # are being moved fields = instance.Schema().fields() fields = [ f for f in fields if IObjectField.providedBy(f) and f.getStorage().__class__ is self.__class__ ] temps = {} for f in fields: temps[f.getName()] = f.get(instance) setattr(instance, '_v_%s_temps' % self.getName(), temps) # now, remove data from sql c_tool = getToolByName(instance, TOOL_NAME) connection_id = c_tool.getConnFor(instance) args = {} args['table'] = instance.portal_type args['UID'] = instance.UID() # args['db_encoding']=kwargs.get('db_encoding',None) method = SQLMethod(instance) method.edit(connection_id, ' '.join(args.keys()), self.query_delete) try: query, result = method(test__=1, **args) except ConflictError: raise except: # dunno what could happen here raise # SQLCleanupException(msg) raise BeforeDeleteException try: instance.__cleaned += (self.getName(), ) except AttributeError: instance.__cleaned = (self.getName(), ) try: del instance.__initialized except (AttributeError, KeyError): pass
def cleanupInstance(self, instance, item=None, container=None): if (self.is_cleaned(instance) or getattr(instance, '_at_is_fake_instance', None)): # duh, we don't need to be cleaned twice return # the object is being deleted. remove data from sql. but # first, made a temporary copy of the field values in case we # are being moved fields = instance.Schema().fields() fields = [f for f in fields if IObjectField.providedBy(f) and f.getStorage().__class__ is self.__class__] temps = {} for f in fields: temps[f.getName()] = f.get(instance) setattr(instance, '_v_%s_temps' % self.getName(), temps) # now, remove data from sql c_tool = getToolByName(instance, TOOL_NAME) connection_id = c_tool.getConnFor(instance) args = {} args['table'] = instance.portal_type args['UID'] = instance.UID() # args['db_encoding']=kwargs.get('db_encoding',None) method = SQLMethod(instance) method.edit(connection_id, ' '.join(args.keys()), self.query_delete) try: query, result = method(test__=1, **args) except ConflictError: raise except: # dunno what could happen here raise # SQLCleanupException(msg) raise BeforeDeleteException try: instance.__cleaned += (self.getName(),) except AttributeError: instance.__cleaned = (self.getName(),) try: del instance.__initialized except (AttributeError, KeyError): pass