def object_edit(model_slug, model_key=None, **attrs): if model_slug not in models: abort(404) model = models[model_slug] sk = attrdict() if model_key: try: data = model.q.get_by(id=model_key) except NoData: abort(404) else: data = model sk.session = db if model_key: obj = model.q.get_by(id=int(model_key)) else: obj = None fields = FieldSet(data, **sk) _fixup_fs(fields,model_key,attrs) if request.method == 'POST': fields.rebind(data=request.form) if fields.validate(): fields.sync() next_url = url_for('_admin.object_list', model_slug=model_slug) return redirect(next_url) context = { 'model_slug': model_slug, 'model': model, 'fields': fields, } template_name = '_admin/edit.html' if model_key else '_admin/new.html' return render_template(template_name, **context)
def object_edit(model_slug, model_key=None, **attrs): if model_slug not in models: abort(404) model = models[model_slug] sk = attrdict() if model_key: try: data = model.q.get_by(id=model_key) except NoData: abort(404) else: data = model sk.session = db if model_key: obj = model.q.get_by(id=int(model_key)) else: obj = None fields = FieldSet(data, **sk) _fixup_fs(fields, model_key, attrs) if request.method == 'POST': fields.rebind(data=request.form) if fields.validate(): fields.sync() next_url = url_for('_admin.object_list', model_slug=model_slug) return redirect(next_url) context = { 'model_slug': model_slug, 'model': model, 'fields': fields, } template_name = '_admin/edit.html' if model_key else '_admin/new.html' return render_template(template_name, **context)
def task_add(): """Add a new task command to be executed, added by only Supreme Admin by careful planning""" task = Task() fs = FieldSet(task) stage_options = [('', ''), ('Deployment', 'Deployment'), ('Maintenance', 'Maintenance'), ('General', 'General')] fs.configure(options=[ fs.name.label('Task Name'), fs.cmd.label('Command'), fs.params.label('Parameters'), fs.stage.dropdown(stage_options) ]) if request.method == 'POST': fs.rebind(data=request.form) if fs.validate(): fs.sync() db.session.add(task) db.session.commit() flash('Task successfully added!') fs.rebind(model=Task) return render_template('tasks/task_add.html', form=fs)
def save(self, model, data, session): fs = FieldSet(model, session=session) fs.rebind(model, data=data) if fs.validate(): fs.sync() return True #TODO: need to return validation result return False