LMS Courseware access to Old Mongo courses was already removed in
fc8601de (https://github.com/openedx/edx-platform/pull/30172). This
commit makes direct links to the other tabs (progress, instructor
dashboard, discussion, static tabs) fail with a 404 error on Old
Mongo courses.
Upcoming work to remove parent/child relationships from the Old
Mongo Modulestore would have broken these pages anyway.
[MICROBA-1510]
- Add support for updating an instructor task schedule date via REST API
- Add support for updating the contents of a scheduled course email via REST API
Relax load when bringing all the course children when fetching a course in the instructor dashboard page.
When loading the Instructor dashboard, the course is fetched with
3cbc5b9cdc/lms/djangoapps/instructor/views/instructor_dashboard.py (L122)
Please note that the parameter **depth** is zero, so the course is fetched with no children (sections, subsections, sequentials, etc). In a subsequent part of the code, the extensions tab is loaded, specifically in :
3cbc5b9cdc/lms/djangoapps/instructor/views/instructor_dashboard.py (L585)
Which eventually call the method **get_units_with_due_date**
3cbc5b9cdc/lms/djangoapps/instructor/views/tools.py (L121) .
This method iterates over the course and its children to find blocks with due dates. This iteration was taking too long unless the course is fetched with **depth** None, which brings all the children of the course, reason why this commit is created.
[MICROBA-1507]
* Adds support to the bulk course email tool to extract a schedule and timezone from a `send_email` request.
* Submits the task for scheduling when needed.
Places where IDV is referenced for blocking proctoring or displaying the IDV status to students and instructors should be removed. This includes the use of the ENABLE_INTEGRITY_SIGNATURE setting, which was used in part to deprecate IDV in those specified places. Other areas where ENABLE_INTEGRITY_SIGNATURE is used (such as for showing/hiding the integrity signature, for the verification deadline, or for certs) shall be left as is due to deprecation concerns.
[MICROBA-1508]
- Adds the InstructorTaskSchedule model
- Adds the HistoricalInstructorTaskSchedule model
- Adds utility function used to create a InstructorTaskSchedule instance
- Adds a public `create_course_email` Python API function to the bulk_email app that can be imported and used in external apps
- Adds a new `test_api_helper.py` test file (with tests for the new `schedule_task` function) to the instructor_task app
- Adds a new `test_api.py` test file (with tests for the new `create_course_email` function to the bulk_email app
Creates a link to the new communication mfe's bulk email tool in the
instructor dashboard version. Staff can now use either experience. In
the future, we plan on turning off the old experience, like analytics.
[MICROBA-1666]
This reverts commit 53041a2d34 after course team started reporting issues of images in emails not respecting dimensions set with the email editor.
After a brief investigation we found unexpected attributes (like `width` and `height` of an image) being stripped from the HTML.
[MICROBA-1666]
* Use bleach to sanitize user-provided content of bulk course emails before storing in the database.
* Add new `BULK_COURSE_EMAIL_ALLOWED_HTML_TAGS` setting to enable configuration of allowed HTML tags in bulk course emails.
a valid LMS user ID is supplied. If Braze cannot be used, AWS SES is used
instead. However, sometimes the SES score can prevent email from being delivered.
Make a best effort in every case to obtain a user ID and send it along with
the email to be sent by ACE and Braze.
TNL-9417
* feat!: Change the way tabs are ordered
The change imposes a new ordering for tabs based on their new priority. When reordering tabs, this ordering will be maintained.
* fix: Apply suggestions from code review
Co-authored-by: Farhaan Bukhsh <farhaan@opencraft.com>
* fix: review feedback
Co-authored-by: Farhaan Bukhsh <farhaan@opencraft.com>
* chore: update deprecated import from collections
* chore: remove outdated imports from markdown library
as it hasn't been supported since 2.0.3 and we're on 3.x.
This was deprecated at least as early as 2012!
* docs: add docstring and remove lint-amnesty to markdown plugin
* chore: remove deprecated etree import
* style: remove unnecessary-comprehension for sets
* style: resolve a number of amnestied pylint complaints
Co-authored-by: stvn <stvn@mit.edu>
* feat: Adds discussions settings for new discusions experience
This commit adds new discussions settings for the new discussions experience. These are stored in the course so they can be a part of course import/export flow.
These are also added to the discussions configuraiton API to allow MFEs to update the settings.
The discussions API is currently available via LMS, however that means it cannot save changes to the modulestore. This also adds the API to the studio config so it can now also be accessed from studio and be used to save course settings.
* fix: tests
This commit adds new discussions settings for the new discussions experience. These are stored in the course so they can be a part of course import/export flow.
These are also added to the discussions configuraiton API to allow MFEs to update the settings.
The discussions API is currently available via LMS, however that means it cannot save changes to the modulestore. This also adds the API to the studio config so it can now also be accessed from studio and be used to save course settings.
This adds two optional columns to the bulk register/enroll csv: cohort and
course mode. This enables setting the course mode and cohort for a user in the
same process as bulk enrolling/registering.
course outline, which don't need block dates below the subsection level of a course.
Pass the course's published version to all the appropriate places where edx-when's API
is called - to allow edx-when to more efficiently cache queried/processed results.
TNL-8061
Reverting because of errors seen in proctoring. The error from splunk:
File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/edx_proctoring/views.py", line 590, in get
data['onboarding_release_date'] = effective_start.isoformat()
AttributeError: 'NoneType' object has no attribute 'isoformat'
The effective date is coming from learning_sequences, which ultimately
comes from edx-when.
course outline, which don't need block dates below the subsection level of a course.
Pass the course's published version to all the appropriate places where edx-when's API
is called - to allow edx-when to more efficiently cache queried/processed results.
TNL-8061
[MICROBA-1354]
* Update Python API function named `cert_generated_enabled` to `has_self_generated_certificates_enabled` to more accurately reflect the purpose of the function
[MICROBA-1087]
[DEPR-155]
* Remove `generate_example_certificates` functionality
* Adjust Instructor dashboard slightly to prevent people from clicking the `Generate Example Certificates` button, remove form/code that called the `generate_example_certificates` endpoint.
[MICROBA-1179]
- Continue renaming/removal of code referring to the Certificate "white list".
The Certificates Django app `CertificateWhitelist` model is going away in an effort to make our codebase more inclusive. It is being replaced
with the `CertificateAllowlist` model. This PR continues to replace references to the Certificate "whitelist" with "allowlist" wherever
possible. There should be no change in functionality, nor are there any changes in appearance.