Skip to content

Commit

Permalink
Merge pull request #18 from edx/ammar/update-prepared-learners-query
Browse files Browse the repository at this point in the history
fix: update prepared learners query
  • Loading branch information
muhammad-ammar authored Feb 23, 2024
2 parents d6c7ac9 + 1d18a83 commit 69236d7
Show file tree
Hide file tree
Showing 10 changed files with 157 additions and 160 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion outcome_surveys/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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 (
Expand All @@ -73,13 +64,12 @@
-- join it all together.
select
pl.user_id,
pl.learning_time_seconds,
runs.courserun_key,
runs.course_key,
runs.courserun_title
from
prepared_learners pl
left join
inner join
last_course lc
on
pl.user_id = lc.user_id
Expand Down
26 changes: 13 additions & 13 deletions requirements/base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ asgiref==3.7.2
# via django
asn1crypto==1.5.1
# via snowflake-connector-python
certifi==2023.11.17
certifi==2024.2.2
# via
# requests
# snowflake-connector-python
Expand All @@ -23,11 +23,11 @@ charset-normalizer==3.3.2
# snowflake-connector-python
click==8.1.7
# via edx-django-utils
cryptography==41.0.7
cryptography==42.0.4
# via
# pyopenssl
# snowflake-connector-python
django==3.2.23
django==3.2.24
# via
# -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
# -r requirements/base.in
Expand All @@ -38,11 +38,11 @@ django==3.2.23
# jsonfield
django-crum==0.7.9
# via edx-django-utils
django-model-utils==4.3.1
django-model-utils==4.4.0
# via -r requirements/base.in
django-waffle==4.0.0
django-waffle==4.1.0
# via edx-django-utils
edx-django-utils==5.9.0
edx-django-utils==5.10.1
# via -r requirements/base.in
edx-opaque-keys==2.5.1
# via -r requirements/base.in
Expand All @@ -54,7 +54,7 @@ idna==3.6
# snowflake-connector-python
jsonfield==3.1.0
# via -r requirements/base.in
newrelic==9.3.0
newrelic==9.7.0
# via edx-django-utils
packaging==23.2
# via snowflake-connector-python
Expand All @@ -64,7 +64,7 @@ platformdirs==3.11.0
# via
# -c requirements/constraints.txt
# snowflake-connector-python
psutil==5.9.6
psutil==5.9.8
# via edx-django-utils
pycparser==2.21
# via cffi
Expand All @@ -74,29 +74,29 @@ pymongo==3.13.0
# via edx-opaque-keys
pynacl==1.5.0
# via edx-django-utils
pyopenssl==23.3.0
pyopenssl==24.0.0
# via snowflake-connector-python
pytz==2023.3.post1
pytz==2024.1
# via
# django
# snowflake-connector-python
requests==2.31.0
# via
# -r requirements/base.in
# snowflake-connector-python
snowflake-connector-python==3.6.0
snowflake-connector-python==3.7.1
# via -r requirements/base.in
sortedcontainers==2.4.0
# via snowflake-connector-python
sqlparse==0.4.4
# via django
stevedore==5.1.0
stevedore==5.2.0
# via
# edx-django-utils
# edx-opaque-keys
tomlkit==0.12.3
# via snowflake-connector-python
typing-extensions==4.8.0
typing-extensions==4.9.0
# via
# asgiref
# edx-opaque-keys
Expand Down
6 changes: 3 additions & 3 deletions requirements/ci.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ chardet==5.2.0
# via tox
colorama==0.4.6
# via tox
distlib==0.3.7
distlib==0.3.8
# via virtualenv
filelock==3.13.1
# via
Expand All @@ -25,7 +25,7 @@ platformdirs==3.11.0
# -c requirements/constraints.txt
# tox
# virtualenv
pluggy==1.3.0
pluggy==1.4.0
# via tox
pyproject-api==1.6.1
# via tox
Expand All @@ -35,5 +35,5 @@ tomli==2.0.1
# tox
tox==4.11.4
# via -r requirements/ci.in
virtualenv==20.25.0
virtualenv==20.25.1
# via tox
Loading

0 comments on commit 69236d7

Please sign in to comment.