We are lacking information in Flower about our Celery tasks that are
marked as successful but are actually failing.
Attempt to remove ignore_result=True to see if this is suppressing
valuable debugging information.
On running the management command, we get the folowing error:
kombu.exceptions.EncodeError: Object of type User is not JSON serializable
Pass a string of the username instead in the parameters of the tasks
created by the expire_and_create_entitlements management command.
* fix: EntitlementSupportDetail.action is EXPIRE, not EXPIRED
* fix: pass list of entitlement ids, not QuerySet subset for Celery json parser
On running the management command, we get the folowing error:
kombu.exceptions.EncodeError: Object of type CourseEntitlement is not JSON serializable
Pass a list of ints instead of a QuerySet object in the parameters of
the tasks created by the expire_and_create_entitlements management
command.
Not much of an optimization, but might shave a couple seconds if the
number of entitlements on production are large.
Django will use the _result_cache if the QuerySet has already been
retrieved:
107865780a/django/db/models/query.py (L597-L598)
BREAKING CHANGE: This removes the following deprecated shims from the runtime:
`replace_urls`, `replace_course_urls`, `replace_jump_to_id_urls`. XBlocks need
to use the `replace_urls` service instead.
* feat: add xblock endpoint for updating an xblock
fix: remove debugger
feat: make function call more generic
refactor: just use request.json for request data as before
refactor: extract method
fix: revert wrong method change
fix: refactor correct method
feat: use handle_xblock method so that we can do more than update xblocks
fix: usage_key_string defaults to None
add all CRUD operations
fix usage key parameter
refactor: create /views folder
refactor: move xblock view functions to xblock_services
fix: tests
fix: tests
refactor: move xblock API endpoint to contentstore
* docs: add explanatory comment to new xblock_service
* feat: add feature flag for enabling content editing api
* feat: raise 404 if studio content api is disabled
* tests: test xblock endpoint
* test: make all post tests work
* test: check that xblock_handler receives correct args
* refactor: create util mixin for course factories with staff
* refactor: extract course staff authorization tests
* refactor: extract tests to api view testcase class
* test: add get tests
* test: fix tests
* test: fix tests
* test: fix tests
* test: add all crud tests
* fix: refactor to fix tests
* fix: merge conflict
* fix: merge conflict
* fix: tests after merge
* fix: json request decorator
* fix: lint
* fix: lint
* fix: lint
* fix: lint
* fix: new test files
* fix: lint
* fix: lint and apply PR suggestions
* fix: lint
* fix: lint
* fix: lint
* fix: lint
* fix: lint
* fix: lint
* feat: allow course entitlements REST API to be filtered on course_uuid
* feat: add field to filter out entitlements with null expired_at values
* chore: update tests
After changes from #31472, the user service of a "leaf" XBlock gets overridden
with the one created for its parent (SequenceBlock). Therefore, the
`requires_per_student_anonymous_id` is ignored in these XBlocks. The
subsequent renders of an XBlock (e.g., when requesting the solution) use
the student-specific IDs.
This removes choosing the proper ID (course-specific or student-specific) from
the runtime initialization. Instead, both IDs are passed to the user service.
There are only two XBlocks that relied on the
`requires_per_student_anonymous_id` - `ProblemBlock` and `HtmlBlock`. They
now request the "deprecated" (student-specific) user ID directly from the user
service.
* feat: add course mode expiration explicit to admin
Adds a checkbox for defining the expiration_datetime_is_explicit to the course_mode Django admin screen.
* fix: Change labels to use "lock"
* fix: increment migration name number
* fix: delete migration
delete the migration and recreate in the next commit
* fix: add back migration
Add back the migration to hopefully fix strange failing test.
* fix: fix failing test
We would like to catch an error in SAML auth so that
we can handle it better in our observability. This
catches the original generic error and raises it as a more
specific one.
https://github.com/edx/edx-arch-experiments/issues/154