Commit b4cecf2a by Tasawer

removed expired course runs. ECOM-4446

parent f771da48
...@@ -84,8 +84,13 @@ class AffiliateWindowViewSetTests(ElasticsearchTestMixin, SerializationMixin, AP ...@@ -84,8 +84,13 @@ class AffiliateWindowViewSetTests(ElasticsearchTestMixin, SerializationMixin, AP
def test_with_closed_enrollment(self): def test_with_closed_enrollment(self):
""" Verify that endpoint returns no data if enrollment is close. """ """ Verify that endpoint returns no data if enrollment is close. """
self.course_run.enrollment_end = datetime.datetime.now(pytz.UTC) + datetime.timedelta(days=-100) self.course_run.enrollment_end = datetime.datetime.now(pytz.UTC) - datetime.timedelta(days=100)
self.course_run.end = datetime.datetime.now(pytz.UTC) - datetime.timedelta(days=100)
self.course_run.save() self.course_run.save()
# new course run with future end date and no enrollment_date.
CourseRunFactory(end=self.course_end, course=self.course, enrollment_end=None)
response = self.client.get(self.affiliate_url) response = self.client.get(self.affiliate_url)
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
......
import datetime
import logging import logging
import os import os
from io import StringIO from io import StringIO
...@@ -5,10 +6,12 @@ from io import StringIO ...@@ -5,10 +6,12 @@ from io import StringIO
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.core.management import call_command from django.core.management import call_command
from django.db import transaction from django.db import transaction
from django.db.models import Q
from django.db.models.functions import Lower from django.db.models.functions import Lower
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from dry_rest_permissions.generics import DRYPermissions from dry_rest_permissions.generics import DRYPermissions
from edx_rest_framework_extensions.permissions import IsSuperuser from edx_rest_framework_extensions.permissions import IsSuperuser
import pytz
from rest_framework import status, viewsets from rest_framework import status, viewsets
from rest_framework.decorators import detail_route, list_route from rest_framework.decorators import detail_route, list_route
from rest_framework.exceptions import PermissionDenied from rest_framework.exceptions import PermissionDenied
...@@ -304,8 +307,12 @@ class AffiliateWindowViewSet(viewsets.ViewSet): ...@@ -304,8 +307,12 @@ class AffiliateWindowViewSet(viewsets.ViewSet):
raise PermissionDenied raise PermissionDenied
courses = catalog.courses().active() courses = catalog.courses().active()
seats = Seat.objects.filter( seats = Seat.objects.filter(
course_run__course__in=courses, type__in=[Seat.VERIFIED, Seat.PROFESSIONAL] (Q(course_run__end__gte=datetime.datetime.now(pytz.UTC)) | Q(course_run__end__isnull=True)) &
Q(course_run__course__in=courses) & Q(type__in=[Seat.VERIFIED, Seat.PROFESSIONAL]) &
(Q(course_run__enrollment_end__isnull=True) |
Q(course_run__enrollment_end__gte=datetime.datetime.now(pytz.UTC)))
) )
serializer = AffiliateWindowSerializer(seats, many=True) serializer = AffiliateWindowSerializer(seats, many=True)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment