Commit Graph

4950 Commits

Author SHA1 Message Date
Devasia Joseph
e2ce7debf2 fix: refactor code based on pep-8 guideline 2025-08-08 14:04:26 +05:00
Devasia Joseph
ca45009a31 fix: apply linting rules and refactor code 2025-08-08 14:04:26 +05:00
Devasia Joseph
466aaad85d feat: Enhance course optimizer to detect previous run links and expand scanning scope 2025-08-08 14:04:26 +05:00
Daniel Wong
f114399e12 fix: update resolve_storage_backend function and fix tests 2025-08-06 13:25:10 -06:00
Muhammad Faraz Maqsood
64a557d00f fix: course detail page error (#37132)
rest_framework.fields.BuiltinSignatureError: Field source for `InstructorInfoSerializer.title` maps to a built-in function type and is invalid. Define a property or method on the `str` instance that wraps the call to the built-in function.

Co-authored-by: Muhammad Faraz  Maqsood <faraz.maqsood@A006-01130.local>
2025-08-06 12:58:03 -04:00
Feanil Patel
dc23ed7a31 Merge pull request #37047 from mubbsharanwar/mubbshar/issue-37032
refactor: convert function based view to class based
2025-08-05 16:08:56 -04:00
Devasia Joseph
aae3f62555 fix: Update vertical block test to use dynamic course id 2025-08-05 14:20:52 +05:00
Navin Karkera
103a152c36 feat: disallow adding children to containers imported from library (#37088)
Updates `childAddable` action in xblocks that have upstream link to stop users from updating imported sections and subsections.
2025-08-04 06:05:12 +00:00
mubbsharanwar
95db5fb28d fix: remove redundant code 2025-08-01 18:46:58 +05:00
Ishan Masdekar
c9886882e3 feat: include the usage_key in API to get ancestor blocks (#37072)
- includes location along with the child ancestor block as it is
required in the frontend authoring app for unit scrolling purpose in the
breadcrumbs.

Required for https://github.com/openedx/frontend-app-authoring/issues/1924
2025-07-31 14:22:38 -07:00
Mubbshar Anwar
6d150acf81 refactor: Remove HIBP settings from CMS (#36998)
Remove HIBP settings from CMS common settings module
2025-07-31 09:43:36 -04:00
mubbsharanwar
54164a918c refactor: convert function based view to class based 2025-07-31 15:40:42 +05:00
Chris Chávez
faad8bf020 feat: New DownstreamListView to get all components and container links [FC-0097] (#37024)
There are two different views and entry points for components and containers, which have the same logic and filters. In this PR, a single view has been created that allows you to get all links or filter them by component or container.

* Rename `DownstreamComponentsListView` and mark it as deprecated.
* Mark `DownstreamContainerListView` as deprecated.
* Update `DownstreamSummaryView` to support container on the summary.
* Add `show` param in `get_course_outline_url`
2025-07-24 19:11:18 +00:00
Hunzlah Malik
89190cc55a Certificate activation handler to drf (#37037)
* feat: certificate_activation_handler to drf
2025-07-24 10:08:43 -04:00
Navin Karkera
5409baa5f8 feat: include upstream_info for all xblocks including sections and subsections (#37041) 2025-07-23 17:54:13 +00:00
Rômulo Penido
e1a801a700 feat: link section/subsection to course
Allows adding and syncing containers from libraries into courses
2025-07-21 15:35:51 -05:00
Ivan Niedielnitsev
7e8d8888f2 fix: sort Advanced components alphabetically by display name (#36767)
adding sorting of Advanced components in the studio by display name
2025-07-21 11:28:54 -05:00
Bryann Valderrama
a807d0e280 chore: add missing inline code annotations in events (#36473) 2025-07-18 17:55:54 +02:00
Pandi Ganesh
22167dd88b fix: add generic headers to link-checker to prevent false broken link reports (#37031) 2025-07-17 16:17:51 +05:30
Pandi Ganesh
46055338ae fix: strip whitespace from URL causing broken link on Course Optimizer page (#37020) 2025-07-15 17:08:02 +05:30
Asad Ali
51c34d05a9 fix: link reruns & clones to correct orgs 2025-07-14 14:31:30 +05:00
Devasia Joseph
f330e49aaf feat: Added disable/enable discussion endpoint to swagger 2025-07-10 17:05:42 +05:30
Muhammad Faraz Maqsood
84ecd9f035 fix: optimizer error due to duplicate ids
In this commit, fix optimizer error due to duplicate ids at sections and subsections level
2025-07-08 11:28:18 +05:00
Kshitij Sobti
6e336e2d39 fixup! fix: use a single 'provider_type' key for storing discussion provider type in course 2025-07-06 17:38:38 +05:30
kshitij.sobti
9ee4afaaf1 fix: use a single 'provider_type' key for storing discussion provider type in course
Both 'provider' and 'provider_type' have been used for storing the discussion provider type in course 'discussions_settings' field, there are some places in the code checking for 'provider' and others checking for 'provider_type', in some cases this can cause a bug where it doesn't detect the correct provider which causes discussion settings not being copied correctly when a course is cloned.

This change prioritises the `provider_type` setting over `provider` and reads `provider` only as a fallback. The `provider` setting is now made read-only just for backwards-compatibility, to avoid confusion.
2025-07-06 17:38:38 +05:30
Jorg Are
1e2a2d9653 feat: extend transcript languages (#36964) 2025-07-02 12:16:26 -04:00
Navin Karkera
bc102d8db6 Merge pull request #36955 from openedx/mfrank/add-oel-publishing-dep-contentstore-migration-0010
fix: add oel-publishing migration dependency to contentstore
2025-06-27 12:03:51 +02:00
Maxwell Frank
fc84ff39d6 fix: add oel-publishing migration dependency to contentstore 0010 2025-06-26 18:03:25 +00:00
pganesh-apphelix
f3053de6b7 chore: remove ensure csrf cookie decorator from discussion api 2025-06-26 10:32:16 +05:00
Navin Karkera
2c2721436d feat: container links api (#36911)
Adds list api to fetch container library links information. S
2025-06-24 17:20:53 +00:00
Feanil Patel
3a3b3faadb Merge pull request #36846 from raccoongang/rg/axm-course-catalog-add-org-image-url-indexing
feat: [FC-86] add org_image_url to course_discovery index FC-86
2025-06-23 14:13:27 -04:00
Awais Qureshi
5118c0bc3e test: fixing get_storage_class deprecated method in tests. (#36939) 2025-06-23 10:06:03 -04:00
Feanil Patel
009dd30c69 Merge pull request #36849 from dwong2708/dw/upgrade-django-5-course-import
feat: removing get_storage_class from COURSE_IMPORT_STORAGE
2025-06-20 14:36:37 -04:00
Feanil Patel
1efee3498a Merge pull request #36794 from dwong2708/dw/certificates-enabled-fix
fix: certificates_enabled flag now correctly returns its boolean value
2025-06-20 14:35:53 -04:00
Daniel Wong
e0a0d01d26 feat: update file storage access to support Django 5.0 storages registry 2025-06-20 09:07:29 -06:00
Feanil Patel
ba0f3bdaa3 Merge pull request #36761 from dwong2708/dwong/updgrade-django-5-get-storages
feat: removing get_storage_class from COURSE_METADATA_EXPORT_STORAGE
2025-06-20 09:54:24 -04:00
Muhammad Faraz Maqsood
b2c9dddb84 feat: get language from request user's preferences and sort according to it 2025-06-19 14:43:31 +05:00
Awais Qureshi
ea944fc2d8 Merge branch 'master' into dwong/updgrade-django-5-get-storages 2025-06-17 22:42:55 -04:00
Pandi Ganesh
0c493b6ec2 feat: add Studio API for bulk enable/disable discussions for a course
Implemented Studio API for bulk enable/disable discussions for a course.
2025-06-17 16:23:47 +05:00
Daniel Wong
250a611078 feat: legacy_setting_key param was added to resolve storage backend 2025-06-11 11:35:14 -06:00
Daniel Wong
88ee5b4d28 fix: resolve feedback comments 2025-06-11 11:35:14 -06:00
Daniel Wong
835b74bb4f test: adding test cases for the export course metadata export storage 2025-06-11 11:35:14 -06:00
Daniel Wong
49864105cd feat: update file storage access to support Django 5.0 storages registry 2025-06-11 11:35:14 -06:00
Kyle McCormick
29c1268d2b feat!: enable authoring MFE markdown editor waffle for everyone by default (#36872)
This adds a migration to turn on the new React-based Markdown editing option
for newly-created ProblemBlocks for all authors. The option is nested
under "Advanced settings", just like the Advanced (OLX) problem editor.

The migration is written such that it will *not* overwrite an existing global
"No" waffle flag. Furthermore, our waffle utilities are designed such that
org-level and course-level overrides will still take preference over the flag
that the migration creates. Therefore, this should only take effect in cases
where no existing waffle flag applies.

BREAKING CHANGE: Operators who do not want the new React-based Markdown editor
to be shown should create a flag contentstore.use_react_markdown_editor with
the value "No".

We plan to backport this to Teak.
Prior art for flipping waffles like this: 9b0024376a
Part of: https://github.com/openedx/platform-roadmap/issues/384

Co-authored-by: Muhammad Anas <muhammad.anas@arbisoft.com>
2025-06-09 10:58:04 -04:00
Taylor Payne
3e83efa609 fix: exclude fields from UpstreamSyncMixin in advanced settings api (#36831)
The UpstreamSyncMixin introduced in [1] which is added as a XBlock mixin,
currently contains four fields - `upstream`, `upstream_version`,
`upstream_version_declined`, and `upstream_display_name`. These fields are
coming through in the course advanced settings API endpoint
(`/api/contentstore/v0/advanced_settings/{course_id}`), and subsequently show
up in the Advanced Settings view in the frontend-app-authoring MFE, which they
shouldn't.

This PR resolves this issue by adding the fields from the `UpstreamSyncMixin`
into the FIELDS_EXCLUDE_LIST [2] of the `CourseMetadata` class. Unless the API is
called with `fetch_all=1` (the authoring MFE uses `fetch_all=0`), then these
fields will be filtered out.

[1] https://github.com/openedx/edx-platform/blob/master/cms/lib/xblock/upstream_sync.py#L289
[2] https://github.com/openedx/edx-platform/blob/master/cms/djangoapps/models/settings/course_metadata.py#L41

Fixes: https://github.com/openedx/frontend-app-authoring/issues/2018
2025-06-04 13:38:30 -04:00
Andrii
09f0406ec3 feat: add org_image_url to course_discovery index 2025-06-03 17:46:47 +03:00
Daniel Wong
6c495ad283 fix: certificates_enabled flag now correctly returns its boolean value 2025-06-02 12:53:21 -06:00
Chris Chávez
c2eb913dcb feat: Basic CRUD support for sections/subsections as containers [FC-0090] (#36762)
- Refactor of `test_containers.py` 8b9731dfa1
- Updates the `content_libraries/api/containers` and `content_libraries/rest_api` to support:
    - Basic CRUD for sections and subsections as containers
    - Basic CRUD support for section and subsection children
- Updates the `content/search` to support:
    - Basic CRUD for sections and subsections as containers in the search index
    - Basic CRUD support for section and subsection children in the search index
- Updates the `content_libraries/tests/test_containers.py` to test the new support
- Updates the `content/search/tests` to test the new support.
- I verified that the add/remove to collection works without major changes. Tests updated
2025-05-28 21:05:45 +00:00
Jillian
21399b4818 fix: recurse through pasted block data to replace static paths (#36723)
Fixes an error that is triggered when trying to copy/pasting Drag-and-drop block into Courses.

When a block is pasted into a Course or Library, we perform a search/replace on block's data to replace any old static URLs with their new path. Ordinary blocks like HTML and Video have a simple string of data where static URLs may live, but DnDv2 blocks have a dict of data which can contain other dicts and lists of strings that need to be modified. Other XBlocks may have similarly complex structures, and so this fix will resolve them as well.

This fixes the issue by recursing into the data structure to locate all the strings where replacements may need to be made.

This fix helps Course Authors use content staging in their Courses.
2025-05-22 00:17:31 +00:00
Tim McCormack
6740e75c0f Merge commit from fork
Allow overriding but prevent download by default.

Also, extract `PYTHON_LIB_FILENAME` Django setting as a shared function
and document the setting.
2025-05-21 14:14:51 -04:00