Feature/37905 instructor dashboard grading post endpoints#38299
Feature/37905 instructor dashboard grading post endpoints#38299brianjbuck-wgu wants to merge 4 commits intoopenedx:masterfrom
Conversation
|
Thanks for the pull request, @brianjbuck-wgu! This repository is currently maintained by Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review. 🔘 Get product approvalIf you haven't already, check this list to see if your contribution needs to go through the product review process.
🔘 Provide contextTo help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:
🔘 Get a green buildIf one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green. DetailsWhere can I find more information?If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources: When can I expect my changes to be merged?Our goal is to get community contributions seen and reviewed as efficiently as possible. However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:
💡 As a result it may take up to several weeks or months to complete a review and merge your PR. |
There was a problem hiding this comment.
Pull request overview
Adds new Instructor API v2 “grading” endpoints intended to support instructor dashboard workflows for resetting attempts, deleting learner state, rescoring, and overriding scores.
Changes:
- Introduces new grading endpoints in Instructor API v2 for reset attempts, delete state, rescore, and score override operations (sync + async patterns).
- Adds new v2 serializers for sync/async operation results and the score override request body.
- Adds test coverage for the new endpoints and updates v2 URL routing.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
lms/djangoapps/instructor/views/serializers_v2.py |
Adds serializers for grading operation responses and score override request validation. |
lms/djangoapps/instructor/views/api_v2.py |
Implements new grading endpoints plus helper functions for parsing and learner resolution. |
lms/djangoapps/instructor/views/api_urls.py |
Wires new grading endpoints into the Instructor API v2 URLconf. |
lms/djangoapps/instructor/tests/views/test_api_v2.py |
Adds endpoint tests for reset attempts, delete state, rescore, and score override behaviors. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
can you provide a quick summary on what does each endpoint? |
|
can we keep same attributes and logic from:
I think what needs to be changed/improved is the response after frontend makes the POST right not it throws a string directly, we should handle it in a better structure following json or idk |
f1aced3 to
c0269a6
Compare
@diana-villalvazo-wgu: Here's a summary of each grading endpoint:
All paths are prefixed with So yes, the rescore endpoint handles both cases — the |
Yes, the v2 endpoints use the exact same underlying logic as the v1 endpoints:
The main improvement is exactly what you described. Instead of returning raw strings, all v2 responses are structured JSON: Synchronous (200): {"success": true, "learner": "john", "message": "Attempts reset successfully"}Asynchronous (202): {"task_id": "abc-123", "status_url": "/api/instructor/v2/courses/.../tasks/abc-123", "scope": {"learners": "john", "problem_location": "block-v1:..."}}Errors (4xx): {"error": "Learner not found"} |
No description provided.