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 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 index(request): from django.shortcuts import render #return HttpResponse(content="Hello world!",content_type="text/plain",status=200) add_source_form = AddSourceForm() if 'source' in request.GET: data_source_form = DataSourceForm(initial={'source': request.GET['source']}) else: data_source_form = DataSourceForm() return render(request,"gnmzeitgeist.html", {'source_form': data_source_form,'add_source_form': add_source_form})
def create_form(self, resource=None, edit_form=False): """Return form with fields loaded from DB. :param object resource: Optional data_source object :param bool edit_form: Set if edit form """ form = DataSourceForm(self.config_models, obj=resource) if edit_form: # override form fields with resource values on edit form.responsible.data = self.ContactsHelper.resource_contact_id( resource.gdi_oid, self.ContactsHelper.ROLE_RESPONSIBLE) # set choices for responsible select field form.responsible.choices = [(0, "")] + \ self.ContactsHelper.person_choices() return form