Avoid the creation of empty file annotations #466
Merged
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.
Related to #464
Summary
The default contract of the
FileField
used in the files annotation form is to "validate that non-empty file data has been bound to the form." - see https://docs.djangoproject.com/en/3.2/ref/forms/fields/#django.forms.FileFieldInterestingly this check is not happening when adding file annotations. However, the emptiness of the file is definitely checked when uploading a photo in the user settings.
The difference comes from the fact the uploaded files are not bound to the files annotation form. Thus the is_valid() check is largely a no-op and this UI can create annotations with empty files.
This PR fixes this issue by properly binding the uploaded files to the form - see https://docs.djangoproject.com/en/3.2/ref/forms/api/#binding-uploaded-files
Testing
There are a few scenarios to test here:
0B