* feat: add survey_report djangoapp * feat: add survey report cli command and query methods * fix: add init file * refactor: change model fields * refactor: rename application file and rename methods * refactor: add is_active to get course enrollments * refactor: rename method to get active users * refactor: remove fields useless * test: rename mocks in command tests * test: update test name * docs: add README file * docs: add selection criteria to get unique courses * docs: update README * test: remove useless mocks and use default modulestore * docs: change command error message * docs: add docs decisions * docs: Update openedx/features/survey_report/management/commands/generate_report.py * docs: add fields descriptions * docs: add logs for each query * style: add blank lines * refactor: rename variables and add a constant for weeks * refactor: add constant MIN_ENROLLS_ACTIVE_COURSE Co-authored-by: henrrypg <henrry.pulgarin@edunext.co> Co-authored-by: David Ormsbee <dave@tcril.org> Co-authored-by: Maria Grimaldi <maria.grimaldi@edunext.co>
38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
"""
|
|
Contains the logic to manage survey report model.
|
|
"""
|
|
|
|
from django.conf import settings
|
|
|
|
from openedx.features.survey_report.models import SurveyReport
|
|
from openedx.features.survey_report.queries import (
|
|
get_course_enrollments,
|
|
get_recently_active_users,
|
|
get_generated_certificates,
|
|
get_registered_learners,
|
|
get_unique_courses_offered
|
|
)
|
|
|
|
MAX_WEEKS_SINCE_LAST_LOGIN: int = 4
|
|
|
|
|
|
def generate_report() -> None:
|
|
""" Generate a report with relevant data."""
|
|
courses_offered = get_unique_courses_offered()
|
|
learners = get_recently_active_users(weeks=MAX_WEEKS_SINCE_LAST_LOGIN)
|
|
registered_learners = get_registered_learners()
|
|
certificates = get_generated_certificates()
|
|
enrollments = get_course_enrollments()
|
|
extra_data = settings.SURVEY_REPORT_EXTRA_DATA
|
|
|
|
survey_report = SurveyReport(
|
|
courses_offered=courses_offered,
|
|
learners=learners,
|
|
registered_learners=registered_learners,
|
|
generated_certificates=certificates,
|
|
enrollments=enrollments,
|
|
extra_data=extra_data,
|
|
)
|
|
|
|
survey_report.save()
|