Commit Graph

23786 Commits

Author SHA1 Message Date
Simon Chen
192b35eb8f fix: add Learner as another role posted to LTI tools for the LTI embed (#30356)
Co-authored-by: Simon Chen <schen@edx-c02fw0guml85.lan>
2022-05-09 10:12:28 -04:00
Justin Hynes
8f2eb38220 Merge pull request #30342 from openedx/jhynes/microba-1510_rest-apis
feat: add new REST APIs to support scheduled bulk email
2022-05-09 09:41:44 -04:00
Waheed Ahmad
bab13f7281 fix: SFL event type (#30353)
Event type for save-for-later events is setting as null.
2022-05-09 17:01:26 +05:00
Maria Grimaldi
e8fa890af7 feat: add filter before certificate creation starts
- Add filters interactions with code that used generate_certificate_task
- Add unit-testing for filters
- Upgrade to latest library update
2022-05-06 13:57:21 -04:00
Justin Hynes
351d9e6759 feat: add new REST API to support scheduled bulk email
[MICROBA-1510]

* update InstructorTaskSchedule model delete behavior from CASCADE to DO_NOTHING.
* add utility function supporting cancellation of scheduled tasks to the instructor_task app
* add utility function to determine if a user has staff or instructor level access to a course to the student app
* adds a REST API for supporting retrieval and cancellation of scheduled bulk email tasks
* add unit tests for new functionality in the student app
* add unit tests for the new functionality in the bulk_email app
* remove use of CourseEmail object directly in another related test file
* add unit tests for the new REST API views.
2022-05-05 14:26:35 -04:00
Eugene Dyudyunov
8bd43207ca refactor!: switch from LegacyWaffle* to modern waffles (#30330)
This is a first stage for removing the LegacyWaffle* classes.

LegacyWaffleFlag usage replaced with WaffleFlag;
LegacyWaffleSwitche usage replaced with WaffleSwitch;
New CourseWaffleFlag added to the temporary module __future__ as FutureCourseWaffleFlag;
Updated all the imports to use CourseWaffleFlag from the __future__ module;

BREAKING CHANGE: A number of toggle related constants (e.g. ENABLE_ACCESSIBILITY_POLICY_PAGE)
changed types. They were strings, and are now toggle instances (e.g. WaffleSwitch). Although the entire
refactor should be self-contained in edx-platform, if any plugins or dependencies were directly
using these constants, they will break. If this is the case, try to find a better publicized way of
exposing those toggles.
2022-05-05 12:03:10 -04:00
Nathan Sprenkle
2c61a674be feat: get standalone file metadata (#30337)
* chore: fix some typos

* feat: get file metadata for a submission

* docs: update example collection

Co-authored-by: nsprenkle <nsprenkle@2u.com>
2022-05-02 14:18:18 -04:00
Diana Huang
521151e712 refactor: Remove edx.org theme. (#30333)
This theme is no longer in use. The theme in use
has been moved to its own private repo.
2022-05-02 09:42:46 -04:00
Simon Chen
fcb29a6834 feat: introduce new setting to control IDV requirements for certificates (#30318)
Co-authored-by: Simon Chen <schen@edx-c02fw0guml85.lan>
2022-04-28 11:10:04 -04:00
SaadYousaf
98262c088d feat: send email to moderators after content is reported 2022-04-27 22:18:56 +05:00
ansabgillani
8c7059c5bb fix: reverting SSO History changes to unblock stage 2022-04-27 21:09:44 +05:00
Mubbshar Anwar
ae697b1f46 fix: data integrity error (#30313)
while updating SavedCourse or SavedProgram objects data integrity exception was raising
VAN-938
2022-04-27 17:05:43 +05:00
ansabgillani
4af3d58b39 feat: Add SSO History for Support 2022-04-27 11:44:25 +05:00
Michael Terry
393fd971f5 Merge pull request #30295 from openedx/mikix/embargo-chain
fix: use safer ip-chain logic when checking ip for embargos
2022-04-25 11:41:12 -04:00
Feanil Patel
f2ec7b5053 chore: Cleanup last remenants of the edx-microsite code. (#30306)
There are still references to the word `microsite` because the
site-configuration code uses it to referr to it's sub-sites in a few
places.
2022-04-25 10:48:35 -04:00
jfavellar90
aefdda9df3 perf: Relax load in instructor dashboard page
Relax load when bringing all the course children when fetching a course in the instructor dashboard page.

When loading the Instructor dashboard, the course is fetched with
3cbc5b9cdc/lms/djangoapps/instructor/views/instructor_dashboard.py (L122)

 Please note that the parameter **depth** is zero, so the course is fetched with no children (sections, subsections, sequentials, etc). In a subsequent part of the code, the extensions tab is loaded, specifically in :

3cbc5b9cdc/lms/djangoapps/instructor/views/instructor_dashboard.py (L585)

Which eventually call the method **get_units_with_due_date**

3cbc5b9cdc/lms/djangoapps/instructor/views/tools.py (L121) .

This method iterates over the course and its children to find blocks with due dates. This iteration was taking too long unless the course is fetched with **depth** None, which brings all the children of the course, reason why this commit is created.
2022-04-25 09:43:50 -04:00
Kshitij Sobti
f3f604c25f fix: Disallow endorsements for replies to comments (#30310)
Disables the "endorsement" action for nested comments. Only top-level comments should support endorsement.
2022-04-25 16:13:10 +05:00
Michael Terry
b8ecfed67d fix: use safer ip-chain logic when checking ip for embargos
Specifically:
- check ALL ip addresses in the client ip chain for blocking
- check RIGHTMOST ip address in the client ip chain for allowing

Before, we always checked the LEFTMOST ip address in both cases.

AA-1234
2022-04-22 11:15:02 -04:00
Michael Terry
93c5fdf735 Merge pull request #30303 from openedx/mikix/outline-children
fix: guard access to course block children in outline tab data
2022-04-22 09:35:02 -04:00
Demid
da4a6d6103 feat: Implement feature flag to disable students un-enrollment (#29326)
Implements a feature flag DISABLE_UNENROLLMENT that is used to disable students un-enrollment for all courses. The Unenrollment option should be disabled when this feature is set to True.

ref: BB-4951

Co-authored-by: tinumide <tinuade@opencraft.com>
Co-authored-by: Tim McCormack <tmccormack@edx.org>
2022-04-22 13:24:23 +00:00
Michael Terry
ea6b5b9e3c fix: guard access to course block children in outline tab data
In some cases the course blocks API was returning a dict without
a 'children' key, which was causing a traceback.

If the course blocks API has no children, that's IS a problem, but
still better than erroring out due to a KeyError.

AA-1267
2022-04-22 09:08:03 -04:00
AsadAzam
0338aab681 feat: added flag to enable discussions mfe for everyone (#30292)
* feat: added flag to enable discussions mfe for everyone

* refactor: refactord condition

* refactor: refactor condition
2022-04-22 15:14:09 +05:00
Eugene Dyudyunov
f262d64ad4 FC-0001: enterprise dependencies for EdxRestAPIClient replacement (#30240)
* refactor: enterprise dependencies for EdxRestAPIClient replacement

This is a part of https://github.com/openedx/public-engineering/issues/42

- add settings for enterprise-backend-service DOT application
- update utils used by enterprise to get rid of EdxRestAPIClient
- original utils stays in the code (to keep edx-platform api
clients working) till the
https://github.com/openedx/public-engineering/issues/39 deprecation
work will be done

* fix: fix typo in the docstring
2022-04-21 15:28:22 -04:00
Michael Terry
48b0df4f99 Merge pull request #30281 from openedx/mikix/minor-api-cleanup
fix: remove a couple unused learning MFE serializer fields
2022-04-21 09:27:04 -04:00
Jillian Vogel
8b77638bf0 test: refactors blockstore integration tests to run as unit tests.
Tests which @requires_blockstore (i.e. the Blockstore service) have
been made to run as a unit test using the installed Blockstore app, and
will be run by the platform CI.

The Blockstore service tests can still be run manually by setting
EDXAPP_RUN_BLOCKSTORE_TESTS=1

Related fixes:

* adds blockstore bundle storage settings
* let the studio devstack and test servers serve static files from
  the /media URL This allows the blockstore/content libraries API to
  serve blockstore assets in dev.
* Wrap ContentLibrary creation in an atomic transaction, so that if it
 fails, the related bundle can be deleted directly from the database
  during the exception handler. (Previously, we called a REST API which
  deleted it as part of a separate service.)
2022-04-21 09:39:59 +01:00
Jillian Vogel
cfd53aff70 refactor: installs blockstore into edx-platform
* adds blockstore as a requirement and an installed app, with
  configurable bundle storage settings.
* adds waffle switch and setting to allow use of blockstore's python API
  instead of REST API in live testservers and in production.
* adds database router which, when a `blockstore` DATABASE connection is
  configured, allows the platform to use the blockstore service's
  database instead of the default edxapp database.
* replaces blockstore_api exceptions and models with blockstore.app.api classes
* minor fixes to the blockstore_api to make the Blockstore REST API
  return data packaged the same as the Blockstore Python API.
2022-04-21 09:39:54 +01:00
Jillian Vogel
98a26e8674 fix: use default MEDIA_URL in devstack
The devstack override for this variable didn't work, so just use the common default: /edx/var/edxapp/media
2022-04-21 09:35:08 +01:00
Hassan
4569b53bad Merge pull request #30070 from openedx/hassan/dump-course-ids-filter
feat: Added management command dump_course_ids_with_filter.
2022-04-20 10:24:02 -05:00
Tim McCormack
a251d18281 feat!: Use more-trusted IP in rate-limiting (#241)
Previously, our rate-limiting code trusted the entire `X-Forwarded-For`
header, allowing a malicious client to spoof that header and evade
rate-limiting. This commit introduces a new module and setting
allowing us to make a more conservative choice of IPs.

- Create new `openedx.core.djangoapps.util.ip` module for producing
  the IP "external chain" for requests based on the XFF header and the
  REMOTE_ADDR.
- Include a function that gives the safest choice of IPs.
- Add new setting `CLOSEST_CLIENT_IP_FROM_HEADERS` for configuring how
  the external chain is derived (i.e. setting the trust
  boundary). Currently has a default, but we may want to make it
  mandatory in the future.
- Change `django-ratelimit` code to use the proximate IP in the external
  chain -- the one just outside the trust boundary.

Also:

- Change `XForwardedForMiddleware` to use more conservative choice for
  its `REMOTE_ADDR` override
- Other adjustments to `XForwardedForMiddleware` as needed in order to
  initialize new module and support code that needs the real
  `REMOTE_ADDR` value
- Metrics for observability into the change (and XFF composition)
- Feature switch to restore legacy mode if needed

This also gives us a path forward to removing use of the django-ipware
package, which is no longer maintained and has a handful of bugs that make it
difficult to use safely.

Internal ticket: ARCHBOM-2056
2022-04-20 13:46:58 +00:00
Justin Hynes
1435b619b4 Merge pull request #30271 from openedx/jhynes/microba-1507_process-scheduled-tasks
feat: add support for processing scheduled instructor tasks
2022-04-20 09:14:31 -04:00
adeel.tajamul
8c6f307de8 fix: hyperlinks opening in iframe in discussions mfe 2022-04-20 15:21:30 +05:00
Justin Hynes
bec97653b5 feat: add support for processing scheduled instructor tasks
[MICROBA-1507]

* adds new functionality for retrieving and submitting scheduled tasks to Celery
* add an InstructorTaskSchedule factory for unit testing
* adds unit tests for processing scheduled tasks
2022-04-19 15:29:27 -04:00
Michael Terry
790391ad1f fix: add more can-enroll checks to course home outline API
Specifically:
- enrollment has ended or not begun (whoops!)
- is full (at/over max enrollment)

Before this change in these cases, we would still show an enroll
button which wasn't functional, causing user confusion.

AA-1245
2022-04-19 15:08:37 -04:00
Michael Terry
bc10f653dc fix: remove a couple unused learning MFE serializer fields
Now that the frontend assumes there are no legacy courseware pages,
we can stop sending them info about it.
2022-04-19 15:06:37 -04:00
Michael Terry
afd19f0513 feat!: drop legacy courseware tab access for learners
The only way to access the legacy courseware is now through the
Studio preview feature (and at some point, when the MFE supports a
preview mode, we can then remove even that).

This drops the courseware.use_legacy_frontend waffle.
2022-04-19 12:27:10 -04:00
Ali Akbar
9b1db048f8 Merge pull request #30223 from openedx/aakbar/PROD-2738
feat: use new flow with with financial assistance form
2022-04-19 20:19:37 +05:00
AliAkbar
33bb739e50 feat: use new flow with with financial assistance form 2022-04-19 19:57:18 +05:00
Justin Hynes
e3888187c2 Merge pull request #30277 from openedx/jhynes/update-microba-1666-adr
docs: update ADR for reasons why we won't be sanitizing bulk email contents
2022-04-19 09:13:09 -04:00
Kelly Buchanan
6f5efb6203 docs: Add ADR for not sanitizing html in bulk email.
[MICROBA-1666]
- Update ADR to explain why we will not be sanitizing the contents of bulk email messages.
2022-04-19 08:38:06 -04:00
Justin Hynes
d1aa1734dd docs: add ADRs describing approach for the scheduled instructor tasks implementation
[MICROBA-1696]

* Introduce an ADR with details on the proposed approach to scheduled instructor tasks to support scheduled bulk email
* Introduce an ADR with details on how scheduled instructor tasks will be processed
2022-04-19 08:23:43 -04:00
Hassan Javeed
b2acb84855 feat: Added management command dump_course_ids_with_filter. 2022-04-19 01:29:57 -05:00
Jansen Kantor
4d18a6c1a0 feat: block team oras from ESG (#30269)
* feat: add teams enabled flag to ORA item view context

* feat: all team ORAs should be marked esg disabled
2022-04-18 15:41:02 -04:00
Michael Terry
9714959816 Merge pull request #30257 from openedx/mikix/use-course-key
fix: pass a CourseKey not a string to course_home_url
2022-04-15 09:16:17 -04:00
Michael Terry
4732c46985 fix: pass a CourseKey not a string to course_home_url 2022-04-15 08:59:56 -04:00
Mehak Nasir
fefbbcbdba style: button font reduced to reduce button size (#30256) 2022-04-15 16:57:14 +05:00
Michael Terry
ce5f1bb343 feat!: drop legacy course home view and related code
This was the "outline tab" view of the course. Preceded by the
course info view, succeeded by the MFE outline tab.

In addition to the course home view itself, this drops related
features:
- Legacy version of Course Goals (MFE has a newer implementation)
- Course home in-course search (MFE has no search)

The old course info view and course about views survive for now.

This also drops a few now-unused feature toggles:
- course_experience.latest_update
- course_experience.show_upgrade_msg_on_course_home
- course_experience.upgrade_deadline_message
- course_home.course_home_use_legacy_frontend

With this change, just the progress and courseware tabs are still
supported in legacy form, if you opt-in with waffle flags. The
outline and dates tabs are offered only by the MFE.

AA-798

(This is identical to previous commit be5c1a6, just reintroduced
now that the e2e tests have been fixed)
2022-04-14 15:18:31 -04:00
Michael Terry
a515c2e992 Revert "Drop legacy outline tab in favor of the MFE's version" 2022-04-14 14:16:29 -04:00
Michael Terry
6af3cb14d9 Merge pull request #30064 from openedx/mikix/drop-outline-view
Drop legacy outline tab in favor of the MFE's version
2022-04-14 11:59:44 -04:00
María Fernanda Magallanes
a099d9a10b refactor: consider celery imports from common settings plus env tokens (#29739) 2022-04-14 09:16:14 -04:00
Michael Terry
be5c1a64d5 feat!: drop legacy course home view and related code
This was the "outline tab" view of the course. Preceded by the
course info view, succeeded by the MFE outline tab.

In addition to the course home view itself, this drops related
features:
- Legacy version of Course Goals (MFE has a newer implementation)
- Course home in-course search (MFE has no search)

The old course info view and course about views survive for now.

This also drops a few now-unused feature toggles:
- course_experience.latest_update
- course_experience.show_upgrade_msg_on_course_home
- course_experience.upgrade_deadline_message
- course_home.course_home_use_legacy_frontend

With this change, just the progress and courseware tabs are still
supported in legacy form, if you opt-in with waffle flags. The
outline and dates tabs are offered only by the MFE.

AA-798
2022-04-14 09:12:01 -04:00