Commit Graph

25289 Commits

Author SHA1 Message Date
Kyle McCormick
e1a8b52dc2 refactor: Use derive_settings to lazy load settings. (#36205)
Some of our settings depend on the values of other settings.  Rather
than explicitly looking up each one in the YAML settings file, we can
simply derive them based on the setting in the YAML file after all the
YAML settings have been loaded.

Part of: https://github.com/openedx/edx-platform/issues/36215
Co-Authored-By: Feanil Patel <feanil@axim.org>
2025-02-05 11:45:35 -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
David Ormsbee
2c92c703d7 feat!: remove unused email_marketing app
Quoting the README:

> If you are reading this and the 'Maple' Open edX release is out, you
> can safely delete this whole djangoapp. It only exists to hold old
> model migrations and any post-Maple installation will no longer have
> any model in the database for this app.
>
> But for some minor historical context, this djangoapp used to hold
> some integration with sailthru that we no longer needed.

We've released Sumac. This is overdue.
2025-02-03 11:24:28 -05:00
Usama Sadiq
1a16073ad0 fix: enable pylint warnings (#36196) 2025-02-03 14:18:11 +05:00
Eemaan Amir
bda381c607 chore: added language to ace message sent event (#36155)
* chore: added language to ace message sent event

* fix: fixed lint errors

* chore: updated ace version
2025-01-31 16:57:38 +05:00
Feanil Patel
672ce2dcac Merge pull request #35500 from eduNEXT/and/filter_result_by_current_orgs
feat: filter by current site organizations
2025-01-30 11:54:16 -05:00
Kyle D. McCormick
0ea4bae7b3 fix: Exactly preserve legacy settings dicts; rm KEYS_WITH_MERGED_VALUES
In the near term, we wish to precisely preserve the existing values of
all Django settings exposed by lms/envs/production.py in order to avoid
breaking legacy Django plugins without a proper announcement.

That includes preserving the behavior of these old, redundant dicts:
* ENV_TOKENS
* AUTH_TOKENS
* ENV_FEATURES
* ENV_CELERY_QUEUES
* ALTERNATE_QUEUE_ENVS

Particularly, it means we need to ensure that updates to Django
settings are reflected in these dicts. The most reliable way to do that
is to change the yaml-loading logic so that these values are aliased
to the corresponding values in the global namespace rather than
deep-copied.

Finally, we remove KEYS_WITH_MERGED_VALUES from the global namespace,
and inline the remaining list. We have modified the list (specifically,
we dropped the no-op MKTG_URL_OVERRIDES). Plugins should not be counting
on the value of the list, so we remove it.
2025-01-30 08:23:09 -05:00
Kyle D. McCormick
4449f43c4e fix: SHARED_kCOOKIE_DOMAIN -> SHARED_COOKIE_DOMAIN 2025-01-30 08:23:09 -05:00
Kyle McCormick
a81493ce7f revert: revert: refactor: Clean up lms/envs/production.py cruft
This reintroduces commit 15939232d5,
which was reverted due to a typo.

The typo is fixed in the commit immediately following this one.

Co-Authored-By: Feanil Patel <feanil@axim.org>
2025-01-30 08:23:09 -05:00
Usama Sadiq
b6828cecaa fix: enable pylint warnings (#36195)
* fix: enable pylint warnings
2025-01-30 17:15:33 +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
e7771d6526 fix: catch a possible exception in beta course configuration (#36172)
* fix: catch a possible exception in beta course configuration

when the learner is a beta tester, and the beta test has been set up with a large duration, the courseware djangoapp can return an overflow error on a timedelta call. In those circumstances, this defaults to returning an unmodified date.

FIXES: APER-3848
2025-01-27 13:59:02 -05:00
Ahtisham Shahid
46c7f6db52 fix: bypass edx ace for sending goal reminder email using ses (#36148) 2025-01-27 12:07:29 +05:00
Deborah Kaplan
da348fa456 feat!: Removing the long-deprecated legacy course_modes chooser (#36156)
* feat!: Removing the long-deprecated legacy course_modes chooser

`course_modes/choose.html`  (and its corresponding
`_upgrade_button.html`)  were specifically only used for the edge case
where an enterprise user found themselves in the non-enterprise learner
dashboard, and attempted to  enroll in a course outside of the
enterprise flow. Once upon a time, in a 2U-only workflow, the commerce
system would apply specific discounts for users within the said case.
That's no longer true, and it has never been true outside of this one
company.

Removing this template  cleans up a legacy version of a legacy page that
was, realistically, exclusively seen by  employees of 2U,
and nobody else.

Removes:
* The corresponding testsfor behavior only seen in the legacy page.
* A waffle flag since all cases route as if the flag is set: `VALUE_PROP_TRACK_SELECTION_FLAG`: `course_modes.use_new_track_selection`
* Some variables set in  `CourseModeView` which were only ever rendered in the legacy template (`title_content`, `has_credit_upsell`) have been removed from the class.
* There is a high likelihood that the class is still  a target for re-factoring now that the legacy view is gone, but I'm  hesitant to touch something which is not covered by previously existing tests, because the logic around what template gets rendered when is complex.

FIXES: APER-3779
FIXES: #36090
2025-01-24 10:27:55 -05:00
andrey-canon
3eab7ea27f feat: add site-aware unit test 2025-01-23 18:23:49 -05:00
Feanil Patel
dd86710d9d docs: Update lms/envs/common.py 2025-01-23 16:16:19 -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
5d494feb01 chore: Updated defaults for token handling on CMS 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
Marcos
ca3cd45a79 chore: fix tests 2025-01-23 15:55:58 -03:00
Marcos
3bbf8aca7f chore: Run make compile-requirements to update dependencies 2025-01-23 15:55:58 -03:00
Marcos
3bcbcaac2d chore: Removed unused dependency 2025-01-23 15:55:58 -03:00
Marcos
825931a9b4 chore: Removed edx-token-utils dep and moved necessary logic to the repo 2025-01-23 15:55:58 -03:00
Agrendalath
8b7a771dc4 fix: remove incorrect key type when filtering inaccessible blocks
Returning the list with a 'completion' string was added in 9bc0f85. However,
the `get_accessible_sequences` method expects a list of dicts with an 'id' key.
2025-01-23 17:53:36 +05:30
Justin Hynes
92bc0fa763 feat: update default retirement states in devstack config (#36153)
We would like new devstack instances to better support the user retirement pipeline out of the box after provisioning. The first step is to update the default list of retirement states devstack is configured to add/use.
2025-01-22 13:28: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
andrey-canon
fd74df3857 feat: filter by current site organizations 2025-01-21 16:21:38 -05:00
David Ormsbee
7635b8edcb perf: normalize LMS vs. Studio debug-toolbar settings
This change disables the profiling panel for performance reasons. It's
rarely useful anyway, given the lack of granularity in the data it
displays.

This commit also enables the Cache panel, which is import for tracking
where we're making excessive calls to redis/memcached.
2025-01-21 11:03:01 -05:00
Robert Raposa
4035aa3487 Revert "refactor: Clean up lms/envs/production.py cruft (#36115)" (#36129)
This reverts commit 15939232d5.
2025-01-17 16:16:38 +00:00
Kyle McCormick
15939232d5 refactor: Clean up lms/envs/production.py cruft (#36115)
This is a pure refactoring of lms/envs/production.py, removing several
redundant statements that have accrued over the years as the platform moved
from python-only, to python+json, to python+json+yaml, to today's python+yaml
setup.

Notes on some of the more involved refactorings:

* AWS Locals Load block is handled by the YAML loading at the very top, we
  don't need to re-load it since there were no changes to those settings
  between the YAML loading at the top and this section.

* MKTG_URL_OVERRIDES, we drop doing any overrides and remove it from the merge
  list beacuse the default value in
  lms/envs/common.py is empty.  So the update is a no-op and is the same as just
  loading this data directly from the YAML config.

* CODE_JAIL block, we've been overriding the entire dict if it is in your YAML
  config, so then going through and updating the individual values is not necessary.

* SSL_AUTH_EMAIL_DOMAIN and SSL_AUTH_DN_FORMAT_STRING are not used anywhere in
  the openedx org, looks like they were used by the old `dashboard` djangoapp
  and can probably be deleted but might be used by plugins so not removing for
  now to keep the change backward compatible.

* DEFAULT_FILE_STORAGE, previously two of the braches were no-ops so we only
  keep the one branch we need for when we want to update DEFAULT_FILE_STORAGE
  automatically if AWS keys are set.

Somewhat related to: https://github.com/openedx/open-edx-proposals/issues/587

Co-Authored-By: Feanil Patel <feanil@axim.org>
2025-01-16 15:19:47 -05:00
Kyle McCormick
343a4cad56 docs: update settings comment 2025-01-15 17:35:13 -05:00
irfanuddinahmad
f64a3a62c5 feat: Disabled MITx from program nudge emails 2025-01-15 14:17:27 +05:00
Juan Carlos Iasenza (Aulasneo)
7fa68243a0 style: Explore Courses button doesn't follow the same style conventions of MFE header (#35994) 2025-01-14 19:43:51 +00:00
Muhammad Anas
5f302a3ae7 fix: date label for instructor paced courses 2025-01-14 18:30:16 +05:00
David Ormsbee
8409a7c023 refactor: remove course-specific logging code in grading.
This removes special logging for course course-v1:UQx+BUSLEAD5x+2T2019
as part of an edX investigation (EDUCATOR-4568 in their internal JIRA).
That issue was closed on 2021-01-08 by Mat Carter with the comment:

> Aged out, closing. If this issue continues, please create a new
> ticket optionally referencing this one.

(Note that Mat has since left edX/2U.)

The EDUCATOR-4602 ticket was created to track the cleanup of this
logging code.
2025-01-08 12:02:34 -05:00
Ahtisham Shahid
85ecad1aab chore: added verification logs in edx.ace.message_sent event (#36074) 2025-01-07 00:36:56 +05:00
Roman Edirisinghe
b510ceff93 fix: remove duplicate (unclosed) tag (#35682)
This PR removes some bad (duplicated) markup in the static tab file. The current behavior leads to an unclosed HTML tag, which can be confirmed by viewing the document source.
2025-01-02 19:43:16 +00:00
Kyle D. McCormick
88b8da3e49 docs: Remove the last couple mentions of Paver from the codebase
Part of: https://github.com/openedx/edx-platform/issues/34467
2025-01-02 14:05:15 -05:00
Peter Pinch
e934c07aed Merge pull request #36054 from mitodl/anas/remove-md4
refactor!: remove md4 and related ENABLE_BLAKE2B_HASHING feature flag
2025-01-02 12:09:21 -05:00
Ahtisham Shahid
953140aa1b fix: resolved edx.course.goal.email.filtered parsing error (#36059) 2024-12-26 14:34:46 +05:00
Muhammad Anas
0de7569b68 refactor!: remove md4 and related ENABLE_BLAKE2B_HASHING feature flag 2024-12-24 13:12:18 +05:00
jawad khan
76cceaa298 feat: Populate notification context with post, comment and response ids (#36008)
* feat: Populate notification context with post, comment and response ids
2024-12-20 15:23:47 +05:00
Ahtisham Shahid
e2a4b9e524 fix: updated goal reminder email time logger (#36045) 2024-12-18 15:38:05 +05:00
Awais Qureshi
53de406537 feat!: upgrade bulk_beta_modify_access to drf ( 30 ) (#35604)
* feat!: upgrading api to DRF.
2024-12-17 16:35:22 +05:00
Dima Alipov
c6dbb16736 fix: selection of users for sending email
Course team members are included in "Learners in the track"
emails recipients.
2024-12-12 15:03:36 +05:30
Ahtisham Shahid
d88fa76d52 chore: added logs for goal reminder email (#35958) 2024-12-12 13:25:47 +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
Navin Karkera
aeddb8a922 feat: allow blocks lower than units to be bookmarked
Adds support to jump/scroll to blocks lower than units if bookmarked. It
also fixes an issue with bookmark visit url function where it was not
passing query params.
2024-12-11 20:06:07 +05:30
Diana Huang
818aa343a2 Revert "feat: Integrate Forum V2 into edx-platform"
This reverts commit 70b60ff256.
2024-12-06 11:19:06 -05:00
Saleem Latif
9d859a8247 refactor: Removed unused django setting. 2024-12-04 14:57:07 +05:00