diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 46961a2..144b3bf 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -15,6 +15,10 @@ Unreleased ~~~~~~~~~~ +[2.5.1] - 2024-02-22 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* Update prepared learners query + [2.5.0] - 2023-11-02 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Add management command to trigger segment events for learners who have achieved 30 minutes of learning diff --git a/outcome_surveys/__init__.py b/outcome_surveys/__init__.py index dbe5efc..f648998 100644 --- a/outcome_surveys/__init__.py +++ b/outcome_surveys/__init__.py @@ -2,6 +2,6 @@ Outcome Surveys. """ -__version__ = '2.5.0' +__version__ = '2.5.1' default_app_config = 'outcome_surveys.apps.OutcomeSurveysConfig' # pylint: disable=invalid-name diff --git a/outcome_surveys/management/commands/send_learning_time_achieved_segment_events.py b/outcome_surveys/management/commands/send_learning_time_achieved_segment_events.py index e2d7232..29c0339 100644 --- a/outcome_surveys/management/commands/send_learning_time_achieved_segment_events.py +++ b/outcome_surveys/management/commands/send_learning_time_achieved_segment_events.py @@ -22,34 +22,25 @@ ENTERPRISE = settings.ENTERPRISE_VSF_UUID QUERY = f''' -WITH prepared_learners as ( --- get users who have hit :30 --- minutes threshold, but haven't been --- surveyed yet. -SELECT - user_id, - SUM(learning_time_seconds) as learning_time_seconds -FROM - PROD.BUSINESS_INTELLIGENCE.LEARNING_TIME -WHERE - enterprise_customer_uuid='{ENTERPRISE}' -AND - user_id not in ( - -- filter learners who already emitted this event. - SELECT - user_id - FROM - PROD.LMS.OUTCOME_SURVEYS_LEARNERCOURSEEVENT - WHERE - event_type = 'edx.course.learner.achieved.learning.time' - AND - already_sent = TRUE - ) -GROUP BY - user_id -HAVING - -- filter learners who haven't hit the threshold. - SUM(learning_time_seconds) >= 1800 +WITH prepared_learners AS ( + SELECT + lms_user_id as user_id + FROM + prod.enterprise.verizon_internal_reporting + WHERE + is_prepared_learner=TRUE + AND + lms_user_id NOT IN ( + -- filter learners who already emitted this event + SELECT + user_id + FROM + PROD.LMS.OUTCOME_SURVEYS_LEARNERCOURSEEVENT + WHERE + event_type = 'edx.course.learner.achieved.learning.time' + AND + already_sent = TRUE + ) ), last_course as ( @@ -73,7 +64,6 @@ -- join it all together. select pl.user_id, - pl.learning_time_seconds, runs.courserun_key, runs.course_key, runs.courserun_title