Fix dGC height, weight and BMI fields for CSV upload #524
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.
Fixes #523
The code to save these fields was in
VisitForm.save()
. This wasn't being called during CSV upload.I had previously tried this with
PatientForm.save()
but hit two road blocks:ModelForm
base implementation throws aValueError
if validation has failedI've decided the best thing to do is just to call these methods, as otherwise it's likely we'll forget to update both places where derived fields need to be saved. Our overrides of
save
don't callsuper().save
but that's not a problem in current versions of Django. The risk is that future versions will add functionality in there that we'll miss out on. But for CSV uploads at least the functionality is heavily unit tested at a higher level.I've tested a 1600 row CSV (100 patients, 16 visits each) and it takes the same amount of time to upload as before, so the new
sync_to_async
calls don't regress performance in any practical sense.