Commit Graph

12715 Commits

Author SHA1 Message Date
oliviaruizknott
dbfe2a3f2b feat: notify_credentials of changed overrides
We use the `notify_credentials` management command to keep certificate-
related data in the LMS and Credentials service in sync. We can run it
with specific arguments (user_ids, course_keys, etc.) when we notice a
data discrepancy; and it is run regularly by a Jenkins job with the
`--auto` flag every ~4 hours to keep things up-to-date.

Because we probably never want to notify credentials of of ALL the
GeneratedCertificates, the celery task must be given some arguments
to filter down to the relevant certificates. Running the management
command with the `--auto` flag (as the Jenkins job does) adds
`start_date` and `end_date` arguments of 4 hours ago and now,
respectively.

The handle_notify_credentials celery task then takes those arguments and
looks for any GeneratedCertificates that have been modified within the
given time range by checking the GeneratedCertificate modified_date.
It will send the current data for those certificates to credentials.

However, we also want to notify credentials about certificates that have
an associated CertificateDateOverride that has changed within that time
range: added, updated, or deleted. But changes to a
CertificateDateOverride won’t affect the GeneratedCertificate’s modified
date, and therefore wouldn’t be included in the list of certs cent to
credentials.

This commit adds a check for changed CertificateDateOverrides and
includes their associated GeneratedCertificates in the list of certs. We
use the CertificateDateOverride’s history model for this check so that
we can include certificates whose override was deleted.

MICROBA-1489
2021-09-10 12:32:17 -06:00
Andy Shultz
dc01bf3aad feat: add parameter to submit attempt to carry full name through
original behavior does pass the empty name through to
_update_full_name rather than just considering that as full name not
set. That's a little weird but outside the scope of this work so I've
preserved it by checking is not None rather than just using full_name
as a boolean.

MST-1015
2021-09-09 14:18:38 -04:00
Andy Shultz
695f2cd4c8 feat: prevent name update on photo verification if the name is already updated
MST-1015
2021-09-09 11:56:06 -04:00
Andy Shultz
f158fedd15 feat: only update full name if not verified name enabled
MST-1015
2021-09-09 11:56:06 -04:00
Andy Shultz
1288d964b8 docs: clarify docs for _update_full_name 2021-09-09 11:56:06 -04:00
Zia Fazal
1578b0c6ea Merge pull request #28642 from edly-io/ERTE-55
feat: Added support for enterprise id in course_grade_passed_first_time event
2021-09-09 18:37:51 +05:00
Awais Qureshi
28d2908588 Merge pull request #28649 from edx/upgrade-django-cors-headers-320--
feat: upgrade django-cors-headers to lateast version.
2021-09-09 18:06:01 +05:00
RehanAziz
1fffdc66fc feat: Added support for enterprise id in course_grade_passed_first_time event 2021-09-09 13:44:25 +05:00
Bianca Severino
2fe08ce5c1 Merge pull request #28670 from edx/bseverino/idv-pending-name
[MST-1025] Use pending name change in IDV post_save signal
2021-09-08 14:40:50 -04:00
Awais Qureshi
36df86d829 feat!: Major upgrade django-cors-headers to new version 3.2.0
BREAKING CHANGES:
- `CORS_ORIGIN_WHITELIST` now requires URI schemes.
- Added new list `CORS_ORIGIN_WHITELIST_WITH_SCHEME` which contains all links of `CORS_ORIGIN_WHITELIST` with schemes and load the desired list after checking installed version.
- For more details, visit this: https://github.com/adamchainz/django-cors-headers/blob/main/HISTORY.rst#320-2019-11-15
2021-09-08 21:39:57 +05:00
Bianca Severino
bdc8653cca fix: use pending name change in IDV post_save signal 2021-09-08 12:25:29 -04:00
David Ormsbee
309cadc973 Revert "Use new version of edx-when." (#28684)
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.
2021-09-08 11:05:35 -04:00
Olivia Ruiz-Knott
217f9b4660 Merge pull request #28601 from edx/ork/MICROBA-1487_fix-bulk-delete-date-override
refactor: Use post_delete for date override
2021-09-08 08:32:39 -06:00
Matthew Piatetsky
ea22d08909 Merge pull request #28464 from open-craft/jvdm/feat/importable-courses-api
Feature: Add permissions filter to courses API [SE-4588]
2021-09-08 08:10:08 -04:00
Tinuade Adeleke
5b9e84d321 feat: created custom pages course app plugin (#28579)
created CustomPagesCourseApp class

feat: created custom pages course app plugin

created CustomPagesCourseApp class
added CUSTOM_PAGES_HELP_URL to lms and cms settings
added entry point to setup.py

feat: added toggle to ENABLE_CUSTOM_PAGES in lms and cms settings

feat: removed the option to enable/disable the availability of custom pages course apps.
2021-09-08 12:44:37 +05:00
J. Victor Martins
6adf45df2f feat: Add permissions filter to list courses API
The new filter, called `permissions`, allows callers to filter courses
per access granted to the specified username.  Callers can now filter
courses per roles, actions, etc.
2021-09-07 14:41:50 -07:00
Chris Deery
a13587af3a feat: AA-940 Remove split_test from Masquerade dropdown (#28501)
* feat: [AA-940] Remove split_test from Masquerade dropdown
Filter content groups that are not part of a cohort from the selection
available to the select in the Masquerade bar.

Refs AA-940

Co-authored-by: cdeery <cdeery@edx.edu>
2021-09-07 12:52:06 -04:00
kenclary
42e7e785e3 Merge pull request #28551 from edx/juliasq/TNL_8061_optimize_outline_block_data_retrieval
Use new version of edx-when.
2021-09-07 09:31:18 -04:00
DawoudSheraz
e986d360c9 refactor: move course location util to common djangoapp instead of xmodule 2021-09-03 12:40:28 +05:00
Julia Eskew
a4ba37b882 feat: Optimize the querying of course block dates when querying dates for use in a
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
2021-09-02 17:45:13 -04:00
Bianca Severino
d74961f1d9 Merge pull request #28618 from edx/bseverino/program-enrollments-case
[MST-998] Search by external_user_key is now case insensitive
2021-09-02 14:27:52 -04:00
Bianca Severino
89608a2b68 fix: search by external_user_key is now case insensitive 2021-09-02 12:20:58 -04:00
Carla Duarte
e7c3d01f82 Merge pull request #28496 from edx/ciduarte/AA-877
feat: add access_expiration to progress tab view (AA-877)
2021-09-02 09:41:45 -04:00
Chris Deery
c4cedbae38 fix: [AA-950] Change coupon flag from WaffleFlag to CourseWaffleFlag (#28623)
Replacing the streak_celebration.discount_experiment_AA759 Waffle flag with
courseware.streak_discount_enabled CourseWaffleFlag

https://openedx.atlassian.net/browse/AA-950

Co-authored-by: cdeery <cdeery@edx.edu>
2021-09-02 08:32:56 -04:00
Awais Qureshi
32053c6ab4 Merge pull request #28588 from edx/loading-cors-origins-with-shceme
feat: `djang-cor-headers` need schemes with urls. Condition added for future.
2021-09-02 16:45:49 +05:00
oliviaruizknott
703c917f2a refactor: Use post_delete for date override
Previously, using the bulk delete tool in the Django admin for
`CertificateDateOverride`s would not trigger the post to the credentials
service to delete the corresponding date override stored there. This was
because we were sending the COURSE_CERT_CHANGED signal from an
overridden version of the delete() method. But the Django docs warn:

"Note that the delete() method for an object is not necessarily called
when deleting objects in bulk using a QuerySet or as a result of a
cascading delete. To ensure customized delete logic gets executed, you
can use pre_delete and/or post_delete signals."

Now we use the post_delete signal instead of overriding the delete()
method to make sure the COURSE_CERT_CHANGED signal is sent for both
individual and bulk deletes.

MICROBA-1487
2021-09-01 14:03:35 -06:00
Carla Duarte
fe435987b0 feat: add access_expiration to progress tab view (AA-877) 2021-09-01 15:12:45 -04:00
edX requirements bot
5e84e3761f feat: djang-cor-headers need schemes with urls. Adding condition to switch lists with different version.
With the PR it will load the old `CORS_ORIGIN_WHITELIST` since there is no change in `djang-cor-headers` version. In next PR this version will get upgraded.
2021-09-01 23:02:45 +05:00
Chris Deery
8d682cb447 feat: [AA-950] Productize Streak Discount (#28582)
* feat: [AA-950] Productize Streak Discount

- Change STREAK_DISCOUNT_EXPERIMENT_FLAG to STREAK_DISCOUNT_FLAG
- Remove references to "experiment" and ticket AA-759
- Made flag names more consistent
- Move segment event from get_bucket  to streak calculation
- Streak discount event edx.bi.course.streak_discount_enabled is sent when celebrations are calculated
- Convert LegacyWaffleFlags to WaffleFlags

Co-authored-by: cdeery <cdeery@edx.edu>
2021-09-01 10:55:32 -04:00
Zia Fazal
5a382d811f Merge pull request #28415 from edly-io/ERTE-77
feat: Emit course completion related events
2021-09-01 11:33:07 +05:00
Jhony Avella
95a6abcd1f revert: removing read_committed argument from outer_atomic function (#28161)
In the PR https://github.com/edx/edx-platform/pull/10659 the outer_atomic decorator/context manager was created to prevent nested atomic blocks. This method received a boolean parameter read_committed to enforce read-committed MySQL isolation level. From Django 2, the default isolation level Django sets is read-committed, so the aforementioned parameter for outer_atomic can be removed
2021-08-31 16:39:35 -04:00
SaadYousaf
bf64c34d9d feat: add program discussion for learner dashboard 2021-08-31 11:15:44 +05:00
Maria Grimaldi
54627e1101 refactor: replace User for UserFactory and its methods
This change is done so the profile is automatically created for tests users
2021-08-30 11:03:49 -04:00
Olivia Ruiz-Knott
79b8b376fa Merge pull request #28567 from edx/ork/MICROBA-1399_certificate-date-override-adr
doc: ADR for date override
2021-08-30 08:31:32 -06:00
David Ormsbee
8b17afc818 fix: prefer HTML5 video when youtube support is deprecated.
In the case where a server/course has both:

* YouTube deprecated (waffle flag: videos.deprecate_youtube = True)
* HLS enabled (ConfigModel: HLSPlaybackEnabledFlag, in video_config)

Prior to this commit, we would prefer the HLS source if one of the
HTML5 video sources specified a .m3u8 file. However it looks like this
file isn't always guaranteed to be produced.

This fix always prefers HTML5 video sources to YouTube if the server or
course is configured to deprecate YouTube, as long as at least one
non-YouTube source is found. TNL-8594.

Note that this may confuse users because we're essentially bypassing
their Studio-specified preferred primary source with a server-wide
setting.
2021-08-30 10:12:12 -04:00
Usama Sadiq
cde050618e build: Moved user and group management commands and unit tests to edx-django-utils
- Removed manage_user and manage_group commands and their unit tests from edx-platform and added then to edx-django-utils.
- Modified User.post_save signal to ensure the user profile is created when manage_user management command is run to create a user.
- Added edx-django-utils to INSTALLED_APPS for LMS and Studio.
- Moved generate_password from openedx.core.djangoapps.user_authn.utils to edx_django_utils.user along with its unit test.
2021-08-30 12:03:37 +05:00
oliviaruizknott
2bd9d663cd doc: ADR for date override 2021-08-27 14:21:31 -06:00
alangsto
b6cb629849 feat: add signal emitters for IDV (#28511)
MST-805. A signal should be emitted upon an IDV attempt being submitted or reviewed for consumption by other applications.
2021-08-26 15:29:48 -04:00
RehanAziz
db83a91ac2 feat: Emit course completion related events 2021-08-26 14:17:50 +05:00
oliviaruizknott
eb2d606283 refactor: send cert changed signal on_commit
Because we have ATOMIC_REQUESTS turned on, the COURSE_CERT_CHANGED
signal was being sent *before* the date override was committed to the
database. This means that the date override data sent to credentials on
CertificateDateOverride save() was always one commit behind.

Django provides an on_commit() function to allow us to perform actions
only after a transaction is completed successfully. I believe this
is when we want this signal to be sent.

This is an alternative to 1) disabling atomic transactions for a view
(honestly, I’m not sure which view we would target anyway), or 2)
passing more data down through the signal.

Toward MICROBA-1423
2021-08-25 15:45:17 -06:00
Maria Grimaldi
2ee52ea96c refactor: replace some create_user with UserFactory to avoid non-existent profile errors 2021-08-24 15:49:21 -04:00
alangsto
6fa89e610a fix: Allow masquerading users to see content (#28458)
If a user with staff access is masquerading as a specific student, they should be able to see content that would normally be gated for that student.
2021-08-24 09:14:01 -04:00
Azan Bin Zahid
de0f42c93e Merge pull request #28289 from edx/azan/PROD-2400
Pact Provider Verification Setup
2021-08-24 17:19:59 +05:00
Azan Bin Zahid
1cce2e952d feat: add pact verification method 2021-08-24 14:59:46 +05:00
Michael Terry
2176dd7890 feat: allow unsubcribing from a course goal with just a token
* Add unsubscribe_token uuid field to CourseGoal model
* Add endpoint to unsubcribe from just a token (no login needed)
* Add admin page for the course_goals djangoapp
* Add get_course_overview_or_404 utility method
* Clean up URL handling in course_home_api

AA-907
2021-08-23 12:07:32 -04:00
Leangseu Kim
6985e1388b fix: grading from Staff Graded Assignment xblocks are not successfully being passed
block_type isn't guarantee to be the same as item_type. In this case, item_id should be enough for filtering.

Ticket [AU-70]
2021-08-18 14:53:29 -04:00
Justin Hynes
b7085c2cf9 refactor!: Remove the request_certificate REST endpoint (#28346)
[MICROBA-1412]
[DEPR-155]

Remove the request_certificate REST endpoint from the LMS (certificates Django app)
2021-08-18 10:43:47 -04:00
Bianca Severino
1b1637f33f Merge pull request #28463 from edx/bseverino/proctoring-settings-url
[MST-859] Update proctored exam settings URL
2021-08-18 09:20:42 -04:00
mohtamba
e300ba1dbc Merge pull request #28474 from edx/mohtamba/remove-bulk-allowance-waffle-flag
Remove waffle flag for bulk allowance
2021-08-17 18:44:22 -04:00
Andrew Shultz
78a390f83d Merge pull request #28478 from edx/ashultz0/name-affirm-061
chore: update name affirmation to 0.6.1
2021-08-17 15:27:29 -04:00