diff --git a/form-designer/form_designer/components/form_editor.py b/form-designer/form_designer/components/form_editor.py index edcbe6f2..0963e542 100644 --- a/form-designer/form_designer/components/form_editor.py +++ b/form-designer/form_designer/components/form_editor.py @@ -42,13 +42,16 @@ def set_name(self, name: str): if not self._user_has_access(): return with rx.session() as session: - self.form.name = name - session.add(self.form) + if self.form.id is not None: + form = session.get(Form, self.form.id) + else: + form = self.form + form.name = name + session.add(form) session.commit() - session.refresh(self.form) yield FormSelectState.load_forms - if self.form.id > 0: - return rx.redirect(routes.edit_form(self.form.id)) + if form.id is not None and form.id > 0: + return rx.redirect(routes.edit_form(form.id)) def update_field(self, field: Field): if not self._user_has_access(): diff --git a/form-designer/form_designer/models.py b/form-designer/form_designer/models.py index 92766ad5..49e4be52 100644 --- a/form-designer/form_designer/models.py +++ b/form-designer/form_designer/models.py @@ -80,6 +80,7 @@ class Response(rx.Model, table=True): server_default=sqlmodel.func.now(), ), ) + hidden: bool = False form: Form = sqlmodel.Relationship(back_populates="responses") field_values: list[FieldValue] = sqlmodel.Relationship( diff --git a/form-designer/form_designer/pages/response.py b/form-designer/form_designer/pages/response.py index 88b04a57..bce69ca3 100644 --- a/form-designer/form_designer/pages/response.py +++ b/form-designer/form_designer/pages/response.py @@ -60,7 +60,7 @@ def response(r: Response): rx.icon(tag="x", size=16), color_scheme="tomato", margin_right="1em", - on_click=ResponsesState.delete_response(r.id), + on_click=ResponsesState.delete_response(r.id).stop_propagation, ), content="Delete this Response", ),