Commit Graph

335 Commits

Author SHA1 Message Date
Justin Hynes
79c53f1002 feat: MICROBA-1510; add support for updating course email content and schedules
[MICROBA-1510]
- Add support for updating an instructor task schedule date via REST API
- Add support for updating the contents of a scheduled course email via REST API
2022-05-19 13:42:58 -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
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
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
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
Zia Fazal
6ff489c815 Merge pull request #29900 from openedx/ziafazal/use_edx_ace_bulk_email
feat: Ability to configure edx-ace with course emails
2022-03-15 11:26:26 +05:00
Justin Hynes
884e8af0f2 docs: ADR for bulk email content html sanitization
[MICROBA-1666]

* Add ADR explaining introduction of bulk email HTML content sanitization and the new `BULK_COURSE_EMAIL_ALLOWED_HTML_TAGS` setting.
2022-02-28 16:01:25 -05:00
zia.fazal@arbisoft.com
b7ad137c88 feat: Ability to configure edx-ace with course emails
fix: fix typo

fix: Fixed broken unit tests and added new unit tests

fix: Fixed quality violations

fix: Fixed quality violations related to translations
2022-02-21 17:17:44 +05:00
Michael Terry
cb1bb7fa64 test: switch default test store to the split store
It's long past time that the default test modulestore was Split,
instead of Old Mongo. This commit switches the default store and
fixes some tests that now fail:
- Tests that didn't expect MFE to be enabled (because we don't
  enable MFE for Old Mongo) - opt out of MFE for those
- Tests that hardcoded old key string formats
- Lots of other random little differences

In many places, I didn't spend much time trying to figure out how to
properly fix the test, and instead just set the modulestore to Old
Mongo.

For those tests that I didn't spend time investigating, I've set
the modulestore to TEST_DATA_MONGO_AMNESTY_MODULESTORE - search for
that string to find further work.
2022-02-04 14:32:50 -05:00
Jawayria
3207710aa3 chore: Applied lint-amnesty on lms/djangoapps/{bulk_email, bulk_enroll} 2021-12-17 16:19:09 +05:00
Justin Hynes
5fa71f6832 fix: (microba-1574) stop logging PII in bulk course email log messages
[MICROBA-1574]
- update bulk course email task log messages to use user id vs. email address
2021-12-07 14:59:47 -05:00
Kevin Valencia
fa258de357 Update from_addr for default from bulk emails (#29001)
* fix: update from_addr for default from bulk emails

Co-authored-by: Kevin Valencia <kevin@bitmaker.la>
2021-12-06 10:28:55 -05:00
Thomas Tracy
038d68d53c feat: [MICROBA-1531] bulk email deny list logic (#29465)
* feat: [MICROBA-1531] bulk_email deny list logic
2021-12-02 13:11:55 -05:00
Olivia Ruiz-Knott
bb10334ebf Merge pull request #29405 from edx/ork/MICROBA_1573-allow_bulk_email_template_delete
feat: allow bulk email templates to be deleted
2021-11-23 13:41:18 -05:00
oliviaruizknott
eb1797d210 feat: allow bulk email templates to be deleted
There are some old bulk email templates in the database that we don’t
need anymore. We need to make this change in order to delete them. After
removing the templates we want to remove, we’ll leave in the ability to
delete.

[MICROBA-1573]
2021-11-23 10:59:46 -05:00
Thomas Tracy
d1bde43e02 feat: [MICROBA-1531]Bulk email migration deny list (#29372) 2021-11-22 17:01:48 -05:00
Justin Hynes
e50085401e feat: filter bulk course email recipients based on last_login date
[MICROBA-1569]
- filter bulk course email recipients based on the last_login date of a learner's user account
- introduces a new setting named `BULK_COURSE_EMAIL_LAST_LOGIN_ELIGIBILITY_PERIOD` that sets the login threshold to be included (in months) to a bulk course email message(if set)
2021-11-08 09:14:50 -05:00
M. Zulqarnain
1003f262ad feat: Django codemods on LMS (1) (#28851) 2021-11-02 17:00:46 +05:00
Usama Sadiq
9ee8df0980 fix: Remove pylint constraint and fix warnings (#28646) 2021-10-20 23:00:13 +05:00
sarina
a6616fd292 fix: Remove or contextualize refs to edX.org in strings 2021-09-15 12:21:10 -04:00
Awais Qureshi
fe8a0c6f00 Django3 has removed python_2_unicode_compatible.
Execute the codemodes on this file and removed all usage.
2021-07-15 12:09:50 +05:00
Awais Qureshi
0433af537f Django3 has removed python_2_unicode_compatible.
Execute the codemodes on this file and removed all usage.
2021-07-15 00:26:09 +05:00
Colin-Fredericks
925f662f47 Removing references to Google Plus 2021-06-21 12:10:01 -04:00
Usama Sadiq
a1f80a00c7 refactor: pyupgrade second iteration (#27443) 2021-05-03 17:14:25 +05:00
stvn
22fb1ec124 refactor: Move InstructorFactory helper to common/ 2021-04-14 07:26:39 -07:00
stvn
2fa36fb0cf refactor: Move StaffFactory helper to common/ 2021-04-14 07:26:39 -07:00
stvn
43698fff0a refactor: Move get_course_by_id helper from LMS to core
This helper is used by the LMS, CMS, _and_ `openedx.core`,
so let's move it to `openedx.core` to reduce import complexity.

The following files no longer import from LMS:
- cms/djangoapps/contentstore/management/commands/edit_course_tabs.py
- lms/djangoapps/ccx/migrations/0006_set_display_name_as_override.py
- openedx/core/djangoapps/ccxcon/api.py
- openedx/core/djangoapps/verified_track_content/models.py
- openedx/features/course_experience/plugins.py

Note: The LTI XBlock has a dependency on this import path (!?);
a fix can be found here [1].

- [1] https://github.com/edx/xblock-lti-consumer/pull/154
2021-04-13 23:25:48 -07:00
Robert Raposa
96be45f1bd Merge pull request #27222 from edx/robrap/ARCHBOM-1721-toggle-doc-cleanup
ARCHBOM-1721: docs: update toggle docs
2021-04-05 10:47:55 -04:00
Asad Iqbal
82c90b40b0 Added setting to manage from_email address (#24951)
Co-authored-by: asadiqbal08 <asad.iqbal@arbisoft.com>
2021-04-02 12:08:51 -04:00
Robert Raposa
8ef8b35a54 docs: update toggle docs
A variety of updates were made to improve the toggle documentation:
* Added comments to help ensure that the waffle(), waffle_switches(),
  waffle_flags() anti-pattern won't be contagious (copied).
* Some minor toggle_description updates.
* Removed empty toggle_target_removal_date annotations for
  non-temporary toggles.
* Removed empty optional toggle_warnings annotations.
* Removed empty optional toggle_tickets annotations.
* Removed deprecated toggle_category, toggle_status,
  and toggle_expiration_date annotations.
* Fixed some indents, use cases, and implementations.

ARCHBOM-1721
2021-04-01 21:58:29 -04:00
Michael Terry
570a869bd3 feat: update to edx-ace 1.0.0
The new version switches how you specify recipients, to use
lms_user_id instead of usernames.

AA-489
2021-03-12 10:25:54 -05:00
Usama Sadiq
7f6cabbf98 Ran pyupgrade on lms/djangoapps (#26519)
* refactor: ran pyupgrade on lms/djangoapps/bulk_enroll
Co-authored-by: M. Zulqarnain <muhammad.zulqarnain@arbisoft.com>
2021-03-01 17:13:18 +05:00
Aarif
f35ff6a1eb replaced unittest assertions pytest assertions (#26540) 2021-02-18 19:13:47 +05:00
M. Zulqarnain
6f2d54d53b BOM-2268 : Add Pylint amnesty for Bulk Email (#26208)
* Add Amnest for Bulk Email
2021-02-03 18:15:37 +05:00
Awais Jibran
eeed906017 Merge pull request #25994 from edx/aj/bulk-email-provide-logo-from-bkend
Provide logo URL from the backend
2021-01-26 15:02:56 +05:00
Régis Behmo
f140cc0f15 Enable annotation linting with edx-lint
We upgrade edx-lint to use the latest feature toggle and annotation custom
linter. Note that we do not yet make use of code annotation linting, typically
run with `code_annotations --lint ...`.

Note that we also fix new linting errors detected by the new checkers.
2021-01-25 10:31:24 +01:00
Muhammad Soban Javed
f62b1c417b replaced task decorator with shared_task decorator (#25925) 2021-01-07 19:46:34 +05:00
Awais Jibran
159031adc9 quality fixes 2021-01-06 20:23:16 +05:00
Awais Jibran
7e20cf2215 Provide logo URL from the backend 2021-01-06 17:30:13 +05:00
Kyle McCormick
54d5f7f394 Course Blocks API: Fix handling of incorrectly-cased course keys (#25911)
Commit 7f59688 attempted to solve this using
`CourseOverview.course_exists`, but that check is case-
insensitive. This commit instead does a small refactor
to `lms.djangoapps.courseware.get_course` so that we can
handle a failed course lookup without broadly catching
a `ValueError`.
2020-12-18 11:26:29 -05:00
Muhammad Soban Javed
bd601cf3a6 Update celery routing for celery 4+ (#25567)
* Update celery routing

- Used routing function instead of class
- Move task queues dictionary to Django settings
- Removed routing_key parameter
- Refactored routing for singleton celery instantiation

Co-authored-by: Awais Qureshi <awais.qureshi@arbisoft.com>
2020-12-16 13:40:47 +05:00
Robert Raposa
8eef18710d set code_owner for celery tasks
ARCHBOM-1260

Co-authored-by: Tim McCormack <tmccormack@edx.org>
2020-11-17 15:33:33 -05:00
Awais Qureshi
7201edb11d Revert "Update routing config" (#25536)" (#25549)" (#25553)" (#25561)
This reverts commit db4c3b1210.
2020-11-11 00:13:47 +05:00
Awais Qureshi
db4c3b1210 Revert "Revert ""Update routing config" (#25536)" (#25549)" (#25553)
This reverts commit c1fe3c3a93.
2020-11-10 23:23:09 +05:00
Kyle McCormick
151bd13666 Use full names for common.djangoapps imports; warn when using old style (#25477)
* Generate common/djangoapps import shims for LMS
* Generate common/djangoapps import shims for Studio
* Stop appending project root to sys.path
* Stop appending common/djangoapps to sys.path
* Import from common.djangoapps.course_action_state instead of course_action_state
* Import from common.djangoapps.course_modes instead of course_modes
* Import from common.djangoapps.database_fixups instead of database_fixups
* Import from common.djangoapps.edxmako instead of edxmako
* Import from common.djangoapps.entitlements instead of entitlements
* Import from common.djangoapps.pipline_mako instead of pipeline_mako
* Import from common.djangoapps.static_replace instead of static_replace
* Import from common.djangoapps.student instead of student
* Import from common.djangoapps.terrain instead of terrain
* Import from common.djangoapps.third_party_auth instead of third_party_auth
* Import from common.djangoapps.track instead of track
* Import from common.djangoapps.util instead of util
* Import from common.djangoapps.xblock_django instead of xblock_django
* Add empty common/djangoapps/__init__.py to fix pytest collection
* Fix pylint formatting violations
* Exclude import_shims/ directory tree from linting
2020-11-10 07:02:01 -05:00
Muhammad Soban Javed
c1fe3c3a93 Revert ""Update routing config" (#25536)" (#25549)
This reverts commit 39a22734c1.
2020-11-09 23:43:47 +05:00
Awais Qureshi
39a22734c1 "Update routing config" (#25536)
* Revert "Revert "Update routing config"

* Removed settings from lms/celery.py and cms/celery.py

* Moved settings import from top-level to function's scopes

Co-authored-by: Soban Javed <iamsobanjaved@gmail.com>
2020-11-09 19:06:55 +05:00
Manjinder Singh
c74b623948 Fixing code-annotations (#25539)
* Fixing code-annotations
2020-11-06 12:52:08 -05:00
Muhammad Soban Javed
5a2ea1f954 Revert "Update routing config" 2020-11-06 02:05:48 +05:00
Muhammad Soban Javed
bfa8f71f33 Update routing config #25419 2020-11-06 01:00:29 +05:00