Commit Graph

1318 Commits

Author SHA1 Message Date
Kyle McCormick
e800ae7622 feat: provisionally support V2 libraries in LibraryContentBlock (randomized only) (#33263)
Refactors and reworks the LibraryContentBlock so that its
sync-from-library operations are asynchronous and work with
V2 content libraries. This also required us to make
library_content block duplication asynchronous, as that
involves syncing from the source library.

For the sake of clarity, this PR includes two major method renames:

* update_children(...) -> sync_from_library(...)
* refresh_library(...) -> sync_from_library(upgrade_to_latest=True, ...)

an an XBlock HTTP handler rename:

  /refresh_children -> /upgrade_and_sync

There are still a couple issues with import or duplication
of library_content blocks referencing V2 libraries other than
latest. These will be resolved in an upcoming PR.

Part of: https://openedx.atlassian.net/wiki/spaces/COMM/pages/3820617729/Spec+Memo+Content+Library+Authoring+Experience+V2
Follow-up work: https://github.com/openedx/edx-platform/issues/33640

Co-authored-by: Connor Haugh <chaugh@2u.com>
Co-authored-by: Eugene Dyudyunov <evgen.dyudyunov@raccoongang.com>
2023-11-20 15:58:10 +00:00
Yusuf Musleh
e311ef50ec feat: Studio menu/button to display Unit's Tags (feature flagged) (#33563) 2023-11-08 12:23:05 -08:00
Zachary Hancock
a4b593193d fix: practice exams assigned to wrong type (#33661) 2023-11-06 16:16:45 -05:00
Feanil Patel
7202c22e1d Merge pull request #33373 from openedx/feanil/update_password_length_default
feat: Update the minimum password length.
2023-10-17 10:08:15 -04:00
Feanil Patel
e3851ab3d1 test: Update to reuse variables in more places.
Some of the places where we had explicit copies of the password were not
necessary so we referece the exsting TEST_PASSWORD variable where
possible.
2023-10-16 12:33:25 -04:00
Feanil Patel
64e91d4080 test: Update to an even longer password. 2023-10-12 10:31:13 -04:00
Feanil Patel
1e2ea85372 test: Update more tests that had short passwords. 2023-10-10 16:36:26 -04:00
Zachary Hancock
835a81c466 feat: handle exam events for credit state (#33402)
Handles exam related events from the event bus that impact credit state. Functionally this will behave the same as the existing CreditService which is called by edx-proctoring. This enables edx-exams (an IDA) to have the same behavior.
2023-10-03 16:50:47 -04:00
Kaustav Banerjee
62cfe6f3a9 fix: fetch organizations list only for granted course creators (#33333)
* fix: fetch organizations list only for granted course creators

* fix: add ability for course instructors to create libraries same as course staff
2023-10-03 12:46:47 -04:00
Awais Qureshi
bceba32f0a Upgrade django-storages to 1.14 ( max ver ) (#33312)
* feat!: upgrading `django-storages` to `1.14`
2023-09-25 15:16:59 +05:00
Awais Qureshi
4943674fc1 feat!: upgrading django-storages to 1.13.2 (#33301)
* feat!: upgrading `django-storages` to `1.13.2`
2023-09-21 16:56:50 +05:00
Yusuf Musleh
3eb4e0ce9c feat: Update new files notification banner styles (#33197)
Uses the updated styles for the notification based on the new designs.
Includes a button to open view the files directly in the notification.

This also fix a bug where the notification was not appearing when paste
a whole Unit.
2023-09-15 08:58:50 -07:00
Sagirov Evgeniy
c5d1807c81 feat!: remove most Old Mongo functionality (#31134)
This commit leaves behind just enough Old Mongo (DraftModulestore)
functionality to allow read-only access to static assets and the
root CourseBlock. It removes:

* create/update operations
* child/parent traversal
* inheritance related code

It also removes or converts tests for this functionality.

The ability to read from the root CourseBlock was maintained for
backwards compatibility, since top-level course settings are often
stored here, and this is used by various parts of the codebase,
like displaying dashboards and re-building CourseOverview models.

Any attempt to read the contents of a course by getting the
CourseBlock's children will return an empty list (i.e. it will look
empty).

This commit does _not_ delete content on MongoDB or run any sort of
data migration or cleanup.
2023-09-06 10:01:31 -04:00
Awais Qureshi
9db024c435 feat!: upgrading django-storages to 1.11.1 2023-08-31 14:21:24 +05:00
Awais Qureshi
3c76d6644f Revert "Revert "Revert "feat!: upgrading django-storages to 1.10.1 (#32571)" (#33109)" (#33111)" (#33113)
This reverts commit 2f8475c307.
2023-08-30 19:40:32 +05:00
Awais Qureshi
2f8475c307 Revert "Revert "feat!: upgrading django-storages to 1.10.1 (#32571)" (#33109)" (#33111)
This reverts commit 191b825a2c.
2023-08-28 14:46:21 +05:00
Awais Qureshi
191b825a2c Revert "feat!: upgrading django-storages to 1.10.1 (#32571)" (#33109)
This reverts commit 9281ea4a9a.
2023-08-28 14:05:38 +05:00
Awais Qureshi
9281ea4a9a feat!: upgrading django-storages to 1.10.1 (#32571)
* feat!: upgrading django-storages to 1.10.1
2023-08-28 13:13:28 +05:00
Irtaza Akram
0c46334636 fix: ugetext and ngettext deprecation warnings (#33097) 2023-08-25 14:58:53 +05:00
Awais Qureshi
a4b11c02e0 chore: adding test to verify default-acl behaviour. (#33074)
* chore: adding test to verify default-acl behaviour.
2023-08-22 17:01:28 +00:00
Awais Qureshi
a61e7dc524 chore: Adding test to verify s3boto3 storages with invalid params. (#33058)
* chore: Adding test to verify s3boto3 storages with invalid params.
2023-08-21 11:26:28 +05:00
Agrendalath
6825088801 Revert "Revert "feat: remove field-data binding from the runtime [FC-0026]" (#32740)"
This reverts commit fa06be106e.
2023-07-19 15:36:26 +02:00
Piotr Surowiec
fa06be106e Revert "feat: remove field-data binding from the runtime [FC-0026]" (#32740)
* Revert "feat: remove `field-data` service from runtime initialization"

This reverts commit 6c435bb68c.

* Revert "feat: remove field data binding from the runtime"

This reverts commit 5f46ea52cd.
2023-07-13 13:04:02 -04:00
Braden MacDonald
162175f0c4 chore: get rid of edx_six - not needed anymore (#32555)
* chore: get rid of edx_six - not needed anymore
* chore: remove reference to TODO that was completed.
2023-07-10 11:16:57 -07:00
Nathan Sprenkle
452433a731 feat: configurable roll-forward of flex grading (#32584)
Add ability to roll-forward ORA flex peer grading feature. Where enabled
for an Organization or course, flex peer grading will be turned on at the
course level for new course runs and course reruns. Where disabled,
a new course or course rerun will preserve existing / default setting
value.
2023-07-07 10:42:58 -04:00
Agrendalath
6c435bb68c feat: remove field-data service from runtime initialization 2023-06-26 19:21:22 +02:00
Jesper Hodge
a6c57811cd feat add xblock api endpoint (#32282)
* 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
2023-06-15 14:17:49 -04:00
Fox Piacenti
aa7370c773 refactor: Duplicate and update primitives made available.
This makes a couple of changes to the xblock handler in the CMS. These changes 
add a handful of utility functions and modify the existing ones to make reuse 
of existing blocks easier. With these changes, it is possible to copy an 
entire section from one course to another, and then later refresh that section, 
and all of its children, without destroying the blocks next to it.

The existing _duplicate_block function was modified to have a shallow keyword 
to avoid copying children, and the update_from_source function was added to 
make it easy to copy attributes over from one block to another. These functions 
can be used alongside copy_from_template in the modulestore to copy over blocks 
and their children without requiring them to be within any particular container 
(other than a library or course root)-- thus allowing library-like inclusion 
without the library content block. This is especially useful for cases like 
copying sections rather than unit content.
2023-05-25 15:58:28 +02:00
michaelroytman
344200862e feat: send course end date as due date to exams service if exam has no due date
An exam due date can be inferred from the end date of the course if the exam does not have a due date. In the legacy proctoring system (the edx-proctoring plugin), this inference is made in the proctoring code by calling the edx-when API. This is possible because edx-proctoring is a plugin that's installed into the edx-platform, into which edx-when is also installed.

In the new exams service, we do not want to call to the LMS to get due date information from edx-when. This poses a number of problems, not all of which are solved by this commit. This commit allows the exams service to infer a due date for an exam if that exam does not have a due date at the subsection level.

Note that this is a departure from edx-proctoring. This also opts out exams powered by the new edx-exams service from personalized learner schedules (PLS)/relative dates, because we no longer consider the pacing type of the course.
2023-05-19 13:28:26 -04:00
0x29a
065f894d1b fix: missing advance_settings_access template variable
Co-authored-by: Farhaan Bukhsh <farhaan.bukhsh@gmail.com>
2023-05-05 11:42:53 +05:30
Pooja Kulkarni
ce13cd540a refactor: rename descriptor -> block within cms
Co-authored-by: Agrendalath <piotr@surowiec.it>
2023-04-26 17:10:53 +02:00
Kaustav Banerjee
c5439221cb chore: address review comments 2023-04-21 11:53:49 +02:00
Kaustav Banerjee
d0fa2d65e3 test: fix test cases and lint issues 2023-04-21 11:53:49 +02:00
Demid
63d49d3ad6 feat: feature flag to disable Advanced Settings (#32015) 2023-04-06 18:34:22 +05:30
DimA
899167f20f fix: [RGOeX-386] about page is available for the course creator
The empty "Course Overview" keep the default value if the
"overview" key in the json request is an empty string.
2023-03-01 12:46:29 -05:00
Cristhian Garcia
3427a9a491 feat: added organization dropdown in studio (#30975)
Adds a dropdown to select the organization. The dropdown will only be activated for users with CourseCreator permission to specific organizations in Studio.

Use cases:

When FEATURES['ENABLE_CREATOR_GROUP'] = True and the user has CourseCreator permission granted, a dropdown will appear with all specific organizations allowed. In case of all_organizations setting is enabled, all organizations will appear in the dropdown.

In case the user is staff, he can create organizations it will work as before
2023-02-08 10:48:15 -04:00
0x29a
3a1011bed8 refactor: replace usages of XModuleMixin.system with XBlock.runtime 2023-01-30 18:15:24 +01:00
0x29a
d338f00e39 refactor: rename module (or item) -> block within cms 2023-01-30 18:15:23 +01:00
Sagirov Evgeniy
7a21c22587 test: updated test_import.py and test_course_index.py for split modulestore
This is part of Old Mongo removal. Also in this commit:

* fixed 400 error for cms old_style assets
* fix TEST_DATA_SPLIT_MODULESTORE import for test_course_index
2023-01-30 10:22:28 -05:00
Arunmozhi
d417a7561f refactor: rename ItemFactory to BlockFactory 2023-01-23 14:47:47 +01:00
Sagirov Eugeniy
3877201dd2 test: update test_contentstore.py for split modulestore 2023-01-17 14:54:14 -05:00
Sagirov Eugeniy
f3de63058c test: tests for removing support for children in Old Mongo
* updated test_authoring_mixin.py
* updated test_xblock_utils.py
* updated TestOnboardingView tests (update default course key)
* updated UsersDefaultRole tests
2023-01-17 14:54:14 -05:00
Sagirov Eugeniy
02617283a0 test: fix problem with .get_children() in tests for split modulestore
* fixed problem with creating some CourseItem with some parent:
we must get the updated parent item before using that parent item
* replaced parent_location with parent argument in ItemFactory due to
error children/parent relation for split modulestore. In all tests with
split modulestore parent argument used
2022-12-21 10:58:43 -05:00
0x29a
83396ffb07 refactor: convert course_module term to course_block 2022-12-19 17:48:49 +01:00
0x29a
d3fee38a37 refactor: xmodule/split_test_module.py -> xmodule/split_test_block.py 2022-12-19 17:48:49 +01:00
0x29a
dd9f6936bc refactor: xmodule/video_module -> xmodule/video_block 2022-12-19 17:48:49 +01:00
0x29a
70019bac04 refactor: xmodule/seq_module.py -> xmodule/seq_block.py 2022-12-19 17:48:49 +01:00
0x29a
007e02cd76 refactor: xmodule/html_module.py -> xmodule/html_block.py 2022-12-19 17:48:49 +01:00
0x29a
0df1411636 refactor: xmodule/course_module.py -> xmodule/course_block.py 2022-12-19 17:48:49 +01:00
0x29a
7e33dce1ab refactor: xmodule/conditional_module.py -> xmodule/conditional_block.py 2022-12-19 17:48:49 +01:00