def post(self): fs = FieldSet(self.instance, data=self.request.POST) if fs.validate(): fs.sync() self.session.flush() return HTTPFound(location=fs.model.getUrl())
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
def post(self): fs = FieldSet(self.cls, session=self.session).\ bind(self.cls(), data=self.request.POST) if fs.validate(): fs.sync() self.session.flush() return HTTPFound(location=fs.model.getUrl()) else: return {'fs': fs, 'cls': self.cls}
def new(self, req, model_name): model = self.model.get_model_or_404(model_name) if req.method == 'POST': item = model() fs = FieldSet(item, session=session, data=req.form) if fs.validate(): fs.sync() item.save() session.commit() return self.redirect_to('list', model_name=model_name) else: fs = FieldSet(model, session=session) return self.render_response('_admin/new.jinja', item=None, model_name=model_name, fs=fs)
def edit(self, req, model_name, id): model = self.model.get_model_or_404(model_name) item = model.query.get(id) if req.method == 'POST': fs = FieldSet(item, data=req.form) if fs.validate(): fs.sync() item.save() session.commit() return self.redirect_to('list', model_name=model_name) else: fs = FieldSet(item) return self.render_response('_admin/new.jinja', item=item, model_name=model_name, fs=fs, crumbs=[model_name, 'Edit'])
def edit(request): model = meta.__dict__.get(request.matchdict["model"]) if "id" in request.matchdict: obj = request.db.query(model).filter(model.id==request.matchdict["id"]).first() fs = FieldSet(obj, request=request) else: fs = FieldSet(model, session=request.db, request=request) if "POST"==request.environ.get("REQUEST_METHOD", "").upper() and request.POST: if fs.validate(): request.db.add(fs.model) fs.sync() return HTTPFound(location=request.route_url("list", model=request.matchdict["model"])) return { 'fs': fs }
def saveedit(request): model = meta.__dict__.get(request.matchdict["model"]) if "id" in request.matchdict: obj = request.db.query(model).filter(model.id==request.matchdict["id"]).first() fs = FieldSet(obj, request=request) else: fs = FieldSet(model, session=request.db, request=request) if fs.validate(): request.db.add(fs.model) fs.sync() else: return { "fs": fs } return HTTPFound(location=request.route_url("list", model=request.matchdict["model"]))