Ejemplo n.º 1
0
    def update_model(self, form, model):
        """Update the metadata for a record."""

        try:
            new_json_data = request.form.get('json')
            if new_json_data:
                record = Record(model.json, model=model)
                record.clear()
                record.update(json.loads(new_json_data))
                record.commit()
                self.session.commit()
        except ValidationError as ex:
            flash('Failed to update record, provided metadata is invalid: %s' % ex.message, 'error')
            return False
        except Exception as ex:
            if not self.handle_view_exception(ex):
                flash('Failed to update record. %s' % str(ex), 'error')

            self.session.rollback()
            return False
        else:
            self.after_model_change(form, model, False)

        return True