Commit Graph

4392 Commits

Author SHA1 Message Date
Braden MacDonald
96e5ff8dce feat: store split modulestore's course indexes in Django/MySQL
Split modulestore persists data in three MongoDB "collections": course_index (list of courses and the current version of each), structure (outline of the courses, and some XBlock fields), and definition (other XBlock fields). While "structure" and "definition" data can get very large, which is one of the reasons MongoDB was chosen for modulestore, the course index data is very small.

By moving course index data to MySQL / a django model, we get these advantages:
* Full history of changes to the course index data is now preserved
* Includes a django admin view to inspect the list of courses and libraries
* It's much easier to "reset" a corrupted course to a known working state, by using the simple-history revert tools from the django admin.
* The remaining MongoDB collections (structure and definition) are essentially just used as key-value stores of large JSON data structures. This paves the way for future changes that allow migrating courses one at a time from MongoDB to S3, and thus eliminating any use of MongoDB by split modulestore, simplifying the stack.
2021-10-07 10:59:47 -04:00
Muhammad Soban Javed
fc14dba632 Merge pull request #28968 from edx/iamsobanjaved/django32-user-api-bool-fix
refactor: use value for filtering indexed boolean field
2021-10-07 17:53:06 +05:00
Jawayria
7d50ce104a refactor: use value to filter indexed boolean field (#28970)
* refactor: use value to filter indexed boolean field

* Update views.py

Co-authored-by: Awais Qureshi <awais.qureshi@arbisoft.com>
2021-10-07 17:52:45 +05:00
Soban Javed
a830b08f05 refactor: use value for filtering indexed boolean field 2021-10-07 16:06:58 +05:00
Kshitij Sobti
3e05e0f49b feat: add support for enabling/disabling the wiki app (#28889)
Currently the wiki app can't be enabled or configured. This change allows enabling/disabling the wiki app which effectively hides/shows the wiki tab.
2021-10-07 11:04:03 +05:00
Matthew Piatetsky
449d5c7a2d feat: only email users about their goal in the morning in their timezone (#28922) 2021-10-06 15:02:03 -04:00
Matthew Piatetsky
d7cc866280 feat: surface goals in courseware api (#28952) 2021-10-06 12:28:06 -04:00
Bianca Severino
12cdfa6201 Merge pull request #28927 from edx/bseverino/same-name-change
[MST-1105] Prevent name change request if requested name is identical to existing name
2021-10-06 11:07:40 -04:00
Bianca Severino
e9d22fc190 fix: prevent name change request if requested name is identical to the existing name 2021-10-06 10:01:23 -04:00
Awais Jibran
aac6c4c4cb fix: default discussion config (#28900)
* fix: default discussion config

* refactor: add closing bracket

Co-authored-by: Asad <asadazam93@gmail.com>
2021-10-06 16:37:16 +05:00
João Victor Martins
1fc33070c3 docs: Add ADR for LTI tools in content libraries 2021-10-05 10:11:06 -07:00
Muhammad Soban Javed
d70c8ab968 Merge pull request #28680 from edx/iamsobanjaved/jsonfield-switch
feat: replace jsonfield2 with jsonfield
2021-10-05 22:03:30 +05:00
Muhammad Soban Javed
e58cae34e1 Merge pull request #28796 from edx/iamsobanjaved/django30-lang-BOM-2783
fix: use language preference from cookie instead of from session
2021-10-05 18:43:57 +05:00
Aarif
7d2cc016ec fix: added type annotations to fix mypy failure in CI (#28933) 2021-10-05 17:04:11 +05:00
Soban Javed
dd591dba55 feat: replace jsonfield2 with jsonfield
- updating all packages
- added migrations
2021-10-05 16:30:43 +05:00
Zachary Hancock
ae0927713d fix: consistent error response on name change (#28866) 2021-10-04 16:32:34 -04:00
Aarif
c162a25045 fix: fixed build errors blocking django 3.1 and 3.2 tests (#28923) 2021-10-05 00:39:08 +05:00
Régis Behmo
0af38bf2a7 build: run github actions on pull requests (#27786) 2021-10-04 21:29:18 +05:00
Soban Javed
44ddbdf925 fix: use cookies for storing language instead of session
- Fixed LANGUAGE_COOKIE settings name to LANGUAGE_COOKIE_NAME beacuse later is recognised by django
- Added test to verify cookies use in dark lang middleware
- Fixing Django 3.0 tests
2021-10-04 21:00:29 +05:00
Kyle McCormick
6ea900cba6 docs: remove link to edX.org-internal coursegraph queries (#28918)
I had thought this wiki page was publicly accessible, but it
turns out that it is restricted to edX employees. Making the
page publicly visible would involve editing some queries
to remove edX.org-specific information, which is doable but
not something I can commit to right now.
2021-10-04 11:34:29 -04:00
Robert Raposa
e41520dbae feat: return user id from login_refresh (#28905)
To enhance monitoring of login_refresh issues that happen
in the frontend, return user id as part of successful
refreshes.
2021-10-04 11:00:07 -04:00
Soban Javed
ec5f461d78 fix: update test for race condition while saving course overview
This test was failing for Django 3 and during investigation it found that it isn't working as per expected due to introduction of caching. So fixed the test case to avoid caching to mimic race condition.

BOM-2799
2021-10-01 19:08:57 +05:00
Awais Jibran
872de99acc fix: textbooks should be enabled if course has any textbooks enabled. (#28887)
fix: proctoring settings to show pop up modal
fix: custom pages to be "disabled" by defualt
fix: only build lagacy link when app sends any link
2021-10-01 16:26:14 +05:00
Matthew Piatetsky
be5241a96d Merge pull request #28865 from edx/AA-905b
[AA-905] Refactor flag for recording user activity
2021-09-30 08:51:30 -04:00
Matthew Piatetsky
ae618151a9 fix: Remove debugging flag that is no longer necessary and refactor 2021-09-29 15:05:14 -04:00
David Ormsbee
82441d6f87 Merge pull request #28837 from edx/ormsbee/edx_when_outline_optimization
Re-enable edx-when outline optimization
2021-09-29 09:17:39 -04:00
David Ormsbee
deaf80f346 revert: "[BD-13] Let ModuleSystem use UserService" (#28857)
This caused a regression where anonymous_id values were not as expected.
Reverting for now, with investigation to follow.
2021-09-27 15:42:35 -04:00
Julia Eskew
cc3747add6 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-27 12:02:59 -04:00
David Ormsbee
3827f4c90d Merge pull request #28440 from open-craft/jill/BD-13-user-service
[BD-13] Let ModuleSystem use UserService
2021-09-24 09:26:43 -04:00
uzairr
c83750ff58 add hipb api client 2021-09-24 13:09:14 +05:00
Usama Sadiq
484cd536e2 fix: Fixed new pylint warnings (#28724) 2021-09-23 17:54:04 +05:00
Ivo Branco
6f0255bc60 Fix use a registration field order when using a registration extension form (#26633) 2021-09-23 11:07:49 +05:00
Jillian Vogel
c41e7fb93a refactor: deprecate ModuleSystem user attributes in favor of user service
The following ModuleSystem attributes are deprecated by this change, and should be pulled directly from the user service instead:

* anonymous_student_id
* seed
* user_id
* user_is_staff

Related changes:

* Removes the `user` and `anonymous_student_id` parameters from the ModuleService constructor.
* Stores anonymous_user_id in XBlockDjangoUserService's opt_attr
* Pulls out constants used by DjangoXBlockUserService opt_attr so they can be used in the platform code.
* LmsModuleSystem uses the user service created in wrapper function for runtime.publish to avoid requiring the user
  service to be "needed" by all XBlocks.
* LmsModuleSystem no longer checks for instances of XModuleDescriptor when deciding what kind of anonymous_user_id to
  provide:  all XModules are XBlocks, so this check is unnecessary.
* XBlockRuntime returns a user service when requested
* Adds tests for deprecated ModuleSystem attributes and changes to XBlockDjangoUserService.
2021-09-23 11:41:43 +09:30
Binod Pant
8f59d5e4a2 fix: 🐛 Remove add_user_to_course_cohort function (#28824)
it is not needed, and it causes a circular dep now for some reason which we don't need since we are removing that function altogether

ENT-4974
2021-09-22 21:15:39 -04:00
Felipe Montoya
dbb4658819 Merge pull request #28640 from eduNEXT/MJG/2nd_batch_openedx_events
[BD-32] feat: add 2nd batch of Open edX Events
2021-09-22 14:12:06 -05:00
Bianca Severino
0484799f84 fix: remove special exam mfe flags 2021-09-22 09:07:33 -04:00
Tim McCormack
0bf7cc13f6 doc: Small clarification to CookieName Change middleware instructions (#28804) 2021-09-21 13:45:26 +00:00
Sarina Canelake
c699923d03 Merge pull request #28628 from edx/sarina/i18n-tuneup
fix: abstract edX-specific strings
2021-09-21 08:57:58 -04:00
Muhammad Soban Javed
98de16f97a Merge pull request #28722 from edx/iamsobanjaved/django30-re-path-fix
fix: added default value for parameter to fix re path issue in django 30
2021-09-21 16:15:10 +05:00
Bianca Severino
a3df1472c7 Merge pull request #28800 from edx/bseverino/proctoring-enrollments
[MST-866] Use course overviews instead of modulestore in enrollments service
2021-09-20 15:34:57 -04:00
Bianca Severino
c79518d806 fix: use course overviews instead of modulestore in enrollments service 2021-09-20 14:22:47 -04:00
Matthew Piatetsky
ba7518304c Merge pull request #28675 from edx/AA-905
Populate the course goals user activity table when a user visits course-specific pages
2021-09-20 13:52:27 -04:00
Matthew Piatetsky
3200851563 start addressing comments 2021-09-20 13:08:12 -04:00
sarina
0c74d347f7 fix: abstract edX-specific strings 2021-09-19 14:01:20 -04:00
Soban Javed
56d12bf230 feat!: upgrade pyjwt to version 2.1.0 2021-09-17 16:08:15 +05:00
Kshitij Sobti
a35fa080b3 docs: ADR that documents how MFEs can access in-context discussions [BD-38] [TNL-8396] [BB-4367] (#28452)
* docs: ADR that documents how MFEs can access in-context discussions
This ADR proposes the mechanism for MFEs to get access to the discussion embed for units.

* Update 0005-in-context-discussion-course-blocks.rst

* Update 0005-in-context-discussion-course-blocks.rst
2021-09-17 14:31:19 +05:00
Muhammad Soban Javed
2845786a14 Merge pull request #28723 from edx/iamsobanjaved/django-30-db-args
test: fix skip-checks in a test for django 30
2021-09-16 13:47:37 +05:00
Maria Grimaldi
1c447e6176 feat: add 2nd batch of Open edX Events
* Add COURSE_ENROLLMENT_CHANGED: sent after the enrollment update
* Add COURSE_UNENROLLMENT_COMPLETED: sent after the user's unenrollment
* Add CERTIFICATE_CREATED after the user's certificate generation has
been completed
* Add CERTIFICATE_CHANGED: after the certification update has been
completed
* Add CERTIFICATE_REVOKED: after the certificate revocation has been
completed
* Add COHORT_MEMBERSHIP_CHANGED: when a cohort membership update ends
2021-09-15 14:50:28 -04:00
Samuel Walladge
c3e4976d4d fix: crash in retrieving blockstore bundle links
If the bundle is deleted, `blockstore_cache.get_bundle_version_number(bundle_uuid)`
will raise an error.
Catch this error in `get_bundle_links`,
so the REST api doesn't crash with a 500 error when a linked bundle is deleted.
2021-09-15 10:13:07 -07:00
alangsto
9b204debf4 feat: check if profile name changes are valid for name affirmation. (#28697)
MST-970. If name affirmation is enabled, a user should only be allowed to make limited edits to their profile name before they are required to go through IDV. Right now, the allowable edits are limited to:

* add/delete/replace one character (including one space on either side)

Edits that are not allowed, and therefore require IDV include:

* changing 2 or more characters
* changing their name 3 or more times

This behavior will not be enabled until name affirmation is fully rolled out, so there should be no noticeable difference in account settings behavior at the time this is merged.
2021-09-15 09:53:30 -04:00