apluslms / a-plus

A+ frontend portal - A+ LMS documentation:
https://apluslms.github.io/
Other
64 stars 72 forks source link

Add has_submittable_files to the exercises API endpoint #1357

Closed jaakkonakaza closed 2 months ago

jaakkonakaza commented 3 months ago

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!