def save(data, entity=None): """ Save or update an entity. """ data = validate(data, entity) operation = 'create' if entity is None else 'update' if entity is None: entity = Entity() entity.project = data.get('project') entity.author = data.get('author') db.session.add(entity) entity.schemata = list(set(data.get('schemata'))) prop_names = set() for name, prop in data.get('properties').items(): prop_names.add(name) prop['name'] = name prop['author'] = data.get('author') properties_logic.save(entity, prop) for prop in entity.properties: if prop.name not in prop_names: prop.active = False db.session.flush() _entity_changed.delay(entity.id, operation) return entity
def save(data, files=None, entity=None): """ Save or update an entity. """ data = validate(data, entity) operation = 'create' if entity is None else 'update' if entity is None: entity = Entity() entity.project = data.get('project') entity.author = data.get('author') db.session.add(entity) entity.status = data.get('status') entity.schemata = data.get('schemata') prop_names = set() for name, prop in data.get('properties').items(): prop_names.add(name) prop['project'] = entity.project prop['name'] = name prop['author'] = data.get('author') properties_logic.save(entity, prop, files=files) for prop in entity.properties: if prop.name not in prop_names: prop.active = False db.session.flush() _entity_changed.delay(entity.id, operation) return entity
def save(data, entity=None): """ Save or update an entity. """ data = validate(data) if entity is None: entity = Entity() entity.project = data.get('project') entity.author = data.get('author') db.session.add(entity) entity.schemata = list(set(data.get('schemata'))) properties_logic.set_many(entity, data.get('author'), data.get('properties')) db.session.flush() _entity_changed.delay(entity.id) return entity