Skip to content

Commit

Permalink
Merge pull request #896 from scidsg/bug-fix
Browse files Browse the repository at this point in the history
Fix Unique Constraint Violation in Field Creation
  • Loading branch information
glenn-sorrentino authored Feb 3, 2025
2 parents 90d09f8 + 91dbccc commit a294da9
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
13 changes: 13 additions & 0 deletions hushline/settings/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,16 @@ def handle_field_post(username: Username) -> Response | None:
if field_form.validate():
# Create a new field
if field_form.submit.name in request.form:
# Get the highest existing sort_order for this username
max_sort_order = (
db.session.scalar(
db.select(db.func.coalesce(db.func.max(FieldDefinition.sort_order), 0)).filter(
FieldDefinition.username_id == username.id
)
)
or 0
)

field_definition = FieldDefinition(
username,
field_form.label.data,
Expand All @@ -357,6 +367,9 @@ def handle_field_post(username: Username) -> Response | None:
field_form.encrypted.data,
[c["choice"] for c in field_form.choices.data],
)

field_definition.sort_order = max_sort_order + 1 # Ensure unique ordering

db.session.add(field_definition)
db.session.commit()
flash("New field added.")
Expand Down
2 changes: 1 addition & 1 deletion hushline/version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "0.3.83"
__version__ = "0.3.84"

0 comments on commit a294da9

Please sign in to comment.