Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
57bf89c8
Unverified
Commit
57bf89c8
authored
Oct 30, 2017
by
Tyler Hallada
Committed by
Gabe Mulley
Nov 01, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Create schedule experience on schedule creation
parent
95d1e5c2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
4 deletions
+25
-4
openedx/core/djangoapps/schedules/signals.py
+14
-3
openedx/core/djangoapps/schedules/tests/test_signals.py
+11
-1
No files found.
openedx/core/djangoapps/schedules/signals.py
View file @
57bf89c8
...
...
@@ -12,6 +12,9 @@ from courseware.models import (
OrgDynamicUpgradeDeadlineConfiguration
)
from
edx_ace.utils
import
date
from
openedx.core.djangoapps.schedules.exceptions
import
CourseUpdateDoesNotExist
from
openedx.core.djangoapps.schedules.models
import
ScheduleExperience
from
openedx.core.djangoapps.schedules.resolvers
import
get_week_highlights
from
openedx.core.djangoapps.signals.signals
import
COURSE_START_DATE_CHANGED
from
openedx.core.djangoapps.theming.helpers
import
get_current_site
from
student.models
import
CourseEnrollment
...
...
@@ -53,14 +56,22 @@ def create_schedule(sender, **kwargs):
upgrade_deadline
=
_calculate_upgrade_deadline
(
enrollment
.
course_id
,
content_availability_date
)
Schedule
.
objects
.
create
(
schedule
=
Schedule
.
objects
.
create
(
enrollment
=
enrollment
,
start
=
content_availability_date
,
upgrade_deadline
=
upgrade_deadline
)
log
.
debug
(
'Schedules: created a new schedule starting at
%
s with an upgrade deadline of
%
s'
,
content_availability_date
,
upgrade_deadline
)
try
:
get_week_highlights
(
enrollment
.
course_id
,
1
)
experience_type
=
ScheduleExperience
.
COURSE_UPDATES
except
CourseUpdateDoesNotExist
:
experience_type
=
ScheduleExperience
.
DEFAULT
ScheduleExperience
(
schedule
=
schedule
,
experience_type
=
experience_type
)
.
save
()
log
.
debug
(
'Schedules: created a new schedule starting at
%
s with an upgrade deadline of
%
s and experience type:
%
s'
,
content_availability_date
,
upgrade_deadline
,
ScheduleExperience
.
EXPERIENCES
[
experience_type
][
1
])
@receiver
(
COURSE_START_DATE_CHANGED
,
dispatch_uid
=
"update_schedules_on_course_start_changed"
)
...
...
openedx/core/djangoapps/schedules/tests/test_signals.py
View file @
57bf89c8
...
...
@@ -6,6 +6,7 @@ from pytz import utc
from
course_modes.models
import
CourseMode
from
course_modes.tests.factories
import
CourseModeFactory
from
courseware.models
import
DynamicUpgradeDeadlineConfiguration
from
openedx.core.djangoapps.schedules.models
import
ScheduleExperience
from
openedx.core.djangoapps.schedules.signals
import
CREATE_SCHEDULE_WAFFLE_FLAG
from
openedx.core.djangoapps.site_configuration.tests.factories
import
SiteFactory
from
openedx.core.djangoapps.waffle_utils.testutils
import
override_waffle_flag
...
...
@@ -23,11 +24,12 @@ from ..tests.factories import ScheduleConfigFactory
@skip_unless_lms
class
CreateScheduleTests
(
SharedModuleStoreTestCase
):
def
assert_schedule_created
(
self
):
def
assert_schedule_created
(
self
,
experience_type
=
ScheduleExperience
.
DEFAULT
):
course
=
_create_course_run
(
self_paced
=
True
)
enrollment
=
CourseEnrollmentFactory
(
course_id
=
course
.
id
,
mode
=
CourseMode
.
AUDIT
)
self
.
assertIsNotNone
(
enrollment
.
schedule
)
self
.
assertIsNone
(
enrollment
.
schedule
.
upgrade_deadline
)
self
.
assertEquals
(
enrollment
.
schedule
.
experience
.
experience_type
,
experience_type
)
def
assert_schedule_not_created
(
self
):
course
=
_create_course_run
(
self_paced
=
True
)
...
...
@@ -78,6 +80,14 @@ class CreateScheduleTests(SharedModuleStoreTestCase):
with
self
.
assertRaises
(
Schedule
.
DoesNotExist
):
enrollment
.
schedule
@override_waffle_flag
(
CREATE_SCHEDULE_WAFFLE_FLAG
,
True
)
@patch
(
'openedx.core.djangoapps.schedules.signals.get_week_highlights'
)
def
test_create_schedule_course_updates_experience
(
self
,
mock_get_week_highlights
,
mock_get_current_site
):
site
=
SiteFactory
.
create
()
mock_get_week_highlights
.
return_value
=
True
mock_get_current_site
.
return_value
=
site
self
.
assert_schedule_created
(
experience_type
=
ScheduleExperience
.
COURSE_UPDATES
)
@ddt.ddt
@skip_unless_lms
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment