def delete_component(self, user, app, id, transaction=False): '''Delete specified component''' logger.info('delete component') try: component = Components.get(Components.build_id(id, app, 'nobody')) except: raise Exception('component \'%s\' not found' % id) # if it's a transaction, save component state before deletion in case of a rollback if transaction: self.components_deleted.append(copy.copy(component)) if not component.delete(): raise Exception('failed to delete component \'%s\'' % id) return True
def update_component(self, json_data, user, app, id, transaction=False): '''Update specified component with attributes set in json_data''' logger.info('update component') try: component = Components.get(Components.build_id(id, app, 'nobody')) except: logger.exception(e) return self.create_component(json_data, user, app) # if it's a transaction, save component state before update in case of a rollback if transaction: #backup = Components(app, user, component.name) #backup.set_entity_fields(component.entity) backup = copy.copy(component) self.components_updated.append(backup) # update component members based on json data component.fromJsonable(json_data) if not component.passive_save(app): raise Exception('error updating component %s: %s' % (id, component.errors[0])) else: return component