Commit Graph

61147 Commits

Author SHA1 Message Date
jansenk
3c8bc4e5f1 chore: pylint toggle annotation 2022-04-04 17:55:27 -04:00
jansenk
9e716a94c3 style: quality 2022-04-04 16:58:06 -04:00
jansenk
03254ca1bb feat: include ESG enabled flag in init response 2022-04-04 16:23:27 -04:00
Muhammad Soban Javed
db201db696 Merge pull request #29979 from iamsobanjaved/iamsobanjaved/unit-tests-for-forks
test: run unit-tests on forks
2022-03-31 17:43:39 +05:00
Muhammad Soban Javed
aa742f09fb Merge branch 'master' into iamsobanjaved/unit-tests-for-forks 2022-03-31 15:53:45 +05:00
John Nagro
6352fed661 feat: release edx-enterprise 3.41.10 (#30155)
- feat: management command to backfill missing fks
- https://github.com/openedx/edx-enterprise/pull/1516

ENT-5605
2022-03-30 17:07:25 -04:00
Ghassan Maslamani
e1d9746d61 fix: make bulk_email send email task handles a retryable exception (#29080)
* fix: make bulk_email send email task handles a retryable exception
According to bulk_email and SMTP doc, when an error code is between
(400-499) it can be retried after sometime, this commit adds a new
type of exception called SMTPSenderRefused, so it can be retried
**if** it's code fails under above constraint.

* test: add test to handle SMTPSenderResfused

Co-authored-by: Justin Hynes <jhynes@edx.org>
2022-03-30 14:45:08 -04:00
John Nagro
f2a44ada41 fix: release edx-enterprise 3.41.9 (#30153)
- https://github.com/openedx/edx-enterprise/pull/1513
- https://github.com/openedx/edx-enterprise/pull/1515
2022-03-30 11:56:42 -04:00
Mubbshar Anwar
c88db037fa chore: save for later admin (#30152)
register save_for_later app models in django admin.
VAN-887
2022-03-30 18:28:21 +05:00
Justin Hynes
fdeffb824d Merge pull request #30126 from openedx/jhynes/microba-1508_add-scheduledinstructortask-model
feat: add models for scheduled instructor tasks
2022-03-30 07:36:00 -04:00
Ahtisham Shahid
18e3516b36 feat: Added permissions for course staff to discussion MFE (#30143) 2022-03-30 15:34:09 +05:00
Sameen Fatima
f52c24d445 feat: Add authoring organization logo in API response for all learner enrolled programs (#30139) 2022-03-30 14:09:54 +05:00
Saad Yousaf
fd60d8c8cf fix: revert discussion xblock from MFE view to legacy view. (#30141)
Co-authored-by: SaadYousaf <saadyousaf@A006-00314.local>
2022-03-30 11:31:45 +05:00
John Nagro
4a7719e73f fix: release edx-enterprise 3.41.7 (#30145)
- https://github.com/openedx/edx-enterprise/pull/1508

ENT-5595
ENT-5603
ENT-5605
2022-03-29 13:38:43 -04:00
Binod Pant
21d57ed0ab feat: post handler to sync provider_data (#30107)
* feat: post handler to sync provider_data

this allows us to read provider_data metadata from a remote metadata url. reuses code from the task that currently processes all proiderconfigs in a batch

ENT-5482

* feat: lint fixes

* test: add test for sync_provider_data

* test: add case for update

* fix: lint fix

* fix: lint fix

* feat: use exc_info to report error better

* feat: update log message
2022-03-29 13:08:56 -04:00
Kyle McCormick
42fcfc8217 docs: update CourseGraph README, notably w.r.t. new Tutor plugin
Update the README of the CMS's CourseGraph support app:
* Point to the newly-developed CourseGraph plugin for Tutor,
  and remove some prose that's now redundant with the Tutor
  plugin's README.
* Add a link to the now-public CourseGraph Queries wiki page.
* Capitalize the G in CourseGraph.
* Fix a couple misc. formatting things.
2022-03-29 11:21:20 -04:00
Kyle McCormick
d16fe9d427 feat: add admin action for dump to coursegraph
This introduces two admin actions:
* Dump to CourseGraph (respect cache), and
* Dump to CourseGraph (override cache)

which allow admins to select a collection of courses from Django
admin and dump them to the Neo4j instance specified by
settings.COURSEGRAPH_CONNECTION, with or without respecting
the cache (that is: whether the course has already been dumped
since its last publishing).
2022-03-29 11:21:20 -04:00
Kyle McCormick
d75a32c009 refactor: read course publish date from overview, not block structure
The `get_course_last_published` function is used by CourseGraph to
determine whether or not a course should be dumped to Neo4j.
If the course hasn't been published since it was last dumped to
Neo4j, then it can be skipped (unless the override_cache option
is enabled).

The function was previously built using the BlockStructure
data model. While this worked fine in Production instances that
enable `block_structure.storage_backing_for_cache`, this
implementation did NOT work in development environments,
which do not use the BlockStrcture model.

Instead, we switch to using CourseOverview.modified to
approximate when a course was last published. This is method
has fewer moving parts and is universally available across
instances.
2022-03-29 11:21:20 -04:00
Kyle McCormick
696984a2bd feat: dump to cousegraph on course publish signal
Previously, CourseGraph needed to be kept up-to-date by
running `./manage.py dump_to_neo4j ...` manually or on a cron timer.

This introduces a CMS new setting: COURSEGRAPH_DUMP_COURSE_ON_PUBLISH.
When enabled, the CMS course_published signal handler will
asynchronously dump each individual course to CourseGraph when it
is published.

This follows a pattern established by other subsystems like
learning_sequences and special exam registration, both of which
fire off asynchronous post-processing tasks from the course-
publish handler.
2022-03-29 11:21:20 -04:00
Kyle McCormick
1bf8af5f72 feat: specify dump_to_neo4j defaults in COURSEGRAPH_CONNECTION
Introduce a new CMS settings COURSEGRAPH_CONNECTION,
which allows operators to specify default connection paramters
for a Neo4j instance.

This has three purposes:
* The `./manage.py cms dump_to_neo4j` management command will be
  much easier for developers and operators to type out because connection
  arguments can now be omitted. Note that connection arguments, if
  supplied, will override the arguments specified in CMS settings.
* The automatic push-to-coursegraph-on-publish-signal introduced in
  subsequent commits can use these connection settings.
* The CourseGraph Django admin actions introduced in subsequent
  commits can use these connection settings.
2022-03-29 11:21:20 -04:00
Kyle McCormick
c7693cfa20 docs: enrich dump_to_neo4j help text & docstrings
Move most docs out of docstring and into programatically-
displayable argument help text.

Also, the 'Example Usage' was out of date. This commit updates it to:
 * use `./manage.py cms ...' instead of `./manage.py lms ...', and
 * use `--port` instead of `--https_port`.
2022-03-29 11:21:20 -04:00
Kyle McCormick
8039e40f47 refactor: move coursegraph to cms
This code was originally located at:
  ./openedx/core/djangoapps/coursegraph

However, code makes more sense within the ./cms tree, because:
* it is responsible for publishing course content to an
  external system, with is within the responsibilities of CMS, and
* is uses modulestore, which is discouraged for use in LMS
  (see 0011-limit-modulestore-use-in-lms.rst).

So, we move the code to:
  ./cms/djangoapps/coursegraph
and uninstall coursegraph from LMS.

We do not expect this refactor to have any breaking downstream effects.
2022-03-29 11:21:20 -04:00
Kira Miller
f1d930fb35 chore: version bump (#30136) 2022-03-28 18:20:18 -04:00
Jansen Kantor
3c9d44a87e Merge pull request #30134 from openedx/jkantor/ora-406
chore: bump ORA to 4.0.6
2022-03-28 17:21:07 -04:00
Tim McCormack
7c7d7d8b6f feat: Allow REST_FRAMEWORK to be configured by (shallow) merge (#30112)
ARCHBOM-2073
2022-03-28 20:38:34 +00:00
jansenk
103ff55dd1 chore: bump ORA to 4.0.6 2022-03-28 15:54:00 -04:00
Ghassan Maslamani
e27a8ad125 fix: add as style for the link tag that preloads (#30094)
Adding a as `as="style"` for link tag which preloads a CSS resource
That is requried to set otherwise chrome/browser would issue a warning about it. 
Ref: https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types/preload
2022-03-28 14:57:23 -04:00
Julia Eskew
edd7e0a77d feat: Combine the two existing log messages for submitting courses to Neo4j for
viewing in coursegraph for two reasons. First, the existing log message was misleading
as it implied that a course was being submitted to Neo4j even when it was being
skipped due to not changing since last being sent to Neo4j. Second, the new log
message was not distinctive enough for separate searching in Splunk - it will
now be distinctive enough for that search.
2022-03-28 13:27:40 -04:00
Syed Sajjad Hussain Shah
c5319d6c2b fix: Add course key or program UUID (#30125)
* fix: Add course key or program UUID

Added course key or program uuid for Save For Later
segment event

VAN-905

* fix: fixed failing test

* fix: fixed PEP 8 failure
2022-03-28 12:38:22 +05:00
Justin Hynes
31d3fcc01a feat: add models for scheduled instructor tasks
[MICROBA-1508]
- Adds the InstructorTaskSchedule model
- Adds the HistoricalInstructorTaskSchedule model
- Adds utility function used to create a InstructorTaskSchedule instance
- Adds a public `create_course_email` Python API function to the bulk_email app that can be imported and used in external apps
- Adds a new `test_api_helper.py` test file (with tests for the new `schedule_task` function) to the instructor_task app
- Adds a new `test_api.py` test file (with tests for the new `create_course_email` function to the bulk_email app
2022-03-25 14:34:37 -04:00
Feanil Patel
bea9dc6803 Merge pull request #30119 from openedx/feanil/simplify_docs_build
build: Simplify how we build docs.
2022-03-25 11:18:13 -04:00
Feanil Patel
e35c7e278b build: Simplify how we build docs.
Instead of trying to use the devstack settings file for building docs,
use the common settings file as the base for all settings.  The
devstack settings file builds on top of the production settings file
which are both oriented around reading settings from a yaml file and
getting them loaded in sanely into the dev and production environment.

For documentation, start with the common settings files which should be
sufficient to get a default version of the system up and running.

Note: We still leave the loop that enables all the feature flags as a way
of finding conditionally included API endpoints.
2022-03-25 10:08:21 -04:00
Feanil Patel
b2488d8f6f Merge pull request #30117 from openedx/feanil/update_production_default_values
feat: Update how some settings are read in production.py settings files.
2022-03-25 10:07:10 -04:00
Awais Qureshi
bc45f1ee48 fix: Removed usage of djangoratelimitbackend. (#30116)
* fix: Removed usage of djangoratelimitbackend.
2022-03-25 15:27:39 +05:00
Shafqat Farhan
935c01c9ee Merge pull request #30122 from openedx/shafqat/VAN-669
feat: VAN-669 - Disallow bad passwords on Registration
2022-03-25 15:18:36 +05:00
Shafqat Farhan
df22dfbe0d feat: VAN-669 - Disallow bad passwords on Registration 2022-03-25 15:00:07 +05:00
Awais Jibran
51e0742737 Merge branch 'master' into feanil/update_production_default_values 2022-03-25 13:34:56 +05:00
Matjaz Gregoric
8633249853 Merge pull request #28268 from open-craft/agrendalath/bb-4503_library_content_block_completion
feat: allow marking Library Content Block as complete on view [BB-4503]
2022-03-25 08:27:13 +01:00
Alexander J Sheehan
9ecc5aa4cf Merge pull request #30118 from openedx/asheehan-edx/adding-was-valid-at-to-provider-config
bug: adding was_valid_at to all provider configs
2022-03-24 12:51:51 -04:00
Alexander Sheehan
f4c3471a9b fix: adding was_valid_at to all provider configs 2022-03-24 12:02:14 -04:00
Feanil Patel
7d2a8340c5 feat: Update how some settings are read in production.py settings files.
Most settings in the production.py files fall back to their values in
common.py if they aren't set in the yaml config files but some
historically didn't.  Update them so that they are more in-line with the
rest of the settings in this file.
2022-03-24 09:59:53 -04:00
Michael Terry
d9e9b677f0 Merge pull request #30047 from openedx/ddumesnil/dates-tab-static
feat: Updates the Dates Tab to be a static tab
2022-03-24 09:53:25 -04:00
Awais Qureshi
856731fd48 docs: Removing bokchoy and a11y reference from documentation. (#30105)
* docs: Removing bokchoy and a11y reference from documentation.
2022-03-24 18:26:43 +05:00
Usama Sadiq
1cebd3ed7b Remove django-ratelimit-backend (#30054)
* fix: remove the usage of django-ratelimit-backend

Co-authored-by: Awais Qureshi <awais.qureshi@arbisoft.com>
2022-03-24 17:21:56 +05:00
Keith Grootboom
2280420785 fix: problem_grade_report task parent dir being discarded.
When running the problem_grade_report task the upload_parent_dir
argument should be used to place the task output in the
specified directory.
2022-03-24 10:08:06 +01:00
Binod Pant
4ed395a653 fix: make completed_timestamp optional (#30111)
in learner audit record model

ENT-5622
2022-03-23 15:50:47 -04:00
Thomas Tracy
0211ee6dcd fix: set bulk email link to open in new tab (#30110) 2022-03-23 15:30:00 -04:00
Agrendalath
d05e5c639f feat: allow marking Library Content Block as complete on view
edx/edx-platform#24365 has changed the completion mode of these blocks.
Before Koa, it was sufficient to view the block to get a completion checkmark.
Since Koa, all children of the block must be completed.

This adds a toggle to change the completion behavior back to the previous one
so that the user experience can be consistent if needed.
2022-03-22 19:09:50 +01:00
Thomas Tracy
700829bd4b feat: [Microba-1758] link new bulk email tool (#30099)
Creates a link to the new communication mfe's bulk email tool in the
instructor dashboard version. Staff can now use either experience. In
the future, we plan on turning off the old experience, like analytics.
2022-03-22 13:47:08 -04:00
Tim McCormack
813b403575 fix: Use more accurate attr name for IP chain size (#30106)
XFF is just part of the chain; record the length of the whole chain instead
(which is always one larger).

Also include junk in one of the test values for realism.
2022-03-22 15:33:35 +00:00