def edit_project(id): project = Project.query.get_or_404(id) ds_forms = dict([ (cls.populates, cls()) for cls in DataSourceForm.__subclasses__()]) for populates, ds_form in ds_forms.items(): if populates == project.datasource.__class__.__name__: ds_forms[populates] = ds_form.__class__(obj=project.datasource) current_ds_type = populates form = ProjectForm(obj=project, datasource_type=current_ds_type) form.datasource_type.choices = [ (cls.populates, cls.name) for cls in DataSourceForm.__subclasses__()] form.datasource_type.choices.insert(0, (None, "-- Select Data Source --")) if form.validate_on_submit(): form.populate_obj(project) ds_form = ds_forms[form.datasource_type.data] if ds_form.validate(): project.datasource = getattr(models, form.datasource_type.data)() ds_form.populate_obj(project.datasource) db.session.add(project) db.session.commit() flash("Project %s successfully updated." % project.name) return redirect(url_for('view_project', id=project.id)) return render_template("project/edit.html", form=form, ds_forms=ds_forms, project=project)
def edit_project(id): project = Project.query.get_or_404(id) ds_forms = dict([(cls.populates, cls()) for cls in DataSourceForm.__subclasses__()]) for populates, ds_form in ds_forms.items(): if populates == project.datasource.__class__.__name__: ds_forms[populates] = ds_form.__class__(obj=project.datasource) current_ds_type = populates form = ProjectForm(obj=project, datasource_type=current_ds_type) form.datasource_type.choices = [(cls.populates, cls.name) for cls in DataSourceForm.__subclasses__()] form.datasource_type.choices.insert(0, (None, "-- Select Data Source --")) if form.validate_on_submit(): form.populate_obj(project) ds_form = ds_forms[form.datasource_type.data] if ds_form.validate(): project.datasource = getattr(models, form.datasource_type.data)() ds_form.populate_obj(project.datasource) db.session.add(project) db.session.commit() flash("Project %s successfully updated." % project.name) return redirect(url_for('view_project', id=project.id)) return render_template("project/edit.html", form=form, ds_forms=ds_forms, project=project)
def create_project(): config.reload() form = ProjectForm() ds_forms = dict([ (cls.populates, cls()) for cls in DataSourceForm.__subclasses__()]) form.datasource_type.choices = [ (cls.populates, cls.name) for cls in DataSourceForm.__subclasses__()] form.datasource_type.choices.insert(0, (None, "-- Select Data Source --")) new_project = Project() if form.validate_on_submit(): form.populate_obj(new_project) ds_form = ds_forms[form.datasource_type.data] if ds_form.validate(): new_project.datasource = \ getattr(models, form.datasource_type.data)() ds_form.populate_obj(new_project.datasource) db.session.add(new_project) db.session.commit() flash("New project successfully created.") return redirect(url_for('view_project', id=new_project.id)) return render_template("project/create.html", form=form, ds_forms=ds_forms, project=new_project)
def create_project(): config.reload() form = ProjectForm() ds_forms = dict([(cls.populates, cls()) for cls in DataSourceForm.__subclasses__()]) form.datasource_type.choices = [(cls.populates, cls.name) for cls in DataSourceForm.__subclasses__()] form.datasource_type.choices.insert(0, (None, "-- Select Data Source --")) new_project = Project() if form.validate_on_submit(): form.populate_obj(new_project) ds_form = ds_forms[form.datasource_type.data] if ds_form.validate(): new_project.datasource = \ getattr(models, form.datasource_type.data)() ds_form.populate_obj(new_project.datasource) db.session.add(new_project) db.session.commit() flash("New project successfully created.") return redirect(url_for('view_project', id=new_project.id)) return render_template("project/create.html", form=form, ds_forms=ds_forms, project=new_project)