Commit Graph

6303 Commits

Author SHA1 Message Date
Daniel Valenzuela
182bfc4031 feat: add publish status to library meilisearch index [FC-0076] (#36031)
Adds the publish status field to the libraries v2 meilisearch index in order to support filtering by component publish status: published, modified, never.
2025-02-05 17:30:19 +00:00
Jesper Hodge
1f43d17b21 Revert "Replace pkg_resources with importlib.resources" (#36208) 2025-02-05 08:51:50 -05:00
Kyle McCormick
32275662b0 feat!: A Better API for Derived Settings (#36192)
The Python API for declaring derived settings was confusing to the uninitiated
reader, and also prone to spelling mistakes. This replaces the API with one
that is more readable and more concise, and updates the implementation of
`derive_settings` to properly derive settings declared using the new API.

BREAKING CHANGE: The `derived` and `derived_collection_entry` function are
replaced with the `Derived` class. We do not expect those functions to have
been used outside of edx-platform, but if they are, this commit will cause them
to loudly ImportError.

Note that there should be NO change in behavior to the `derive_settings`
function, which we DO know to be used by some external edx-platform plugins.

Part of: https://github.com/openedx/edx-platform/issues/36215
2025-02-04 14:57:43 -05:00
Robert Raposa
c84af05251 docs: explain default session expiration (#36126) 2025-02-03 16:17:45 -05:00
Usama Sadiq
1a16073ad0 fix: enable pylint warnings (#36196) 2025-02-03 14:18:11 +05:00
Rômulo Penido
4f13ee0171 fix: advanced editor styling on library authoring [FC-0076] (#36146)
Fixes the styles for the advanced editors (poll, survey, LTI Provider, etc). Updated the code if `xblock_v2/xblock_iframe.html` to use `course-unit-mfe-iframe-bundle.scss`
2025-01-30 17:36:21 +00:00
Navin Karkera
5e51e2d5b7 fix: swagger docs ref_name conflicts (#36189)
* fix: swagger docs ref_name conflicts

* fix: swagger auto doc errors

* chore: bumps openedx-learning==0.18.2

---------

Co-authored-by: Jillian Vogel <jill@opencraft.com>
2025-01-30 20:32:18 +05:30
Usama Sadiq
b6828cecaa fix: enable pylint warnings (#36195)
* fix: enable pylint warnings
2025-01-30 17:15:33 +05:00
Kyle McCormick
98a4a32805 feat: Make dump for fns, classes more stable and helpful (#36188)
The `dump_settings` command currently prints out the raw `repr(...)`s for
defined functions, e.g.:

    "WIKI_CAN_ASSIGN": "<function CAN_ASSIGN at 0x74ce5e9b2020>",

In addition to being uninformative, these `at 0x74ce...` hashes change every
run, so they appear in the diff as having "changed" every time. With this
commit, here's what `dump_settings` will print out for a function instead:

    "WIKI_CAN_ASSIGN": {
        "module": "lms.djangoapps.course_wiki.settings",
        "qualname": "CAN_ASSIGN"
    },
2025-01-29 11:05:57 -05:00
Deborah Kaplan
1fe67d3f6b feat: increase frequency of scheduled notify credentials (#36180)
`notify_credentials` has 2 ways of running.
1. The manual,  one-off method  which uses `--args_from_database`  to specify what should be sent.
2. [The automated method](7316111b35/openedx/core/djangoapps/credentials/management/commands/notify_credentials.py (L157-L159)), which runs on a regular schedule, to catch anything which fell through the cracks.

The automated method does a certain amount of time/date math in order to calculate the entry point of the window based on the current runtime.  This is, I assume, why it has some hardcoded logic; it's not at all simple to have a `cron`-run  management command running on a regular cadence that can do the same time logic.

```py
        if options['auto']:
            options['end_date'] = datetime.now().replace(minute=0, second=0, microsecond=0)
            options['start_date'] = options['end_date'] - timedelta(hours=4)
```

However, it is not ideal that the actual time window of 4 hours is hardcoded directly into `edx-platform`.

This fix

* creates an overridable `NOTIFY_CREDENTIALS_FREQUENCY` that defaults to 14400 seconds (4 hours).
* pulls that frequency into the quoted code

Using seconds allows maximum flexibility.

FIXES: APER-3383
2025-01-27 22:26:00 +00:00
Deborah Kaplan
8e1e55a0d7 chore: linting as a separate commit (#36179)
I'm letting autoformat hit this file to make it match our current
standards before I actually make any code changes.
2025-01-27 16:53:47 -05:00
Kyle McCormick
dc2a38b1f4 feat: dump_settings management command (#36162)
This command dumps the current Django settings to JSON for
debugging/diagnostics. The output of this command is for *humans*... it
is NOT suitable for consumption by production systems.

In particular, we are introducing this command as part of a series of
refactorings to the Django settings files lms/envs/* and cms/envs/*.
We want to ensure that these refactorings do not introduce any
unexpected breaking changes, so the dump_settings command will both help
us manually verify our refactorings and help operators verify that our
refactorings behave expectedly when using their custom python/yaml
settings files.

Related to: https://github.com/openedx/edx-platform/pull/36131
2025-01-27 15:29:29 -05:00
Usama Sadiq
2d7a3d3fbd fix: remove pylint constraint (#36169) 2025-01-27 21:25:42 +05:00
Marcos
747289bc1a fix: Removed JWT constants from CMS and added comments on how to generate them 2025-01-23 15:55:58 -03:00
Marcos
67a56c270f chore: Moved jwt file to openedx.core.lib 2025-01-23 15:55:58 -03:00
Feanil Patel
da0d365ee3 Merge pull request #36044 from openedx/pkg_resources-depr
Replace pkg_resources with importlib.resources
2025-01-23 11:05:45 -05:00
David Ormsbee
c762c1f695 perf: update edx-when to 2.5.1 for performance fix
This addresses an issue where get_schedule_for_user was making an
excessive number of calls to the database.
2025-01-22 10:50:04 -05:00
Chris Chávez
e930bc60b1 feat: Changes in xblock_v2 to support studio_view [FC-0076] (#36029)
Updates to support studio_view (editors) in xblock_v2 iframe.

- Send a message when cancel button is clicked on xblock_v2 iframe only in studio_view
- Send a message when save.end event is notified on xblock_v2 iframe.
- Send notify function in runtime. This is to avoid errors when saving the Xblock
2025-01-16 18:10:59 +00:00
Jillian
b96a3bf249 fix: allow_to_create_new_org checks org autocreate [FC-0076] (#36094)
Updates the StudioHome API's allow_to_create_new_org to require both organization-creation permissions and ORGANIZATION_AUTOCREATE to be enabled. It also adds the list of "allowed organizations for libraries" to the Studio Home API so that the Authoring MFE can use it.
2025-01-15 17:32:37 +00:00
jawad khan
e859d7e9d9 feat: Add course id in notifications list api for mobile Devices (#36106) 2025-01-15 14:12:34 +05:00
Navin Karkera
cd9b90fc21 feat: show math in plain text in library cards (#36055)
Converts mathjax equations to unicode to be rendered as plain text in library card previews
2025-01-13 13:09:47 -05:00
Muhammad Adeel Tajamul
f4c2b46671 chore: updated notification preference url in email digest (#36101) 2025-01-13 12:56:40 +05:00
Kyle D. McCormick
3dc28abcf7 build: Fix type annotations for new mypy version
Includes some new Request type annotations in openedx.core.types.http,
plus a new meta-utility @type_annotation_only to ensure that we don't
accidentally start instantiating those new classes.
2025-01-09 10:31:01 -05:00
Irtaza Akram
acdbff8b4c fix: remove pkg_resources 2025-01-08 16:45:19 +05:00
Kyle D. McCormick
d36560d8c6 refactor: UsageKeyV2Serializer should be a BaseSerializer
...not a Serializer, as it overrides to_representation to a str rather
than a dictionary.

This type error arose during the djangorestframework-stubs upgrade in
the previous commits.
2025-01-02 14:42:09 -05:00
Kyle D. McCormick
50944e9d75 build: Very explicitly annotate a model field so that it passes mypy
This clunky yet type-safe workaround to this django-stubs issue, which
arose when we upgraded django-stubs in the previous commits:
https://github.com/typeddjango/django-stubs/issues/1802
2025-01-02 14:42:09 -05:00
Kyle D. McCormick
2d5543a9ae feat!: Remove Paver
BREAKING CHANGE: Removes all remaining Paver commands including
`pavelib/prereqs.py:*` and `pavelib/assets.py:*`.

BREAKING CHANGE: Removes `./manage.py [lms|cms] compile_sass`, which
was just a wrapper around Paver commands.

BREAKING CHANGE: Removes paver.txt. Operators should install testing.txt
instead.

Part of: https://github.com/openedx/edx-platform/issues/34467
2025-01-02 14:05:15 -05:00
Eemaan Amir
645e8985c2 chore: added a new info log to course update email (#36067)
* chore: added a new info log to course update email

* chore: added a new info log to course update email
2025-01-01 17:05:56 +05:00
Ahtisham Shahid
ab6947fb77 fix: resolved key error in notification pref apis (#36064) 2025-01-01 15:45:26 +05:00
Muhammad Adeel Tajamul
b369345dc1 fix: fixed notification generated event for grouped notifications (#36065) 2025-01-01 14:17:44 +05:00
Daniel Valenzuela
85f412864f fix: render library v2 assets with whitespace (#35974)
Assets that contain whitespace fail to be rendered when uploaded to library v2
2024-12-24 13:51:03 +00:00
Muhammad Adeel Tajamul
81f825ff15 fix: new discussion post should only be grouped if old notification is not seen (#36032) 2024-12-24 07:47:38 +05:00
Ahtisham Shahid
85a5890dd1 feat: added api to update all notification preferences for user (#35795) 2024-12-19 19:04:16 +05:00
Muhammad Adeel Tajamul
930989e5e6 fix: fixed notification generated event for grouped notifications (#36048) 2024-12-19 16:57:27 +05:00
Bryann Valderrama
5bf0b2704f feat: add schedule queryset request filter integration (#35982)
* feat: add schedule queryset request filter integration

* chore: remove try-except when running filter

* chore: upgrade openedx-filters to v1.12.0

* test: add filter unit tests

* test: inherit of ModuleStoreTestCase

* fix: add missing attribute in resolver instance
2024-12-17 09:52:56 -05:00
Navin Karkera
971afe6095 feat: api to restore soft-deleted component [FC-0076] (#35993)
Adds API to handle restoring soft-deleted library blocks.
2024-12-13 13:17:46 -05:00
Régis Behmo
7f80c1afa1 fix: adequate course key type in forum v2 (#36022)
When checking whether forum v2 is enabled, the course waffle flag
argument should be a CourseKey, not a str.
2024-12-12 16:11:53 +05:00
Régis Behmo
065adf398e feat: reapply forum v2 changes (#36002)
* feat: Reapply "Integrate Forum V2 into edx-platform"

This reverts commit 818aa343a2.

* feat: make it possible to globally disable forum v2 with setting

We introduce a setting that allows us to bypass any course waffle flag
check. The advantage of such a setting is that we don't need to find the
course ID: in some cases, we might not have access to the course ID, and
we need to look for it... in forum v2.

See discussion here: https://github.com/openedx/forum/issues/137

* chore: bump openedx-forum to 0.1.5

This should fix an issue with index creation on edX.org.
2024-12-12 12:18:33 +05:00
Tim McCormack
b6774f59f3 docs: Remove mention of storage_backing_for_cache flag
The Waffle switch `block_structure.storage_backing_for_cache` was removed in https://github.com/openedx/edx-platform/pull/35185 -- this is just a lingering reference in a setting comment.
2024-12-09 17:20:34 -05:00
Daniel Valenzuela
b07464ba2d feat: incremental reindex_studio management command (#35864)
This allows large instances to run an (interruptable, resumable) reindex task that can cover thousands of courses.
2024-12-06 12:30:38 -08:00
Diana Huang
818aa343a2 Revert "feat: Integrate Forum V2 into edx-platform"
This reverts commit 70b60ff256.
2024-12-06 11:19:06 -05:00
Rômulo Penido
8d4909a999 fix: content libraries permissions
This PR changes the permissions for content libraries so that only
people who can create courses should be allowed to create new content
libraries.
2024-12-06 09:18:04 -05:00
Chris Chávez
0bd0e6f4ca refactor: Update get block OLX view to support versions [FC-0062] (#35932)
* Deprecate `get_block_draft_olx`
* Deprecate get olx view in content libraries
* Create `get_block_olx` in xblock API with support of versions
* Create get olx view in xblock
2024-12-05 18:49:23 +00:00
Muhammad Faraz Maqsood
70b60ff256 feat: Integrate Forum V2 into edx-platform
This commit introduces the new Forum V2 application, allowing users to choose between the legacy Forum V1 and the new Forum V2 at the course level.

Key Changes:
- Added waffle flag `discussions.enable_forum_v2` to enable Forum V2 for selected courses, allowing coexistence with Forum V1.
- Default data storage for Forum V2 is set to MongoDB, with an option to switch to MySQL using the waffle flag `forum_v2.enable_mysql_backend`.
- Introduced management command `forum_migrate_course_from_mongodb_to_mysql` for per-course data migration from MongoDB to MySQL.

Note: This PR does not include all unit tests for the Forum V2 native API due to ongoing migration efforts. Further updates will follow to ensure full test coverage before final release.

Co-authored-by: [Muhammad Faraz Maqsood] <faraz.maqsood@arbisoft.com>
Co-authored-by: [Ali Salman] <ali.salman@arbisoft.com>
2024-12-03 11:00:51 -05:00
Muhammad Adeel Tajamul
3d5f4983c5 feat: added anonymous id in edx.bi.user.account.authenticated event (#35934) 2024-12-02 13:22:27 +05:00
Muhammad Adeel Tajamul
0682493b6a chore: added anonymous id in user registered event (#35875) 2024-11-22 06:51:31 +05:00
Muhammad Adeel Tajamul
b55a17a9f7 feat: truncated number of notifications in email (#35738) 2024-11-21 11:55:09 +05:00
Chris Chávez
d5850c812c fix: keep library collection card component count in sync (#35734)
Fixed component counter synchronization in these cases:

* When deleting a component inside a collection.
* With the library published, when adding a new component in a collection and reverting library changes.
* With the library published, when deleting a component inside a collection and reverting library changes.

Also adds a published > num_counts field in collections in the search index.
2024-11-19 15:45:34 -05:00
Irtaza Akram
68a626a938 fix: replace autodoc with autoapi (#35846) 2024-11-18 10:16:09 +05:00
Justin Hynes
7adecb4c6c feat!: remove skill_levels API (#35863)
Resolves issue #35302 (https://github.com/openedx/edx-platform/issues/35302).
2024-11-15 09:37:37 -05:00