Skip to content

Commit 232580f

Browse files
Should return Dated course runs correctly (#3038)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent d7e8555 commit 232580f

File tree

3 files changed

+13
-13
lines changed

3 files changed

+13
-13
lines changed

courses/models.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,6 @@ def live(self):
8080
"""Applies a filter for Course runs with live=True"""
8181
return self.filter(live=True, b2b_contract__isnull=True)
8282

83-
def available(self):
84-
"""Applies a filter for Course runs with end_date in future"""
85-
return self.filter(
86-
models.Q(end_date__isnull=True) | models.Q(end_date__gt=now_in_utc())
87-
).filter(b2b_contract__isnull=True)
88-
8983
def enrollable(self, enrollment_end_date=None):
9084
"""
9185
Applies a filter for Course runs that are open for enrollment.
@@ -130,7 +124,7 @@ def get_enrollable_filter(cls, enrollment_end_date=None):
130124
enrollment_end_date = now
131125

132126
return (
133-
# Check if enrollment period is still open
127+
# Check if enrollment has not ended
134128
(
135129
models.Q(enrollment_end__isnull=True)
136130
| models.Q(enrollment_end__gt=enrollment_end_date)

courses/utils.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -156,15 +156,11 @@ def get_archived_courseruns(queryset):
156156
def get_dated_courseruns(queryset):
157157
"""
158158
Returns course runs that are dated meaning they are
159+
- Enrollable (see get_enrollable_filter for more details)
159160
- Not self-paced
160-
- Have a start date
161-
- End date can be dated and greater than now or null
162-
- Enrollable (enrollment start is in the past and enrollment end is in the future or null)
163161
"""
164162
return queryset.filter(
165-
CourseRunQuerySet.get_enrollable_filter()
166-
& Q(is_self_paced=False)
167-
& Q(enrollment_end__isnull=False)
163+
CourseRunQuerySet.get_enrollable_filter() & Q(is_self_paced=False)
168164
)
169165

170166

courses/utils_test.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ def test_get_dated_courseruns():
238238
enrollable_course = CourseFactory.create()
239239
unenrollable_course = CourseFactory.create()
240240
self_paced_course = CourseFactory.create()
241+
instructor_paced_course = CourseFactory.create()
241242
enrollable_courserun = CourseRunFactory.create(
242243
course=enrollable_course,
243244
live=True,
@@ -260,7 +261,16 @@ def test_get_dated_courseruns():
260261
enrollment_start=past_date,
261262
enrollment_end=future_date,
262263
)
264+
# This a "dated" course run, but has missing enrollment end date
265+
instructor_paced_course_run = CourseRunFactory.create(
266+
course=instructor_paced_course,
267+
live=True,
268+
start_date=now,
269+
enrollment_start=past_date,
270+
enrollment_end=None,
271+
)
263272
dated_courseruns = get_dated_courseruns(CourseRun.objects.all())
264273
assert enrollable_courserun in dated_courseruns
265274
assert unenrollable_courserun not in dated_courseruns
266275
assert self_paced_courserun not in dated_courseruns
276+
assert instructor_paced_course_run in dated_courseruns

0 commit comments

Comments
 (0)