Commit Graph

369 Commits

Author SHA1 Message Date
Jawayria
8fc7333982 Refactor: Remove unused imports
Removed unused imports from openedx/core/djangoapps/{dark_lang, django_comment_common, embargo, lang_pref, oauth_dispatch, plugins, programs, schedules}
2021-04-06 17:11:59 +05:00
Usama Sadiq
ebcf204d60 refactor: ran pyupgrade on openedx/core/djangoapps
ran pyupgrade on openedx/core/djangoapps/{schedules, self_paced, service_status}
2021-04-06 12:50:11 +05:00
Usama Sadiq
e9f9fcb17b refactor: Ran pyupgrade on openedx/core/djangoapps/user_api
Co-authored-by: Muhammad Soban Javed <58461728+iamsobanjaved@users.noreply.github.com>
2021-04-01 19:34:01 +05:00
Usama Sadiq
0223feb17b refactor: ran pyupgrade on openedx/core/djangoapps (#26955)
ran pyupgrade on openedx/core/djangoapps/{schedules, self_paced, service_status}
2021-04-01 15:00:49 +05:00
Shimul Chowdhury
e942f12adc Add missing context platform_name and contact_mailing_address. And pass
site configuration to email context.
2021-03-19 10:05:49 +06: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
Kyle McCormick
9aefd6f986 style: django-not-configured is not a sensible lint-amnesty value (#26862)
django-not-configured is an error raised by pylint (with
the pylint-django plugin) when it's not correctly configured.

We should not be applying lint amnesty for such a violation.
2021-03-05 08:11:58 -05:00
Matthew Piatetsky
013f7bfe34 Merge pull request #26744 from edx/AA-461
[AA-461] Export highlights to s3 for use by braze
2021-03-05 06:46:57 -05:00
Matthew Piatetsky
8d1d7b2222 feat: Export highlights to s3 for use by braze
Things other than highlights may be exported in the future. The storage class is flexible so backends other than s3 may be used in the future.
AA-461
2021-03-04 15:57:30 -05:00
Michael Terry
9570c1c72b feat: add 'external course updates' experiment flag
When this flag is enabled, users will be 50/50 bucketed into an
experiment where users get course highlights and nudges from an
external service (like sailthru or braze) rather than from
edx-platform via ACE.

AA-661
2021-03-02 14:51:45 -05:00
Michael Terry
74887aa216 feat: turn on schedule creation by default
This commit removes several waffle toggles that have been enabled
on edx.org for years. It's time to remove the rollout gating for
these features and enable them by default.

This doesn't directly change any behavior. But it does create new
database objects by default now and allows for enabling other
schedule based features more easily.

Specifically, the following toggles were affected.

schedules.create_schedules_for_course
- Waffle flag removed as always-enabled
- We now always create a schedule when an enrollment is created

schedules.send_updates_for_course
- Waffle flag removed as always-enabled
- Course update emails are sent as long as the ScheduleConfig
  allows it.
- This is not a change in default behavior, because ScheduleConfig
  is off by default.

dynamic_pacing.studio_course_update
- Waffle switch removed as always-enabled
- Course teams can now always edit course updates directly in Studio

ScheduleConfig.create_schedules
ScheduleConfig.hold_back_ratio
- Model fields for rolling out the schedules feature
- Schedules are now always created
- This commit only removes references to these fields, they still
  exist in the database. A future commit will remove them entirely

This commit also adds a new has_highlights field to CourseOverview.
This is used to cache whether a course has highlights, used to
decide which course update email behavior they get. Previously every
enrollment had to dig into the modulestore to determine that.
2021-02-23 12:34:02 -05:00
Aarif
98f5a886ba replaced unittest assertions pytest assertions (#26569) 2021-02-22 12:24:59 +05:00
Braden MacDonald
50dd1e8eca Merge pull request #26416 from BbrSofiane/bbrsofiane/tsd-schedules_enable_debugging
[TSD] Annotate schedules debugging toggle
2021-02-12 09:15:54 -08:00
Sofiane Bebert
a006bdde17 add annotation for DEBUG_MESSAGE_WAFFLE_FLAG 2021-02-12 12:22:19 +00:00
Usama Sadiq
7eb2c40106 Merge branch 'master' into usamasadiq/bom-2327-pylint-amnesty 2021-02-08 18:24:53 +05:00
usamasadiq
e6d43ac69c Applied pylint amnesty 2021-02-08 12:45:57 +05:00
Soban Javed
5199bf7acb Replace task decorator with shared_task in openedx 2021-02-04 18:35:38 +05:00
Manjinder Singh
2723e0e2bd [ARCHBOM-1645] Modifying anonymous_id_for_user() to handly SECRET_KEY rotation (#26162)
These changes were initially made to make it easier to do SECRET_KEY rotations.  Along the way, we found it made sense to refractor the code as well.

Changes made:
- changed get_to_create to create because now the code should only get to this block when a write is necessary
- added a lookup for anonymous_user_id. This is to return an existing anonymous_user_id rather than calculating. This will mitigate the results of SECRET_KEY rotation.
- Added monitoring to help us make better decisions: should we not sue SECRET_KEY, performance considerations...
- put old function behind toggle in case something goes wrong in production with new code
- refractoring function structure for better understanding
2021-01-27 07:23:19 -05:00
Matthew Piatetsky
101c9b6633 Remove uses of the active field on the schedule model in the code.
Removing the active field from the model itself and the database is broken out into a separate ticket (AA-574)
AA-488
2021-01-05 18:25:44 -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
Dillon Dumesnil
99c6753eed Merge pull request #25761 from edx/ddumesnil/aa-454
AA-454 and AA-470: Update language and bug fix for highlights
2020-12-04 08:40:48 -08:00
Dillon Dumesnil
9e2eab506f AA-454 and AA-470: Update language and bug fix for highlights
Since Course Highlights aren't necessarily weekly (self-paced courses),
update the language to be more generic. And then includes a bug fix to
not send highlights to learners after they have unenrolled from a course.
2020-12-04 15:26:47 +00:00
Dillon Dumesnil
84930bd5e6 Merge pull request #25721 from edx/ddumesnil/aa-454
AA-454: Reenable CourseUpdateResolver for Instructor-paced Courses
2020-12-03 10:17:12 -08:00
Dillon Dumesnil
ef5832bc74 AA-454: Reenable CourseUpdateResolver for Instructor-paced Courses
When CourseNextSectionUpdate was created, it incorporated Personalized
Learner Schedules logic which didn't take into account release dates of
content and was only intended for self-paced courses that always have
all content released. This caused a bug where instructor-paced courses
could receive an update about content that had not been released yet.

This PR turns the CourseUpdateResolver back on for instructor-paced
courses so they can go back to receiving weekly highlights.
2020-12-03 17:07:26 +00:00
Régis Behmo
216b99264a Upgrade waffle classes to the new edx-toggles API
Waffle classes no longer have namespaces. All features are moved to the
WaffleFlag/WaffleSwitch classes.

Here we use the edx_toggles.toggles.__future__ API, which is available
in 1.2.0. This means that we don't have to upgrade edx-toggles. We
should remove the __future__ imports as soon as we upgrade to 2.0.0.
2020-12-03 16:40:43 +01:00
Régis Behmo
a16cd71046 Start waffle namespace deprecation
By explicitly importing the legacy namespace classes, we make it clear
that we are using soon-to-be-deprecated classes. We will then be able to
start removing the legacy classes, one module at a time.
2020-12-03 16:06:14 +01:00
Awais Jibran
64e26407f2 Logo Swap & Config for serving assets from cdn.
1. Header Logo
2. Footer Logo
3. Favicon
2020-12-03 17:30:13 +05:00
Robert Raposa
681ddabaa6 add code_owner for schedules tasks
Code owner details for monitoring some schedule
task transactions were missing.

ARCHBOM-1260
2020-11-25 10:19:21 -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
Dillon Dumesnil
8824a137dc Merge pull request #25562 from edx/ddumesnil/no-updates-after-end-aa-422
AA-422: Ensure learners are not receiving updates after course end
2020-11-10 11:41:21 -08:00
Awais Qureshi
7201edb11d Revert "Update routing config" (#25536)" (#25549)" (#25553)" (#25561)
This reverts commit db4c3b1210.
2020-11-11 00:13:47 +05:00
Dillon Dumesnil
11f1347669 AA-422: Ensure learners are not receiving updates after course end 2020-11-10 14:07:31 -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
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
Régis Behmo
4586002956 Import waffle classes from edx_toggles instead of waffle_utils
Those classes were ported to edx_toggles. The imports remain in
waffle_utils.__init__ for backward compatibility.
2020-11-03 19:25:37 +01:00
Régis Behmo
2307dff4c9 Deprecate WaffleFlag.override method
This allows us to get rid of waffle_utils' custom WaffleFlag method.
2020-11-03 19:25:37 +01:00
Soban Javed
3206d9cb9a Update celery routing
- Used routing function istead of class
- Move task queues to Djano settings
- Removed routing_key parameter
2020-11-02 15:03:53 +05:00
Dillon Dumesnil
6b16fcd9b3 AA-393: Update Next Section Logic
Inside content_highlights.py, we had code to calculate due dates
for when there isn't graded content, but we could only reach that
code path if the user had an assignment with a due date at the
target date. Now we will check for all learners who could be in
range of having an update and let the code in content_highlights.py
decide if a highlight should be sent
2020-10-30 15:02:03 -04:00
Dillon Dumesnil
96e83de1e5 AA-393: Add additional logging to CourseNextSectionUpdate
We have some helpful exception messages, but then we swallow them
and only log a generic message. Now we will log both!
2020-10-28 17:12:33 -04:00
Calen Pennington
f30d492164 Work around celery changes to class-based-task registration 2020-10-16 13:02:41 -04:00
Calen Pennington
f98eed972c Register class-based tasks used by the schedules app 2020-10-14 15:30:07 -04:00
Tim McCormack
705ad07524 A few other "metric" names in files touched in previous renaming PRs 2020-09-25 19:11:30 +00:00
Tim McCormack
ba9ee4e151 ARCHBOM-1494: Refer to custom attributes, not metrics, especially with edx-django-utils (#25010)
This uses the new names introduced in edx-django-utils
3.8.0 (edx/edx-django-utils#59), which we're already using, as
well as updating a few other locations where we incorrectly refer
to New Relic custom metrics instead of custom attributes.

Includes a couple of unrelated lint fixes in a file I modified.
2020-09-18 13:33:50 +00:00
Régis Behmo
307457a255 Simplify hack to obtain waffle module names
Instead of going up the stacktrace to find the module names of waffle
flags and switches, we manually pass the module __name__ whenever the
flag is created. This is similar to `logging.getLogger(__name__)`
standard behaviour.

As the waffle classes are used outside of edx-platform, we make the new
module_name argument an optional keyword argument. This will change once
we pull waffle_utils outside of edx-platform.

Note that the module name is normally only required to view the list of
existing waffle flags and switches. The module name should not be
necessary to verify if a flag is enabled. Thus, maybe it would make
sense to create a `add` class methor similar to:

    class WaffleFlag:
        @classmethod
        def add(cls, namespace, flag, module):
            instance = cls(namespace, flag)
            cls._class_instances.add((instance, module))
2020-09-14 09:30:24 +02:00
Nicholas D'Alfonso
e9e85d05c1 AA-282 course emails date sync
- send course emails to users based on whichever date is later,
  sedule start date or course start date.  This addresses the
  scenario when a user enrolls in a self paced course before it
  has actually started.
2020-08-17 16:01:21 -04:00
Manjinder Singh
c76ed6ae45 Extracting plugin app from edx-platform (#24678)
* Moving plugins infrastructure to edx-django-utils
This PR extracts the code that enables plugins in edx-platform and puts it in edx-django-utils. This is done to allow other IDAS to add plugin functionality.
2020-08-12 07:48:53 -04:00