Add has_submittable_files to the exercises API endpoint #1357
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.
Description
What?
Adds the field has_submittable_files to the exercises API, which is true for any exercise that has submittable files and else false.
Why?
Currently each exercise has to be checked separately to see if it is submittable, leading to a lot of unnecessary requests by the IntelliJ plugin. Having the field in the exercises endpoint speeds up loading and reduces requests.
How?
The form_spec in exercise_info is checked to see if any type is file. _generate_data in exercise/cache/basetypes.py does not have type info of exercises, so isinstance(lobj, ExerciseWithAttachment) does not work.
Testing
Remember to add or update unit tests for new features and changes.
What type of test did you run?
[ADD A DESCRIPTION ABOUT WHAT YOU TESTED MANUALLY]
Did you test the changes in
Think of what is affected by these changes and could become broken
Translation
Programming style
Have you updated the README or other relevant documentation?
Is it Done?
Clean up your git commit history before submitting the pull request!