Commit Graph

24810 Commits

Author SHA1 Message Date
Glib Glugovskiy
cae4091579 docs: [FC-0031] Update docstring 2023-12-19 19:15:29 +02:00
KyryloKireiev
003f6d9bb4 refactor: [FC-0031] Use serializer instead of custom function 2023-12-19 19:15:29 +02:00
KyryloKireiev
81c992990a fix: [FC-0031] Add parameters description, refactor list method 2023-12-19 19:15:29 +02:00
KyryloKireiev
c4fe8d30e3 feat: [AXIM-26] Extended BlocksInCourseView API 2023-12-19 19:15:29 +02:00
Troy Sankey
9ef8ce61e6 feat: wrap new course_not_started_enterprise_learner in a SettingToggle
ENT-8078
2023-12-18 18:54:36 -08:00
Troy Sankey
499679ab6c feat: add new course access error_code for enterprise learners in future courses (2nd try)
Normally, the course API would return an access error_code of
`course_not_started` if the course has not started yet.  This change
breaks that up into two codes:

* if the course has not started:
  * return error_code=`course_not_started_enterprise_learner` if the
    learner is enrolled as a subsidized enterprise learner.
  * else, return error_code=`course_not_started`.

This supports a change to the frontend which will interpret
`course_not_started_enterprise_learner` differently and trigger a
redirect to the enterprise (B2B) learner dashboard instead of the B2C
dashboard.

ENT-8078
2023-12-18 12:55:17 -08:00
Asespinel
e9d84d0ec1 feat: added banner message for survey report (#33633)
* feat: added banner message for survey report

* refactor: addressed PR feedback and changes
* fix: fixed styles on admin templates
* refactor: changed script location to survey report block
* chore: removed whitespaces and renamed the context processor files
* feat: added banner message for survey report
* refactor: separated survey report template from admin and deleted base template
* refactor: changed months variable into a configurable setting


---------

Co-authored-by: Maria Fernanda Magallanes Zubillaga <maria.magallanes@edunext.co>
Co-authored-by: María Fernanda Magallanes <35668326+MaferMazu@users.noreply.github.com>
2023-12-18 10:19:51 -05:00
Jenkins
82f3cecd77 chore(i18n): update translations 2023-12-17 16:04:27 -05:00
Troy Sankey
f74d48341b Merge pull request #33937 from openedx/pwnage101/ENT-8078-2
revert: "feat: add new course access error_code for enterprise learners in future courses"
2023-12-15 11:17:16 -08:00
Feanil Patel
01fcbc9828 Merge pull request #33646 from raccoongang/rg/feat/FC0031/update_course_detail_view_endpoint
feat: [FC-0031] Add optional field 'is_enrolled' to course detail view
2023-12-15 14:08:32 -05:00
Troy Sankey
0ea0048bdf revert: "feat: add new course access error_code for enterprise learners in future courses"
This reverts commit 287a7ff7fd.
2023-12-15 10:49:46 -08:00
Glib Glugovskiy
d344a7eef6 fix: [FC-0031] Restrict access to is_enrolled field 2023-12-15 20:28:31 +02:00
KyryloKireiev
bd5386356a feat: [FC-0031] Add optional field 'is_enrolled' to course detail view 2023-12-15 14:28:09 +02:00
Troy Sankey
287a7ff7fd feat: add new course access error_code for enterprise learners in future courses
Normally, the course API would return an access error_code of
`course_not_started` if the course has not started yet.  This change
breaks that up into two codes:

* if the course has not started:
  * return error_code=`course_not_started_enterprise_learner` if the
    learner is enrolled as a subsidized enterprise learner.
  * else, return error_code=`course_not_started`.

This supports a change to the frontend which will interpret
`course_not_started_enterprise_learner` differently and trigger a
redirect to the enterprise (B2B) learner dashboard instead of the B2C
dashboard.

ENT-8078
2023-12-14 22:18:25 -08:00
Feanil Patel
5ec8737856 chore: Remove old datadog related settings.
Datadog was removed 6+ years ago but some settings and related keys got
left behind.  Get rid of them since we don't need them and also to
prevent people from assuming it's okay to hardcode datadog settings into
our codebase.
2023-12-14 12:17:37 -05:00
Varsha Menon
bfe6ba5daf fix: add import statement for handlers 2023-12-12 14:17:54 -05:00
Diana Huang
c6485d1d27 feat: renamed DeprecatedRestApiClient from EdxRestApiClient (#33916)
* feat: renamed DeprecatedRestApiClient from EdxRestApiClient

* chore: Updating Python Requirements (#33917)

* fix: Put slumber in the proper alphabetical order.

---------

Co-authored-by: Yagnesh <yagnesh.nayi@manprax.com>
Co-authored-by: edX requirements bot <49161187+edx-requirements-bot@users.noreply.github.com>
2023-12-12 13:32:09 -05:00
Erica Nwoga
a74f510f71 feat: post handler for agreements api (#33488) 2023-12-11 13:58:35 -05:00
Muhammad Adeel Tajamul
cf6a629ee7 fix: discussion tab should be None if discussion tab is disabled (#33861) 2023-12-11 15:06:37 +05:00
Jenkins
299cafa985 chore(i18n): update translations 2023-12-10 16:04:28 -05:00
Juliana Kang
01f60b54e5 feat: Financial assistance form learner privacy update (#33808)
REV-2764
2023-12-08 10:59:45 -05:00
Kyle McCormick
140f85853d feat!: remove Content Libraries V2 index (#33888)
BREAKING CHANGE: Removes all code, tests, and settings related to
indexing of V2 (blockstore-backed) content libraries in elasticsearch.
This includes indexing of top-level library metadata as well as indexing
of library block metadata. Operators who enabled the experimental
Library Authoring MFE *and* the experimental ENABLE_CONTENT_LIBRARY_INDEX
feature may notice that sorting, filtering, and searching of V2
libraries and their blocks may now be slower and/or less powerful.
The ENABLE_CONTENT_LIBRARY_INDEX feature was already disabled by
default, so most/all operators (including edx.org) should not notice
any difference.

Removed settings include:

* FEATURES['ENABLE_CONTENT_LIBRARY_INDEX']
* ENABLE_ELASTICSEARCH_FOR_TESTS
* TEST_ELASTICSEARCH_USE_SSL
* TEST_ELASTICSEARCH_HOST
* TEST_ELASTICSEARCH_PORT

For rationale, see the updated "Status" section of:
./openedx/core/djangoapps/content_libraries/docs/decisions/0001-index-libraries-in-elasticsearch.rst
2023-12-07 14:57:31 -05:00
Kyle McCormick
27803f51c8 feat!: assume & remove BLOCKSTORE_USE_BLOCKSTORE_APP_API (#33765)
Originally, Blockstore was an independent micro-service, accessed via a REST API.
Then, we changed Blockstore so it could be installed as an in-process Django app.

To support both modes, there existed a blockstore_api wrapper library in edx-platform,
with toggles controlling whether the wrapper called out to the micro-service's REST API versus the
Django app's Python API. Now that the micro-service Blockstore implementation is deprecated,
though, this wrapper library and toggles are just unnecessary complexity.

As a first step towards cleanup, we:

* remove several toggles and settings (details below);
* remove the blocokstore_api wrapper methods which called the REST API and
  marshalled them back into Python objects; and
* remove all test cases which relied on the Blockstore micro-service (and were skippped in CI).

In the future, we will remove the content libraries indexer, 
clean up the remaining bits of blockstore_api, and flatten out all
the Blockstore-related test class hierarchies which are no longer nceessary.

BREAKING CHANGE:
* These Django settings are removed:
  * BLOCKSTORE_PUBLIC_URL_ROOT
  * BLOCKSTORE_API_URL
  * BLOCKSTORE_API_AUTH_TOKEN
  * BLOCKSTORE_USE_BLOCKSTORE_APP_API
* The blockstore.use_blockstore_app_api Waffle switch is removed.
* edx-platform will act as it did when the DJango setting BLOCKSTORE_USE_BLOCKSTORE_APP_API
  or the Waffle switch blockstore.use_blockstore_app_api were enabled. That is, any running Blockstore
  micro-service instance will be ignored, and the Blockstore package which is installed into edx-platform
  will be used instead.

Ref: https://github.com/openedx/blockstore/issues/296
2023-12-06 15:15:18 +00:00
Ahtisham Shahid
2495120d89 chore: removed enable_moderation_reason_codes flag from discussion app (#33822)
* chore: removed enable_moderation_reason_codes flag from discussion app
2023-12-06 11:05:56 +05:00
Jenkins
5547ec6ff3 chore(i18n): update translations 2023-12-05 09:53:06 -05:00
Pooja Kulkarni
f5b246d0e9 feat: copy/paste unit from within a unit in Studio - feature flagged (#33724)
(requires the contentstore.enable_copy_paste_units waffle flag)
2023-12-01 11:33:34 -08:00
Leangseu Kim
ae6914fe3d chore: add ora mfe url env 2023-11-27 16:36:23 -05:00
github-actions[bot]
3b902c8f6f feat: Upgrade Python dependency edx-drf-extensions 9.0.0 (#33807)
Upgrade edx-drf-extensions 9.0.0

Commit generated by workflow `openedx/edx-platform/.github/workflows/upgrade-one-python-dependency.yml@refs/heads/master`

edx-drf-extensions 9.0.0 requires VERIFY_LMS_USER_ID_PROPERTY_NAME
to be properly set in LMS to get the appropriate verification when
forgiving JWTs is enabled (which will soon be by default).

See openedx/edx-drf-extensions#408 for details.

This is part of:
edx/edx-arch-experiments#429

Co-authored-by: robrap <robrap@users.noreply.github.com>
2023-11-27 18:19:57 +00:00
Feanil Patel
a958097630 Merge pull request #33294 from raccoongang/rg/feat/FC0031/add_pagination_in_user_course_enrollments
feat: [FC-0031] Add DefaultPagination in UserCourseEnrollmentsList
2023-11-27 11:23:18 -05:00
mubbsharanwar
487b870ae4 revert: remove learner_recommendations app 2023-11-27 10:38:24 +05:00
Jenkins
1734fdc0dc chore(i18n): update translations 2023-11-26 16:09:14 -05:00
Mohammad Ahtasham ul Hassan
a57dd7325b feat: add course key param to track selection url (#33716) 2023-11-24 15:23:36 +05:00
Moeez Zahid
f880855f66 feat: Publish mobile SKUs to LMS (#33754) 2023-11-24 14:14:33 +05:00
Régis Behmo
09dfd8718e fix: CSRF errors in POST requests to LMS (#33727)
POST requests to the LMS are failing systematically when HTTPS is
enabled. This issue is observed in the Quince release branch. Here is
the root cause analysis:

- CorsCSRFMiddleware overrides the `is_secure` attribute by setting it
  to "false".
- CorsCSRFMiddleware calls the parent `process_view` method, from the
  CsrfViewMiddleware.
- CsrfViewMiddleware checks the Origin header, including the scheme. It
  is equal to "https://LMSHOST". But because the request is not
  considered secure, the expected origin is "http://LMSHOST".
- The check fails with "Origin checking failed"

We resolve this issue by running the CsrfViewMiddleware *before* the
custom CorsCSRFMiddleware. After a successful check of the
CsrfViewMiddleware, the request has the "csrf_processing_done = True"
attribute, and CorsCSRFMiddleware is short-circuited.

This issue did not happen in the following environments:

- in Palm because the CsrfViewMiddleware did not check the "Origin" header in Django 3.
- in the Studio, because the Studio already runs the CsrfViewMiddleware before
  the CorsCSRFMiddleware.
- in the master branch because the master branch does not yet run on
  Django 4. But the issue will happen in the master branch without this
  proposed change.

To bypass this issue in the master branch, it was proposed that we add
"https://LMSHOST" to CSRF_TRUSTED_ORIGINS. This would effectily bypass
CSRF checking entirely for all requests that originate from the LMS.
Such a solution would not be acceptable, as we would lose the security
guarantees offered by CSRF.

See discussion: https://github.com/openedx/wg-build-test-release/issues/325
2023-11-23 13:52:16 -04:00
Navin Karkera
e9ca49d3a6 fix: session_language url renamed to update_language
The url was renamed from session_language to update_language but it was still referred to in some html templates
2023-11-23 22:06:19 +05:30
jszewczulak
2df2030811 feat: added hotjar site id property (#33738) 2023-11-21 10:27:20 -05:00
Glib Glugovskiy
3da85a994e fix: remove trailing whitespace failing quality check 2023-11-20 23:08:56 +02:00
Glib Glugovskiy
95fcb124dd docs: add docstring for the paginator property override 2023-11-20 22:40:28 +02:00
KyryloKireiev
ee4b92ca10 feat: [AXIM-6] Add DefaultPagination for UserCourseEnrollmentsList v3 2023-11-20 22:40:28 +02:00
Kyle McCormick
e800ae7622 feat: provisionally support V2 libraries in LibraryContentBlock (randomized only) (#33263)
Refactors and reworks the LibraryContentBlock so that its
sync-from-library operations are asynchronous and work with
V2 content libraries. This also required us to make
library_content block duplication asynchronous, as that
involves syncing from the source library.

For the sake of clarity, this PR includes two major method renames:

* update_children(...) -> sync_from_library(...)
* refresh_library(...) -> sync_from_library(upgrade_to_latest=True, ...)

an an XBlock HTTP handler rename:

  /refresh_children -> /upgrade_and_sync

There are still a couple issues with import or duplication
of library_content blocks referencing V2 libraries other than
latest. These will be resolved in an upcoming PR.

Part of: https://openedx.atlassian.net/wiki/spaces/COMM/pages/3820617729/Spec+Memo+Content+Library+Authoring+Experience+V2
Follow-up work: https://github.com/openedx/edx-platform/issues/33640

Co-authored-by: Connor Haugh <chaugh@2u.com>
Co-authored-by: Eugene Dyudyunov <evgen.dyudyunov@raccoongang.com>
2023-11-20 15:58:10 +00:00
Jenkins
c53cf9f1c3 chore(i18n): update translations 2023-11-20 10:57:40 -05:00
Andrew Shultz
6c6ecab27a Merge pull request #33732 from openedx/ashultz0/es-search-log-settings
ES courseware search log settings
2023-11-16 10:32:07 -05:00
Andy Shultz
3da6578e9b feat: add settings for detailed search logging (default off)
devstack on, production load from environment
2023-11-16 10:00:30 -05:00
Feanil Patel
942a2419f1 Merge pull request #33295 from raccoongang/rg/feat/FC0031/add_profile_image_to_api_discussion
feat: [FC-0031] Add field profile_image to CommentSerializer
2023-11-16 09:57:03 -05:00
Ahtisham Shahid
c6b36a8558 feat: added beamer to edx-platform (#33701) 2023-11-16 14:56:08 +05:00
KyryloKireiev
da9266e31d refactor: [FC-0031] Move get_profile_image method to api 2023-11-14 21:45:18 +02:00
KyryloKireiev
ae3830b023 feat: [AXIM-20] Add profile_image to API CommentViewSet 2023-11-14 21:45:18 +02:00
Jason Wesson
3c40052579 Merge pull request #31668 from raccoongang/lunyachek/fix/absent-notification-message-certificate-exception-generation
fix: Fix absent notification message after submit Generate Exception …
2023-11-14 10:20:50 -08:00
Andy Shultz
aeaa1f8628 feat: if course is specified, do not build the course limiting filters
Adding these filters in the course case makes it harder to understand
what is going on in the search engine for no benefit.
2023-11-14 09:08:41 -05:00
Arunmozhi
5b2f012acc feat: link LTI Provider launches to authenticated users
With this change, the platform users who access content via LTI will be 
automatically linked to their platform account instead of the new (anonymous) 
one. The following conditions need to be met:
* The `LtiConsumer` should be configured to auto-link the users via email.
* The LTI Consumer should share the user's email using the
`lis_person_contact_email_primary` parameter in the LTI Launch POST data.

This also replaces the one-to-one relationship of the `User` and `LtiUser` 
with one-to-many. This way, multiple `LtiUser` objects can refer to the same 
`edx_user`. With the auto-linking, multiple LTI Consumers can create 
independent `LtiUser` objects with the same `edx_user`.

Co-authored-by: Piotr Surowiec <piotr@surowiec.it>
2023-11-13 19:38:37 +01:00