Skip to content

Commit f890fd4

Browse files
authored
Merge pull request #318 from reflex-dev/masenf/fix-form-designer
form-designer fixes
2 parents 7ff34f3 + ff1384e commit f890fd4

File tree

5 files changed

+56
-9
lines changed

5 files changed

+56
-9
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
"""Add hidden to response.
2+
3+
Revision ID: 4c92535dbbbd
4+
Revises: 481d2a7a6d6f
5+
Create Date: 2025-07-31 13:41:08.311239
6+
7+
"""
8+
9+
from typing import Sequence, Union
10+
11+
from alembic import op
12+
import sqlalchemy as sa
13+
import sqlmodel
14+
15+
# revision identifiers, used by Alembic.
16+
revision: str = "4c92535dbbbd"
17+
down_revision: Union[str, None] = "481d2a7a6d6f"
18+
branch_labels: Union[str, Sequence[str], None] = None
19+
depends_on: Union[str, Sequence[str], None] = None
20+
21+
22+
def upgrade() -> None:
23+
# ### commands auto generated by Alembic - please adjust! ###
24+
with op.batch_alter_table("response", schema=None) as batch_op:
25+
batch_op.add_column(
26+
sa.Column(
27+
"hidden", sa.Boolean(), server_default=sa.text("0"), nullable=False
28+
)
29+
)
30+
31+
# ### end Alembic commands ###
32+
33+
34+
def downgrade() -> None:
35+
# ### commands auto generated by Alembic - please adjust! ###
36+
with op.batch_alter_table("response", schema=None) as batch_op:
37+
batch_op.drop_column("hidden")
38+
39+
# ### end Alembic commands ###

form-designer/form_designer/components/form_editor.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,16 @@ def set_name(self, name: str):
4242
if not self._user_has_access():
4343
return
4444
with rx.session() as session:
45-
self.form.name = name
46-
session.add(self.form)
45+
if self.form.id is not None:
46+
form = session.get(Form, self.form.id)
47+
else:
48+
form = self.form
49+
form.name = name
50+
session.add(form)
4751
session.commit()
48-
session.refresh(self.form)
4952
yield FormSelectState.load_forms
50-
if self.form.id > 0:
51-
return rx.redirect(routes.edit_form(self.form.id))
53+
if form.id is not None and form.id > 0:
54+
return rx.redirect(routes.edit_form(form.id))
5255

5356
def update_field(self, field: Field):
5457
if not self._user_has_access():

form-designer/form_designer/models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ class Response(rx.Model, table=True):
8080
server_default=sqlmodel.func.now(),
8181
),
8282
)
83+
hidden: bool = False
8384
form: Form = sqlmodel.Relationship(back_populates="responses")
8485

8586
field_values: list[FieldValue] = sqlmodel.Relationship(

form-designer/form_designer/pages/response.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,18 @@ class ResponsesState(AppState):
1313
def load_responses(self):
1414
if not self.is_authenticated:
1515
return
16+
try:
17+
form_id = int(self.form_id)
18+
except ValueError:
19+
return
1620
with rx.session() as session:
17-
form = session.get(Form, self.form_id)
21+
form = session.get(Form, form_id)
1822
if not self._user_has_access(form) or form is None:
1923
self.form = Form()
2024
return
2125
self.form = form
2226
self.responses = session.exec(
23-
Response.select().where(Response.form_id == self.form_id)
27+
Response.select().where(Response.form_id == form_id)
2428
).all()
2529

2630
def delete_response(self, id: int):
@@ -60,7 +64,7 @@ def response(r: Response):
6064
rx.icon(tag="x", size=16),
6165
color_scheme="tomato",
6266
margin_right="1em",
63-
on_click=ResponsesState.delete_response(r.id),
67+
on_click=ResponsesState.delete_response(r.id).stop_propagation,
6468
),
6569
content="Delete this Response",
6670
),

form-designer/rxconfig.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22

33
config = rx.Config(
44
app_name="form_designer",
5-
tailwind=None,
5+
plugins=[rx.plugins.sitemap.SitemapPlugin()],
66
)

0 commit comments

Comments
 (0)