This function is a celery task but it seems like it is not being
called correctly. The way it was, it would run in process. We
update the call so that it is called asynchronously as a celery
task instead.
This may have some user facing impact as the work might now take
longer to do than when it was running in the request process.
However leaving it as is, definitely makes the user experience slower
causes us to do computationally intensive work in the web request. It
also makes it much harder to monitor as our ownership assignment tracking
for the feature does not work correctly.
It's important that request.user be set as the effective user,
because waffle flags and bits of code around the place look at it.
This should make masquerading more accurate to what the learner
sees.
This upgrades edx-organizations from 5.3.0 to 6.0.0,
the notable change being the addition of a uniqueness
constraint on `Organization.short_name`.
TNL-7645
Banner image URL is exposed on the course list and course details API
endpoints. The new `banner_image_url` API field has both the relative
and absolute URLs for the image it represents, if it is set.
Previously, dismissing one course update would disable all future
updates. But that feels a bit limiting.
Instead, these are the new rules:
- If the newest update has not been dismissed yet, it gets displayed.
- If the newest update has been dismissed, we display nothing.
- Editing the newest update will cause it to be displayed again.
- New updates get displayed, even if previous updates were dismissed.
This commit includes a light refactoring and addition of some utility
methods to help manage the above.
It also notes that the learning MFE does not use the "latest_update"
waffle option, which controls the labeling of the update message.
When rolling out #25477, we dropped hundreds of email activation
tasks due to the renaming of student.send_activation_email
to common.djangoapps.student.send_activation_email,
and lost more when we rolled that PR back.
This happens because of blue/green deployment:
old workers are still online for a while after deploying,
so there is a period of time when the task names are mismatched.
To prevent this from happening again, this will make
it so the import changes don't change the names of
any of the Celery tasks.