Commit Graph

25070 Commits

Author SHA1 Message Date
Jade Olivier
e8f9db428d fix: generalize internal services 2024-08-14 10:21:24 +02:00
Eemaan Amir
152b678e62 feat: save author pronoun separately for notification to prevent info loss (#35234)
* feat: save author pronoun separately for notification to prevent info loss

* fix: missing pronoun in comment on followed post

* test: updated tests for new comment notifications
2024-08-12 12:04:20 +05:00
Juliana Kang
eb5bef0c23 fix: Remove Program details Subscriptions portal CTA (#35249)
REV-4003
2024-08-08 13:39:04 -04:00
Ahtisham Shahid
63f327b682 feat: added events to bulk email tool (#35147)
* feat: added events to bulk email tool
2024-08-08 14:57:32 +05:00
Awais Qureshi
99760f80f0 feat: Upgrading api list_course_role_members ( 2nd api ) (#35105)
* feat: upgrading simple api to drf compatible.
2024-08-07 16:40:27 +05:00
Awais Qureshi
0a067ffa82 feat: upgrading simple api to drf compatible (4th api ) (#35135)
* feat: upgrading simple api to drf compatible.
2024-08-06 15:25:24 +05:00
Muhammad Anas
28ce713e9f feat: added custom setting attribute for gradebook freeze timedelta (#35189)
* feat: added custom setting attribute for gradebook freeze timedelta
2024-08-05 16:23:50 +05:00
Tim McCormack
0359d5204d fix: Prevent error page recursion (#35209)
We sometimes see rendering errors in the error page itself, which then
cause another attempt at rendering the error page. I'm not sure _exactly_
how the loop is occurring, but it looks something like this:

1. An error is raised in a view or middleware and is not caught by
   application code
2. Django catches the error and calls the registered uncaught error
   handler
3. Our handler tries to render an error page
4. The rendering code raises an error
5. GOTO 2 (until some sort of server limit is reached)

By catching all errors raised during error-page render and substituting in
a hardcoded string, we can reduce server resources, avoid logging massive
sequences of recursive stack traces, and still give the user *some*
indication that yes, there was a problem.

This should help address https://github.com/openedx/edx-platform/issues/35151

At least one of these rendering errors is known to be due to a translation
error. There's a separate issue for restoring translation quality so that
we avoid those issues in the future (https://github.com/openedx/openedx-translations/issues/549)
but in general we should catch all rendering errors, including unknown
ones.

Testing:

- In `lms/envs/devstack.py` change `DEBUG` to `False` to ensure that the
  usual error page is displayed (rather than the debug error page).
- Add line `1/0` to the top of the `student_dashboard` function in
 `common/djangoapps/student/views/dashboard.py` to make that view error.
- In `lms/templates/static_templates/server-error.html` replace
  `static.get_platform_name()` with `None * 7` to make the error template
  itself produce an error.
- Visit <http://localhost:18000/dashboard>.

Without the fix, the response takes 10 seconds and produces a 6 MB, 85k
line set of stack traces and the page displays "A server error occurred.
Please contact the administrator."

With the fix, the response takes less than a second and produces three
stack traces (one of which contains the error page's rendering error).
2024-07-31 17:36:08 +00:00
Awais Qureshi
39dd3c002b feat: converting existing api to drf base api. (#35039)
Adding generic permission class. Added standard authentication classes.
2024-07-30 13:18:49 +05:00
Deborah Kaplan
089b34a6bf feat: removing the demographics application stage 2 (#35186)
* removing the application folder
* removing references in all other files

FIXES: APER-3560
2024-07-26 11:13:35 -04:00
Feanil Patel
ff77964414 Merge commit from fork
fix: cohorts data can be private
2024-07-25 10:08:25 -04:00
jawad khan
b77b90a344 fix: Enable courseware access api for all types of course(expired, cl… (#35155)
* fix: Enable courseware access api for all types of course(expired, closed etc)
2024-07-24 01:40:41 +05:00
Juliana Kang
40ddfeb3b8 feat: Add override on percentage config to the First Purchase Discount (#35167)
REV-4098
2024-07-23 15:43:34 -04:00
Muhammad Adeel Tajamul
e12ec1b153 feat: added group_by_id field in notifications model (#35137) 2024-07-23 14:28:56 +05:00
Juliana Kang
a19697786f feat: Add First Purchase Discount override (#35143)
REV-4098
2024-07-22 14:01:07 -04:00
Muhammad Soban Javed
004cd29cf3 chore!: uprgade social-auth-app-django to version 5.4.1 (#35045)
* chore!: uprgade social-auth-app-django to version 5.4.1

* chore: add migration from social_django
2024-07-22 18:27:57 +05:00
Eemaan Amir
b438349795 fix: rephrasing and removing bugs from response endorsed notifications (#35136)
* fix: rephrasing and removing bugs from response endorsed notifications

* test: updated test for response endorsed notifications
2024-07-19 15:56:05 +05:00
Justin Hynes
70f43b7682 chore: add learner dash MFE to trusted origins in devstack settings (#35129) 2024-07-17 12:18:47 -04:00
Deborah Kaplan
58de0964ca feat: removing visible_date-to-creds updates per-cert (#35113)
* feat: removing visible_date-to-creds updates per-cert

The credentials IDA now relies on  the course certificate configuration
and (if present) `certificate_available_date` for displayability. We no
longer need to send `visible_date` updates for every awarded certificate
when a course  overview changes.
2024-07-17 08:43:12 -04:00
jawad khan
3589d964cb feat: Added mobile api for course enrollment and other details. (#35100)
* feat: Added mobile api for course enrollment and other details.
2024-07-17 13:19:10 +05:00
Feanil Patel
8b1e6476cc Merge pull request #34344 from FatemeKhodayari/fix/course-progress-page-url-for-master
fix: course progress url based on whether the user has learning MFE enabled (for master)
2024-07-16 14:53:52 -04:00
Justin Hynes
b243b8d369 chore: Remove Demographics frontend components from edx-platform (#35121)
[APER-2823]

Removes React compoents and functionality tied to a private 2U/edx.org-specific Demographics IDA from edx-platform.

This PR attempts to remove everything added from this PR: https://github.com/openedx/edx-platform/pull/24956/. This includes the React components created to collect and transmit Demographics data, as well as functionality for managing JWT and CSRF tokens copied from `frontend-platform` to edx-platform when originally implementing the CTA and modal components.
2024-07-16 08:23:29 -04:00
Deborah Kaplan
360159c642 feat: linting before touching all these files (#35108)
* feat:  linting before touching all these files

All these files are old enough, relative either to our current linting
rules or our current linter automation,  that modifying anything in them
either makes the linter cranky or wants to reformat  the entire file.
Rather than mixing cleanup with code changes, this commit just lints
this set of files to our current standards.
2024-07-10 14:29:53 -04:00
Kyrylo Kireiev
53174178f3 feat: [FC-0047] Extend mobile API with course progress and primary courses on dashboard view (#34848)
* feat: [AXM-24] Update structure for course enrollments API (#2515)
---------
Co-authored-by: Glib Glugovskiy <glib.glugovskiy@raccoongang.com>

* feat: [AXM-53] add assertions for primary course (#2522)
---------
Co-authored-by: monteri <36768631+monteri@users.noreply.github.com>

* feat: [AXM-297] Add progress to assignments in BlocksInfoInCourseView API (#2546)
---------
Co-authored-by: NiedielnitsevIvan <81557788+NiedielnitsevIvan@users.noreply.github.com>
Co-authored-by: Glib Glugovskiy <glib.glugovskiy@raccoongang.com>
Co-authored-by: monteri <36768631+monteri@users.noreply.github.com>
2024-07-10 20:07:41 +05:00
Deborah Kaplan
7124559906 feat: updating readmes for program/cert/creds apps (#35104)
The LMS `certificates` app `README`  has been, and the
openedx core `credentials` and `programs` READMEs  have been created.
This will clarify not only what the limited responsibilities
of each of these django apps is, but also the way they interact with
each other.

FIXES: APER-2929
2024-07-10 10:34:16 -04:00
Tim McCormack
9146ab29f7 test: Delete flaky test DeprecatedRestApiClientTest::test_tracking_context (#35094)
Deleted according to flaky test process:
https://2u-internal.atlassian.net/wiki/spaces/TE/pages/12812492/Flaky+Test+Process

Flaky test ticket: https://2u-internal.atlassian.net/browse/CR-6899

Failed multiple times with this error, but not consistently:

```
FAILED lms/djangoapps/commerce/tests/__init__.py::DeprecatedRestApiClientTest::test_tracking_context - requests.exceptions.ConnectionError: HTTPSConnectionPool(host='ecommerce.example.com', port=443): Max retries exceeded with url: /api/v2/baskets/1/ (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f0708b91f50>: Failed to establish a new connection: [Errno -2] Name or service not known'))
```

Note that there is another test class with a name differing by only one
letter earlier in this file, `DeprecatedRestApiClientTests` (plural), with
a method with the same name. That one hasn't been failing.
2024-07-08 18:31:34 +00:00
muhammad-ammar
6a04752005 feat: use xpert ai 2024-07-04 18:17:02 +05:00
Rodrigo Martin
032bf044c6 feat(AU-2042): Show Google disclaimer on VideoBlock bottom section (#35040)
* feat(AU-2042): Show Google disclaimer on VideoBlock bottom section

* feat(AU-2042): Remove unnecessary classname prop
2024-06-28 13:15:31 -03:00
Fateme Khodayari
a5359d2e23 fix: course progress url returned based on course_home_mfe_progress_tab_is_active 2024-06-28 15:58:15 +03:30
Ahtisham Shahid
15e2834825 chore: removed obsolete feature flags (#34942) 2024-06-27 13:58:54 +05:00
ayesha waris
3bc03b33ac fix: fixed permissions for voted (#34993)
* fix: fixed permissions for voted

* fix: fixed test cases
2024-06-26 15:55:48 +05:00
Nathan Sprenkle
deb5b0f038 feat: add filter to hook render of XBlock (#34865)
* Bumps openedx-filters to 1.9.0
* Adds filter to hook render of XBlock
* Disables a too-many-statements warning on render_xblock function
2024-06-25 11:17:20 -04:00
Isaac Lee
76fbcbe437 fix: also filter for show_dashboard for instructor (#34949)
* fix: also filter for show_dashboard for instructor

* temp: attempting to craft tests

* chore: lint

* test: fixed xblock tests
2024-06-18 15:13:01 -04:00
Brandon Bodine
bafa16e7ff chore: update CSRF_TRUSTED_ORIGINS to include MFE 2024-06-13 10:29:36 -06:00
Feanil Patel
944e0588a2 Merge pull request #34811 from irtazaakram/bleach#33209
Replace deprecated bleach package
2024-06-13 10:17:31 -04:00
Juliana Kang
66fa388dea fix: Remove trial logic using moment-timezone in B2C Subs Programs (#34939)
REV-4067
2024-06-12 09:41:44 -04:00
Irtaza Akram
b8008a887d Merge branch 'master' into bleach#33209 2024-06-11 13:07:27 +05:00
Daniel Valenzuela
b98cbd4c2c feat: warn when relative dates are past due and can't be shifted 2024-06-10 22:55:16 +02:00
Tim McCormack
0eb61e28d1 feat: Start conversion of StaticContentServer from middleware into view (#34703)
See https://github.com/openedx/edx-platform/issues/34702

This necessarily involves switching from calling
`StaticContent.is_versioned_asset_path` to determine whether to handle the
request to having a hardcoded urlpattern. I've made the choice to hardcode
the other two patterns similarly rather than using imported constants. The
mapping of URL patterns to database records should be explicit (even though
we don't expect those constants to change out from under us.)

I've renamed the middleware rather than choosing a new name for the
implementation because there are other references in tests and other code.
This was the smaller change.

A note on HTTP methods: The middleware currently completely ignores the
request's HTTP method, so I wanted to confirm that only GETs were being
used in practice. This query reveals that 99.8% of requests that this
middleware handles are GET, with just a smattering of PROPFIND and OPTIONS
and a tiny number of HEAD and POST:
```
from Transaction select count(*) facet request.method
where name = 'WebTransaction/Function/openedx.core.djangoapps.contentserver.middleware:StaticContentServer'
since 4 weeks ago
```
2024-06-10 15:44:46 +00:00
Deborah Kaplan
68b052620a Merge branch 'master' into bleach#33209 2024-06-10 11:27:12 -04:00
Juliana Kang
cb52915370 fix: Financial Assistance Letter extend time to award and styling edits (#34913)
REV-4066
2024-06-06 16:41:54 -04:00
Kyle D. McCormick
97a9f08a9f build: lms/static/css/vendor/* -> common/static/css/vendor
The git-ignored target directory for LMS Sass compilation is:
    lms/static/css

Unfortunately, that directory contains git-controlled directory of
vendored-in static assets:
    lms/static/css/vendor

This is a problem for a couple reasons:

1. In Tutor, we would like to make lms/static/css a symlink to an
   external location for the sake of build efficiency. This is
   impossible to do without clobbering lms/static/css/vendor and
   dirtying the git state.

2. More generally, when optimizing (or just understanding) a build
   system, it adds complexity when git-controlled source directories are
   mixed up inside git-ignored target directories.

The solution is to simply merge these vendored-in assets to another
existing git-controlled vendor directory:
    common/static/css/vendor

LMS already reads assets from this folder, so no further changes need to
be made. common/static/css is fully git-controlled, so we avoid the
complexity described above.
2024-06-04 11:48:58 -04:00
Emad Rad
8d68dd3192 Merge remote-tracking branch 'upstream/master' 2024-06-03 22:08:58 +03:30
michaelroytman
f94a7f7f68 feat: send IDV approval email in approve_id_verifications management command
This commit modifies the approve_id_verifications management command to send an IDV approval email to learners. This ensures that learners are informed of approvals to their IDV attempts when performed using the management command. This more closely mirrors the way IDV approvals work when using an IDV vendor.
2024-05-30 15:03:44 -04:00
Irtaza Akram
f7229e0aad chore: replace bleach with nh3 2024-05-28 13:02:16 +05:00
Emad Rad
4529041643 chore: cleanup
- rst heading definitions
- indirect hyperlinks and code-blocks for better readability
2024-05-25 18:08:25 +03:30
Emad Rad
c27d55a253 chore: typos fixed 2024-05-25 18:05:28 +03:30
Emad Rad
db3f7af899 fix: application name corrected 2024-05-25 17:57:02 +03:30
Ivan Niedielnitsev
699614d892 feat: include units when calculating completion percentage (#34816)
This is an enhancement to the API used for the courseware navigation
sidebar.
2024-05-24 12:59:09 -04:00
Muhammad Soban Javed
d8675f8a06 feat: add FrontendMonitoringMiddleware in lms and studio (#34823)
* feat: add FrontendMonitoringMiddleware in lms and studio

* chore: upgrade edx-django-utils to 5.14.1
2024-05-23 16:29:59 +05:00