def __init__(self, datasource, form_data): self.orig_form_data = form_data self.datasource = datasource self.request = request self.viz_type = form_data.get("viz_type") ff = FormFactory(self) form_class = ff.get_form() defaults = form_class().data.copy() if isinstance(form_data, ImmutableMultiDict): form = form_class(form_data) else: form = form_class(**form_data) data = form.data.copy() if not form.validate(): for k, v in form.errors.items(): if not data.get('json') and not data.get('async'): flash("{}: {}".format(k, " ".join(v)), 'danger') previous_viz_type = form_data.get('previous_viz_type') if previous_viz_type in viz_types and previous_viz_type != self.viz_type: data = { k: form.data[k] for k in form_data.keys() if k in viz_types[previous_viz_type].flat_form_fields() and k in form.data} defaults.update(data) self.form_data = defaults self.form_data['previous_viz_type'] = self.viz_type self.token = self.form_data.get( 'token', 'token_' + uuid.uuid4().hex[:8]) self.metrics = self.form_data.get('metrics') or [] self.groupby = self.form_data.get('groupby') or [] self.reassignments()
def __init__(self, datasource, form_data): self.orig_form_data = form_data self.datasource = datasource self.request = request self.viz_type = form_data.get("viz_type") # TODO refactor all form related logic out of here and into forms.py ff = FormFactory(self) form_class = ff.get_form() defaults = form_class().data.copy() previous_viz_type = form_data.get("previous_viz_type") if isinstance(form_data, ImmutableMultiDict): form = form_class(form_data) else: form = form_class(**form_data) data = form.data.copy() if not form.validate(): for k, v in form.errors.items(): if not data.get("json") and not data.get("async"): flash("{}: {}".format(k, " ".join(v)), "danger") if previous_viz_type != self.viz_type: data = {k: form.data[k] for k in form_data.keys() if k in form.data} defaults.update(data) self.form_data = defaults self.query = "" self.form_data["previous_viz_type"] = self.viz_type self.token = self.form_data.get("token", "token_" + uuid.uuid4().hex[:8]) self.metrics = self.form_data.get("metrics") or [] self.groupby = self.form_data.get("groupby") or [] self.reassignments()
def __init__(self, datasource, form_data): self.orig_form_data = form_data self.datasource = datasource self.request = request self.viz_type = form_data.get("viz_type") # TODO refactor all form related logic out of here and into forms.py ff = FormFactory(self) form_class = ff.get_form() defaults = form_class().data.copy() previous_viz_type = form_data.get('previous_viz_type') if isinstance(form_data, ImmutableMultiDict): form = form_class(form_data) else: form = form_class(**form_data) data = form.data.copy() if not form.validate(): for k, v in form.errors.items(): if not data.get('json') and not data.get('async'): flash("{}: {}".format(k, " ".join(v)), 'danger') if previous_viz_type != self.viz_type: data = { k: form.data[k] for k in form_data.keys() if k in form.data } defaults.update(data) self.form_data = defaults self.query = "" self.form_data['previous_viz_type'] = self.viz_type self.token = self.form_data.get('token', 'token_' + uuid.uuid4().hex[:8]) self.metrics = self.form_data.get('metrics') or [] self.groupby = self.form_data.get('groupby') or [] self.reassignments()
def form_class(self): return FormFactory(self).get_form()