Skip to content

Commit e9eb42d

Browse files
committed
feat: Add event emission for external grader scores
This commit adds the EXTERNAL_GRADER_SCORE_SUBMITTED event emission to the put_result endpoint in the XQueueViewSet. When a grader submits a result and the score is successfully saved, the system now emits an event with all the necessary information for the LMS to render the graded XBlock. Key changes: - Add queue_key field to ExternalGraderDetail model - Include queue_key in create_external_grader_detail method - Emit EXTERNAL_GRADER_SCORE_SUBMITTED event after successful score update - Implement robust false to propagate error and put submission in pending queue again - Add migration for the new queue_key field - Add openedx-events dependency This enables the event-driven approach for updating XBlocks with scoring data from the edx-submissions service, supporting the gradual migration away from HTTP-based XQueue callbacks.
1 parent 1f3b38b commit e9eb42d

15 files changed

Lines changed: 438 additions & 235 deletions

File tree

requirements/base.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# This file is autogenerated by pip-compile with Python 3.12
2+
# This file is autogenerated by pip-compile with Python 3.11
33
# by the following command:
44
#
55
# make upgrade
@@ -8,7 +8,7 @@ asgiref==3.8.1
88
# via django
99
django==4.2.19
1010
# via
11-
# -c /home/runner/work/edx-submissions/edx-submissions/requirements/common_constraints.txt
11+
# -c /Users/leonardoberoes/Documents/Aulasneo/Projects/edx-submissions/requirements/common_constraints.txt
1212
# -r requirements/base.in
1313
# django-model-utils
1414
# djangorestframework

requirements/ci.txt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,69 @@
11
#
2-
# This file is autogenerated by pip-compile with Python 3.12
2+
# This file is autogenerated by pip-compile with Python 3.11
33
# by the following command:
44
#
55
# make upgrade
66
#
77
cachetools==5.5.2
88
# via
9-
# -r /home/runner/work/edx-submissions/edx-submissions/requirements/tox.txt
9+
# -r /Users/leonardoberoes/Documents/Aulasneo/Projects/edx-submissions/requirements/tox.txt
1010
# tox
1111
certifi==2025.1.31
1212
# via requests
1313
chardet==5.2.0
1414
# via
15-
# -r /home/runner/work/edx-submissions/edx-submissions/requirements/tox.txt
15+
# -r /Users/leonardoberoes/Documents/Aulasneo/Projects/edx-submissions/requirements/tox.txt
1616
# tox
1717
charset-normalizer==3.4.1
1818
# via requests
1919
colorama==0.4.6
2020
# via
21-
# -r /home/runner/work/edx-submissions/edx-submissions/requirements/tox.txt
21+
# -r /Users/leonardoberoes/Documents/Aulasneo/Projects/edx-submissions/requirements/tox.txt
2222
# tox
2323
coverage[toml]==7.6.12
2424
# via coveralls
2525
coveralls==4.0.1
2626
# via -r requirements/ci.in
2727
distlib==0.3.9
2828
# via
29-
# -r /home/runner/work/edx-submissions/edx-submissions/requirements/tox.txt
29+
# -r /Users/leonardoberoes/Documents/Aulasneo/Projects/edx-submissions/requirements/tox.txt
3030
# virtualenv
3131
docopt==0.6.2
3232
# via coveralls
3333
filelock==3.17.0
3434
# via
35-
# -r /home/runner/work/edx-submissions/edx-submissions/requirements/tox.txt
35+
# -r /Users/leonardoberoes/Documents/Aulasneo/Projects/edx-submissions/requirements/tox.txt
3636
# tox
3737
# virtualenv
3838
idna==3.10
3939
# via requests
4040
packaging==24.2
4141
# via
42-
# -r /home/runner/work/edx-submissions/edx-submissions/requirements/tox.txt
42+
# -r /Users/leonardoberoes/Documents/Aulasneo/Projects/edx-submissions/requirements/tox.txt
4343
# pyproject-api
4444
# tox
4545
platformdirs==4.3.6
4646
# via
47-
# -r /home/runner/work/edx-submissions/edx-submissions/requirements/tox.txt
47+
# -r /Users/leonardoberoes/Documents/Aulasneo/Projects/edx-submissions/requirements/tox.txt
4848
# tox
4949
# virtualenv
5050
pluggy==1.5.0
5151
# via
52-
# -r /home/runner/work/edx-submissions/edx-submissions/requirements/tox.txt
52+
# -r /Users/leonardoberoes/Documents/Aulasneo/Projects/edx-submissions/requirements/tox.txt
5353
# tox
5454
pyproject-api==1.9.0
5555
# via
56-
# -r /home/runner/work/edx-submissions/edx-submissions/requirements/tox.txt
56+
# -r /Users/leonardoberoes/Documents/Aulasneo/Projects/edx-submissions/requirements/tox.txt
5757
# tox
5858
requests==2.32.3
5959
# via coveralls
6060
tox==4.24.1
61-
# via -r /home/runner/work/edx-submissions/edx-submissions/requirements/tox.txt
61+
# via -r /Users/leonardoberoes/Documents/Aulasneo/Projects/edx-submissions/requirements/tox.txt
6262
urllib3==2.2.3
6363
# via
64-
# -c /home/runner/work/edx-submissions/edx-submissions/requirements/common_constraints.txt
64+
# -c /Users/leonardoberoes/Documents/Aulasneo/Projects/edx-submissions/requirements/common_constraints.txt
6565
# requests
6666
virtualenv==20.29.2
6767
# via
68-
# -r /home/runner/work/edx-submissions/edx-submissions/requirements/tox.txt
68+
# -r /Users/leonardoberoes/Documents/Aulasneo/Projects/edx-submissions/requirements/tox.txt
6969
# tox

requirements/common_constraints.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
# See BOM-2721 for more details.
44
# Below is the copied and edited version of common_constraints
55

6+
# This is a temporary solution to override the real common_constraints.txt
7+
# In edx-lint, until the pyjwt constraint in edx-lint has been removed.
8+
# See BOM-2721 for more details.
9+
# Below is the copied and edited version of common_constraints
10+
611
# A central location for most common version constraints
712
# (across edx repos) for pip-installation.
813
#

0 commit comments

Comments
 (0)