Solve intermittent bug where form permissions are not applied for new forms #2470
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes / Features implemented
Django
post_save
signal is run at the end of of the Model.save() method. It is not guaranteed that the transaction will have commited at this time. This leads to situation whereXForm.DoesNotExist
exception is at times raised when a new form is created which results in users not having the correct permissions for some forms despite having the appropriate rolesUse transaction.on_commit to ensure
set_project_perms_to_xform_async.delay
in thepost_save
signal is only called after the transaction is successfulAdjust failing tests to accommodate the new change
Steps taken to verify this change does what is intended
Side effects of implementing this change
No side effects
Before submitting this PR for review, please make sure you have:
Closes #