Commit Graph

57 Commits

Author SHA1 Message Date
Braden MacDonald
aa68ea1162 chore: Update with latest master 2023-05-31 16:25:35 -07:00
Braden MacDonald
dac1c5abe1 refactor: we don't need _unwrapped_field_data any more 2023-05-29 15:27:12 -07:00
Braden MacDonald
6dd9d2e068 fix: some tests still use old mongo and weren't passing 2023-05-29 13:50:47 -07:00
Braden MacDonald
fbaa2e5a68 fix: make the initialization more like how it was in the past 2023-05-27 15:56:02 -07:00
Braden MacDonald
018f8f2c7c fix: Apparently block.scope_ids gets mutated a lot and isn't a good key
-> bind_for_student() and friends change the user_id
-> DraftVersioningModuleStore.update_item() mutates .location which mutates scope_ids.def_id and scope_ids.usage_id in a way that seems totally wrong
2023-05-26 11:16:13 -07:00
Braden MacDonald
f13263df4f fix: remove the need to patch the KVS during library import 2023-05-25 21:03:01 -07:00
Braden MacDonald
9f5f3108a0 fix: cleanups and bug fix from review 2023-05-25 16:33:40 -07:00
Agrendalath
15b511ffd1 test: fix the number of Mongo calls 2023-05-25 20:11:02 +02: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
Braden MacDonald
30e7b5b92b temp: continue 2023-05-23 16:53:14 -07:00
Braden MacDonald
1c09f6c3ef temp: clarify why we don't pass field_data to constructor 2023-05-23 10:54:23 -07:00
Braden MacDonald
f05f48a156 temp: continued 2023-05-19 15:41:49 -07:00
Braden MacDonald
2924e564b0 fix: field data should be loaded on-demand, not pushed into block init 2023-05-19 13:55:25 -07:00
Braden MacDonald
0ff65c2b9f chore: fix usage of runtime.course_id
/openedx/edx-platform/xmodule/modulestore/mongo/base.py:275: DeprecationWarning: `runtime.course_id` is deprecated. Use `context_key` instead: `block.scope_ids.usage_id.context_key`.
    metadata_inheritance_tree = self.modulestore._compute_metadata_inheritance_tree(self.course_id)
2023-05-03 12:35:19 -07:00
Braden MacDonald
8ee1f66ffb feat: Paste Components (OLX) into any Unit in Studio (#31969)
* feat: Implement paste button

* chore: improve docs and add tests for python API

* fix: drive-by fix to use a better API for comparing XML

* feat: track which XBlock something was copied from

* feat: add tests

* feat: enable import linter so content_staging's public API is respected

* fix: error seen when trying to paste drag-and-drop-v2 blocks

* fix: use strip_text=True consistently for XML comparisons

* refactor: rename get_user_clipboard_status to get_user_clipboard

* feat: Better error reporting when pasting in Studio

* chore: convert new test suite to pytest assertions

* refactor: push READY status check into the API per review suggestion

* fix: use strip_text=True consistently for XML comparisons

* fix: store "copied_from_block" as a string to avoid Reference field issues

* fix: minor lint error

* refactor: move data types to data.py per OEP-49
2023-04-27 09:58:04 -07:00
Pooja Kulkarni
537cfe4e0f refactor: rename descriptor -> block within xmodule/modulestore
Co-authored-by: Agrendalath <piotr@surowiec.it>
2023-04-26 17:10:54 +02:00
Agrendalath
c74f3825e8 test: remove only_xmodules
This function was only used by tests. It was breaking tests from the `xmodule`
package on the devstack because the dist.key of its entry_points is `open-edx`.
2023-04-21 11:53:49 +02:00
Navin Karkera
4697adc681 feat: hook xblock publish, delete and duplicate openedx-events (#31350) 2023-02-14 19:25:30 +05:00
Muhammad Adeel Tajamul
54cd3c562a temp: removed previous logs and added new logs for course export (#31664)
Co-authored-by: adeel.tajamul <adeel.tajamul@arbisoft.com>
2023-01-31 07:07:53 +05: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
0x29a
a027f36724 refactor: rename module -> block within xmodule 2023-01-30 18:15:22 +01:00
Arunmozhi
59757ee52d refactor: replace xmodule.load_item calls with get_block 2023-01-23 14:47:47 +01:00
Arunmozhi
d417a7561f refactor: rename ItemFactory to BlockFactory 2023-01-23 14:47:47 +01:00
Muhammad Adeel Tajamul
f4566cdc7a fix: added new logs for course export and removed previous (#31504)
Co-authored-by: adeel.tajamul <adeel.tajamul@arbisoft.com>
2023-01-05 18:33:20 +05:00
Muhammad Adeel Tajamul
65da5b55a4 temp: logs for course import issue (#31493)
Co-authored-by: adeel.tajamul <adeel.tajamul@arbisoft.com>
2023-01-04 11:29:20 +05:00
Muhammad Adeel Tajamul
c9562fcfc0 temp: logs for course export issue (#31481)
Co-authored-by: adeel.tajamul <adeel.tajamul@arbisoft.com>
2022-12-29 16:54:28 +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
Agrendalath
ae1dcbea74 refactor: rename HiddenDescriptor to HiddenBlock
This also handles the AttributeError in the default XBlock class fallback.
2022-12-19 17:48:49 +01:00
0x29a
3115db5836 feat: implement falling back to HiddenBlock 2022-12-19 17:48:49 +01: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
57383a2840 refactor: xmodule/mako_module.py -> xmodule/mako_block.py 2022-12-19 17:48:49 +01:00
0x29a
e3591701e3 refactor: xmodule/library_content_module.py -> xmodule/library_content_block.py 2022-12-19 17:48:49 +01:00
0x29a
4d8618517f refactor: xmodule/hidden_module.py -> xmodule/hidden_block.py 2022-12-19 17:48:49 +01:00
0x29a
cf47f6385f refactor: xmodule/error_module.py -> xmodule/error_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
4c005e86e8 refactor: xmodule/capa_module.py -> xmodule/capa_block.py 2022-12-19 17:48:49 +01:00
0x29a
d6c6a44ed5 refactor: remove prefer_xmodules
This function is no longer needed as all XModules have been converted to XBlocks.

XBLOCK_SELECT_FUNCTION Django setting is removed too, as it could take only `prefer_xmodules` or `default_select` values.
2022-11-16 13:08:22 +01:00
Sagirov Eugeniy
8f88422c4a test: prepare tests for removing support for children in Old Mongo 2022-10-28 11:43:20 -04:00
Usama Sadiq
4734f9f16e fix: bump pylint version (#31084) 2022-10-27 12:19:09 +05:00
Sagirov Eugeniy
3f3d0d25d8 feat!: Remove inheritance-related code from Old Mongo 2022-10-24 11:58:44 -04:00
UsamaSadiq
897cb3617f refactor!: delete common/lib and related usages 2022-09-22 14:16:34 +05:00
Sagirov Evgeniy
42246c858d feat!: remove code related to Old -> Split migration (#30955)
This commit removes code that was used to copy Old Mongo courses into
new Split Mongo courses. This includes both the migrate_to_split
management command, as well as the backend code that would be invoked
to re-run Old Mongo courses as Split courses using Studio (the UI for
this was already removed in b429e55c).

This is a part of the Old Mongo removal effort tracked in:
  https://github.com/openedx/public-engineering/issues/62
2022-09-19 10:51:40 -04:00
Piotr Surowiec
baeb64d13e Merge pull request #30811 from open-craft/0x29a/bb6442/remove_field_data
refactor: remove `field_data` usage by all `DescriptorSystem` subclasses [BD-13]
2022-09-19 12:35:57 +02:00
Sarina Canelake
4a2f231302 fix: fix github url strings (org edx -> openedx) 2022-09-15 14:52:28 -04:00
Sagirov Evgeniy
b429e55cac feat!: remove Studio editing for Old Mongo Courses
This removes user-facing Studio edit support for Old Mongo courses
(courses that have a CourseKey of the format {org}/{course}/{run}).
This does not affect our normal courses, which have CourseKeys
starting with "course-v1:".

After this commit:

* Old Mongo courses will continue to appear on the Studio course
  listing page, but are not clickable.
* Any attempt to directly access an Old Mongo course in Studio via URL
  fail with a 404 error.
* Course certificates will still be available for Old Mongo courses.
* Old Mongo courses will continue to be returned by CourseOverviews
  and get_course_summaries() calls.

We decided against removing Old Mongo courses from the listing entirely
because that would require very expensive CourseOverviews query to
filter them out. Making that query more efficient would involve a
database migration to add appropriate indexing, which is something else
that we are looking to avoid. CourseOverviews are used everywhere in
the system, so we want to avoid changing how they work so that we can
minimize risk.

This is part of the Old Mongo Modulestore deprecation effort:
  https://github.com/openedx/public-engineering/issues/62
2022-09-14 10:53:33 -04:00
Rebecca Graber
c1009b56f6 feat: emit COURSE_CATALOG_INFO_CHANGED signal on publish (#30805)
Implements https://github.com/openedx/edx-platform/issues/30682

Produce signal only once transaction for a course publish is
committed, and only for actual courses (not libraries).

- Use newer openedx-events version that has a fix for None datetime
  and that has CourseCatalogData without org, number.
- Add edx-event-bus-kafka -- specify recent version that drops
  confluent-kafka from explicit deps, fixes common auth settings, and has
  a multi-producer caching tweak.
- New functionality is behind toggle

As per https://github.com/openedx/openedx-events/issues/88 we're going to
try explicit dependencies on implementations for now, rather than solve
all the problems we'd encounter by using private dependencies.

Co-authored-by: Tim McCormack <tmccormack@edx.org>
Co-authored-by: Rebecca Graber <rgraber@edx.org>
2022-08-24 16:39:24 +00:00
connorhaugh
dd1367823d Revert "feat: implement V2 libraries usage for library content block (#30615)" (#30872)
This reverts commit dcf1cc14b6.
2022-08-17 14:43:31 -04:00