diff --git a/openedx/features/survey_report/application.py b/openedx/features/survey_report/application.py index f22ac11bb12c..fce8f35a3c9c 100644 --- a/openedx/features/survey_report/application.py +++ b/openedx/features/survey_report/application.py @@ -2,8 +2,9 @@ Contains the logic to manage survey report model. """ -from openedx.features.survey_report.queries import get_unique_courses_offered +from openedx.features.survey_report.queries import get_unique_courses_offered, currently_learners def generate_report() -> None: """ Generate a report with relevant data.""" courses_offered=get_unique_courses_offered() + learners=currently_learners() diff --git a/openedx/features/survey_report/queries.py b/openedx/features/survey_report/queries.py index 497687b47657..03b34646093c 100644 --- a/openedx/features/survey_report/queries.py +++ b/openedx/features/survey_report/queries.py @@ -2,10 +2,10 @@ Queries to get data from database. """ -from datetime import datetime +from datetime import datetime, timedelta from openedx.core.djangoapps.content.course_overviews.models import CourseOverview from common.djangoapps.student.models import CourseEnrollment - +from django.contrib.auth.models import User from django.db.models import Q, Subquery, OuterRef, Count @@ -25,3 +25,9 @@ def get_unique_courses_offered() -> int: .filter(start__lt=datetime.now())\ .filter(Q(end__isnull=True)|Q(end__gt=datetime.now()))\ .count() + +def currently_learners() -> int: + """ + Get total number of learners with last login in the last 3 weeks. + """ + return User.objects.filter(last_login__gte=datetime.now() - timedelta(weeks=3)).count()