Commit Graph

35 Commits

Author SHA1 Message Date
Braden MacDonald
1ca57ec129 Basic CRUD REST Endpoints for units in content libraries [FC-0083] (#36371)
* refactor: convert libraries API from attr.s to dataclass, fix types

* fix: make corresponding updates to 'search' code

* feat: use new version of openedx-learning with containers support

* temp: Use opencraft branch of opaquekeys

* refactor: Use LibraryElementKey instead of LibraryCollectionKey

* refactor: split libraries API & REST API up into smaller modules

* feat: new REST API for units in content libraries

* feat: python+REST API to get a unit

* feat: auto-generate slug/key/ID from title of units

* feat: generate search index documents for containers

* refactor: rename LibraryElementKey to LibraryItemKey

* fix: lint error

* feat: adds new units to search index on create/update

and when running reindex_studio.

Updates requirements for openedx-events and openedx-learning to support
these changes.

* fix: pylint

* fix: temp requirement

* fix: search index container events/tasks

* feat: add get_library_container_usage_key to libraries API

and use it when search indexing containers

* fix: index all containers during reindex_studio

* chore: bump openedx-events requirement

* fix: address review comments

* chore: bumps openedx-learning to 0.19.1

* fix: rename api method to library_container_locator

since container keys are locators, not usage keys

* chore: bumps opaque-keys dependency

* test: fix misnamed unit_usage_key

* feat: adds APIs to update or delete a container (#757)

* feat: adds python and REST APIs to update a container's display_name
* refactor: adds _get_container method to api to reduce code duplication
* feat: adds python and REST APIs to delete a container
* test: add container permission tests

---------

Co-authored-by: XnpioChV <xnpiochv@gmail.com>
Co-authored-by: Jillian Vogel <jill@opencraft.com>
Co-authored-by: Rômulo Penido <romulo.penido@gmail.com>
2025-03-28 18:55:04 +05:30
Marcos
3bcbcaac2d chore: Removed unused dependency 2025-01-23 15:55:58 -03: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
Kyle D. McCormick
75e3107863 fix: Move implicit dependencies from paver.in to kernel.in
There are three packages which edx-platform needs in order to run which
were being installed transitively via paver.in. Since we are removing
paver.in, these dependencies need to be transferred into kernel.in:

* psutil
* pymemcache
* wrapt

Part of: https://github.com/openedx/edx-platform/issues/34467
2025-01-02 14:05:15 -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
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
Diana Huang
818aa343a2 Revert "feat: Integrate Forum V2 into edx-platform"
This reverts commit 70b60ff256.
2024-12-06 11:19:06 -05: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
Feanil Patel
a1bc4760aa build: Unpin lxml.
libxmlsec and lxml need to be updated in lockstep and the version we had
wouldn't work with Ubuntu 24.04 so unpinning lxml along with libxmlsec
to see if that resolves the build and dependency issues.
2024-11-05 10:44:02 -05:00
Irtaza Akram
ceb19b3113 Merge branch 'master' into bleach#33209 2024-06-12 17:12:01 +05:00
Feanil Patel
7f1d723713 build: Add a missing import for importlib_metadata.
This was being pulled in as a transitive dependency before but it turns
out we need this directly for the usage in
openedx/core/djangoapps/plugins/i18n_api.py

We add it to kernel.in before re-building the requirements files.
2024-06-11 11:30:22 -04:00
Irtaza Akram
f7229e0aad chore: replace bleach with nh3 2024-05-28 13:02:16 +05: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
github-actions[bot]
73d3995dae feat: Upgrade Python dependency edx-enterprise, and introduce importlib-metadata (#34794)
* feat: Upgrade Python dependency edx-enterprise

Version bump

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

* fix: reintroduce importlib_metadata

* chore: Updating Python Requirements (#34798)

---------

Co-authored-by: brobro10000 <82611798+brobro10000@users.noreply.github.com>
Co-authored-by: Hamzah Ullah <hamzahullah@yahoo.com>
Co-authored-by: edX requirements bot <49161187+edx-requirements-bot@users.noreply.github.com>
2024-05-14 15:22:06 -04:00
Kyle McCormick
15caa9746f refactor: Completely remove Blockstore (#34739)
Blockstore and all of its (experimental) functionality has been replaced with
openedx-learning, aka "Learning Core". This commit uninstalls the now-unused
openedx-blockstore package and removes all dangling references to it.

Note: This also removes the `copy_library_from_v1_to_v2` management command,
which has been broken ever since we switched from Blockstore to Learning Core.

Part of this DEPR: https://github.com/openedx/public-engineering/issues/238
2024-05-13 09:48:18 -04:00
Feanil Patel
321d40bf92 build: Remove sqlparse from kernel dependencies 2024-05-06 14:44:13 -04:00
Tim McCormack
afe93559b9 Revert "build: Python requirements upgrade and lxml build without binary (#34…" (#34661)
This reverts commit 52adce48d1 because we were getting this in the build pipeline:

```
WARNING: lxml 5.2.1 does not provide the extra 'html-clean'
ERROR: Exception:
Traceback (most recent call last):
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 173, in _main
    status = self.run(options, args)
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 203, in wrapper
    return func(self, options, args)
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 315, in run
    requirement_set = resolver.resolve(
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 94, in resolve
    result = self._result = resolver.resolve(
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 472, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 366, in resolve
    failure_causes = self._attempt_to_pin_criterion(name)
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 221, in _attempt_to_pin_criterion
    satisfied = all(
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 222, in <genexpr>
    self._p.is_satisfied_by(requirement=r, candidate=candidate)
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/provider.py", line 178, in is_satisfied_by
    return requirement.is_satisfied_by(candidate)
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/requirements.py", line 84, in is_satisfied_by
    assert candidate.name == self.name, (
AssertionError: Internal issue: Candidate is not for this requirement lxml[html-clean,html-clean] vs lxml[html-clean]
WARNING: You are using pip version 21.2.1; however, version 24.0 is available.
You should consider upgrading via the '/edx/app/edxapp/venvs/edxapp/bin/python -m pip install --upgrade pip' command.
```
2024-04-29 21:06:45 +00:00
edX requirements bot
52adce48d1 build: Python requirements upgrade and lxml build without binary (#34655)
* build: build lxml without binary in requirements and CI workflows
---------
Co-authored-by: Usama Sadiq <usama.sadiq@arbisoft.com>
2024-04-29 23:48:57 +05:00
Feanil Patel
cec7969ce8 feat!: Remove the django-splash app.
DEPR: https://github.com/openedx/public-engineering/issues/224

The django-splash repo was created 11 years ago to let the LMS redirect
users to a splash screen when a user comes to the site for the first
time. It works by looking for a configurable cookie value and
redirecting from the middleware.

This feature was never documented, has some edx.org hardcoded defaults,
and is not compatible with MFEs.

BREAKING CHANGE: The django splash feature will no longer be available.
2024-04-18 12:43:26 -04:00
Braden MacDonald
f663739510 feat: Index Studio content using Meilisearch [experimental] (#34310) 2024-03-22 10:08:31 -07:00
Tim McCormack
3502096183 chore: Update org to openedx for move-affected repos (#34297)
See https://github.com/edx/edx-arch-experiments/issues/558
2024-02-26 22:10:59 +00:00
Rebecca Graber
4445aa6b1f feat: bring in new client id configuration from ebk (#34115) 2024-01-25 13:07:05 -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
farhan
ff17e51699 refactor: remove xblockutils package 2023-10-11 14:46:09 +05:00
Awais Qureshi
46776e92e2 chore: using edx-proctoring-proctortrack hash for django42 compatib… (#33406)
* chore: using `edx-proctoring-proctortrack` hash for django42 compatibility.
* docs: link the follow up issue for github dependency

---------

Co-authored-by: edX requirements bot <49161187+edx-requirements-bot@users.noreply.github.com>
Co-authored-by: UsamaSadiq <usama7274@gmail.com>
2023-10-06 17:52:05 +05:00
Usama Sadiq
194915d6bd Update proctortrack version (#33352)
* chore: update proctoring-proctortrack version

Co-authored-by: UsamaSadiq <UsamaSadiq@users.noreply.github.com>
2023-09-28 16:43:25 +05:00
Jesper Hodge
f197f9e61e add swagger for CMS API via drf-spectacular (#33282)
This adds two new urls: `<studio-base>/cms-api/ui` and `<studio-base>/cms-api/schema` with swagger ui and swaggerfile only for the new CMS API using drf-spectacular
2023-09-19 21:06:40 +00:00
Rebecca Graber
02dd36cdc1 temp: pin openedx-events to before publish-by-config (#33266) 2023-09-15 13:32:28 -04:00
salmannawaz
648a30249a Deprecation of edx-user-state-client repo (#33218)
* chore: add code for edx-user-state-client in edx-platform
2023-09-14 18:53:37 +05:00
Omar Al-Ithawi
3b869dd041 feat: install atlas translation tool (#32952)
Add the openedx-atlas to the kernel.in so it's available in all
environments including Atlas, Devstack and Native installation.
2023-09-13 08:11:07 -04:00
Chris Chávez
9bea44732b System defined taxonomies (#32869)
* feat: System defined taxonomies

* style: models.py moved to models/base.py

* feat: New Content System defined models

* style: Lint and migration

* fix: Fix migration error

* chore: Rebase and compile requirements

* refactor: adds ContentTaxonomyMixin for use when creating content system taxonomies

Pulls the ContentTaxonomy-specific logic into a mixin class to bring
the Content-specific logic into other Taxonony subclasses.

* fix: Tests

* test: System defined model validations

* fix: Move language taxonomy creation to openedx-learning

* style: Rename of OrganizationSystemDefinedTaxonomy

* style: nits

* chore: Update openedx-learning dependency

---------

Co-authored-by: Jillian Vogel <jill@opencraft.com>
2023-08-02 12:22:23 -07:00
Jillian
8098169eca feat: adds Content Tagging (#32661)
* refactor: moves is_content_creator

from cms.djangoapps.contentstore.helpers to common.djangoapps.student.auth

* feat: adds content tagging app

Adds models and APIs to support tagging content objects (e.g. XBlocks,
content libraries) by content authors. Content tags can be thought of as
"name:value" fields, though underneath they are a bit more complicated.

* adds dependency on openedx-learning<=0.1.0
* adds tagging app to LMS and CMS
* adds content tagging models, api, rules, admin, and tests.
* content taxonomies and tags can be maintained per organization by
  content creators for that organization.
2023-07-26 10:32:59 -07:00
Rômulo Penido
c54070989b feat!: add new content authoring event signals 2023-07-25 16:45:39 +02:00
Ahtisham Shahid
b477a20ad2 Added notifications for discussions events (#32432)
* feat: added notifications for discussions app

* feat: added unit tests for handler

* feat: updated openedx-events package

* fix: updated notification creation logic and tests

* refactor: updated openedx-event version and event name

* refactor: moved logic to separate methods
2023-07-06 13:33:20 +05:00
Braden MacDonald
83f54aeebe refactor: Split base.in into kernel.in (required) and bundled.in (optional) (#32552)
Plus remove a few unused and indirect dependencies
2023-06-30 09:51:43 -07:00