edx-enterprise-data 9.7.2__py3-none-any.whl → 9.7.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {edx_enterprise_data-9.7.2.dist-info → edx_enterprise_data-9.7.6.dist-info}/METADATA +1 -1
- {edx_enterprise_data-9.7.2.dist-info → edx_enterprise_data-9.7.6.dist-info}/RECORD +12 -12
- enterprise_data/__init__.py +1 -1
- enterprise_data/admin_analytics/database/queries/fact_enrollment_admin_dash.py +1 -0
- enterprise_data/admin_analytics/database/queries/skills_daily_rollup_admin_dash.py +8 -6
- enterprise_data/admin_analytics/database/tables/fact_engagement_admin_dash.py +4 -1
- enterprise_data/api/v1/views/analytics_completions.py +1 -1
- enterprise_data/api/v1/views/analytics_engagements.py +1 -1
- enterprise_data/api/v1/views/analytics_enrollments.py +1 -1
- {edx_enterprise_data-9.7.2.dist-info → edx_enterprise_data-9.7.6.dist-info}/LICENSE +0 -0
- {edx_enterprise_data-9.7.2.dist-info → edx_enterprise_data-9.7.6.dist-info}/WHEEL +0 -0
- {edx_enterprise_data-9.7.2.dist-info → edx_enterprise_data-9.7.6.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
enterprise_data/__init__.py,sha256=
|
1
|
+
enterprise_data/__init__.py,sha256=aRs9WQKP3AobmAA_dNzlDtWeHarkOrFCKiWkRT67uWc,123
|
2
2
|
enterprise_data/apps.py,sha256=aF6hZwDfI2oWj95tUTm_2ikHueQj-jLj-u0GrgzpsQI,414
|
3
3
|
enterprise_data/clients.py,sha256=GvQupy5TVYfO_IKC3yzXSAgNP54r-PtIjidM5ws9Iks,3947
|
4
4
|
enterprise_data/constants.py,sha256=uCKjfpdlMYFZJsAj3n9RMw4Cmg5_6s3NuwocO-fch3s,238
|
@@ -16,11 +16,11 @@ enterprise_data/admin_analytics/database/__init__.py,sha256=vNSWKf2VV5xMegN7htJJ
|
|
16
16
|
enterprise_data/admin_analytics/database/utils.py,sha256=5u-d6ZQW95mF_r4bH8Xdi7DgpYAuDFOG_q0P-bjKXHU,1712
|
17
17
|
enterprise_data/admin_analytics/database/queries/__init__.py,sha256=IC5TLOr_GnydbrVbl2mWhwO3aUbYeHuDmfPTLmwGhZA,218
|
18
18
|
enterprise_data/admin_analytics/database/queries/fact_engagement_admin_dash.py,sha256=eLy9GT0gFGLbw8yZZdEaeCAw0pTEUsy0-Ud5g2T9T80,10836
|
19
|
-
enterprise_data/admin_analytics/database/queries/fact_enrollment_admin_dash.py,sha256=
|
20
|
-
enterprise_data/admin_analytics/database/queries/skills_daily_rollup_admin_dash.py,sha256=
|
19
|
+
enterprise_data/admin_analytics/database/queries/fact_enrollment_admin_dash.py,sha256=ikTly1_fb-xzrXUTpA7B2dRRYpcuDhbpxMBkxbs-DP4,11064
|
20
|
+
enterprise_data/admin_analytics/database/queries/skills_daily_rollup_admin_dash.py,sha256=ZaJPghTrQvBGsFxfpeR8EE45ujtaYI9R_xkoDDqD2So,4269
|
21
21
|
enterprise_data/admin_analytics/database/tables/__init__.py,sha256=Z-c3P9hqR-dC9uYKe63qHkQG9Nms8cLE2jRN-4jeMM0,289
|
22
22
|
enterprise_data/admin_analytics/database/tables/base.py,sha256=1KyKsC18pW3m-5U-T6pdt5rIwsz6Wp3QFFbD3r6L6YQ,395
|
23
|
-
enterprise_data/admin_analytics/database/tables/fact_engagement_admin_dash.py,sha256=
|
23
|
+
enterprise_data/admin_analytics/database/tables/fact_engagement_admin_dash.py,sha256=VMUGwfrUsYd_NnxEDNBovAmHwhdTCSImGA6JjHzknhk,12959
|
24
24
|
enterprise_data/admin_analytics/database/tables/fact_enrollment_admin_dash.py,sha256=cRRBFRc2p54BkW_h7GuUud-gWzJrqKep9dYgxOf7tIY,11741
|
25
25
|
enterprise_data/admin_analytics/database/tables/skills_daily_rollup_admin_dash.py,sha256=3xNwSi0wfCyBHcXPd6-9Ujs1NUm8kmZRg_gPrZzp9nQ,3233
|
26
26
|
enterprise_data/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -33,9 +33,9 @@ enterprise_data/api/v1/__init__.py,sha256=1aAzAYU5hk-RW6cKUxa1645cbZMxn7GIZ7OMjW
|
|
33
33
|
enterprise_data/api/v1/serializers.py,sha256=oS09fMJyb3DkSc2y5TH5Yknd9NjYrlmWMRPNqBZ741U,10902
|
34
34
|
enterprise_data/api/v1/urls.py,sha256=IpOyS9UWuyip6fw6gtrxBw9SZLOdxh3sQ2j0Gdk4eOw,4180
|
35
35
|
enterprise_data/api/v1/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
36
|
-
enterprise_data/api/v1/views/analytics_completions.py,sha256=
|
37
|
-
enterprise_data/api/v1/views/analytics_engagements.py,sha256=
|
38
|
-
enterprise_data/api/v1/views/analytics_enrollments.py,sha256=
|
36
|
+
enterprise_data/api/v1/views/analytics_completions.py,sha256=esFbJ5q8ssnm2Mfbc3rZXtiGHF-MeM4KQ4Ft3N7wwHU,6260
|
37
|
+
enterprise_data/api/v1/views/analytics_engagements.py,sha256=Yo-bpA-0xOQHUPTFF0jHWxjm6KpSC-l2nGxhYX0ajBk,6298
|
38
|
+
enterprise_data/api/v1/views/analytics_enrollments.py,sha256=hw87VZ0hFWpwf3QEHFn9cUgDy2s7SzsXt6Rf9TaNsS0,6282
|
39
39
|
enterprise_data/api/v1/views/analytics_leaderboard.py,sha256=3dyo7_OhyGEEeibemBrRsUOo0jbM4LbDgV5gw3YnVig,4186
|
40
40
|
enterprise_data/api/v1/views/base.py,sha256=Kkmd5zgEBAhvwS_GoGXSK6lgbDNwSPioYn-QbnizI3w,3416
|
41
41
|
enterprise_data/api/v1/views/enterprise_admin.py,sha256=DyN6RS4qY8sgKNIvcx1nRmSGuPm2pLYHZeh5YHXlH2w,8209
|
@@ -171,8 +171,8 @@ enterprise_reporting/tests/test_send_enterprise_reports.py,sha256=WtL-RqGgu2x5PP
|
|
171
171
|
enterprise_reporting/tests/test_utils.py,sha256=Zt_TA0LVb-B6fQGkUkAKKVlUKKnQh8jnw1US1jKe7g8,9493
|
172
172
|
enterprise_reporting/tests/test_vertica_client.py,sha256=-R2yNCGUjRtoXwLMBloVFQkFYrJoo613VCr61gwI3kQ,140
|
173
173
|
enterprise_reporting/tests/utils.py,sha256=xms2LM7DV3wczXEfctOK1ddel1EE0J_YSr17UzbCDy4,1401
|
174
|
-
edx_enterprise_data-9.7.
|
175
|
-
edx_enterprise_data-9.7.
|
176
|
-
edx_enterprise_data-9.7.
|
177
|
-
edx_enterprise_data-9.7.
|
178
|
-
edx_enterprise_data-9.7.
|
174
|
+
edx_enterprise_data-9.7.6.dist-info/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
|
175
|
+
edx_enterprise_data-9.7.6.dist-info/METADATA,sha256=UodzSsiqcnK16TiaLHKiODieB81Do1FtbXmUkdoav88,1569
|
176
|
+
edx_enterprise_data-9.7.6.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
177
|
+
edx_enterprise_data-9.7.6.dist-info/top_level.txt,sha256=f5F2kU-dob6MqiHJpgZkFzoCD5VMhsdpkTV5n9Tvq3I,59
|
178
|
+
edx_enterprise_data-9.7.6.dist-info/RECORD,,
|
enterprise_data/__init__.py
CHANGED
@@ -38,7 +38,8 @@ class SkillsDailyRollupAdminDashQueries:
|
|
38
38
|
WITH TopSkills AS (
|
39
39
|
-- Get top 10 skills by total enrollments
|
40
40
|
SELECT
|
41
|
-
skill_name
|
41
|
+
skill_name,
|
42
|
+
SUM(enrolls) AS total_enrollment_count
|
42
43
|
FROM
|
43
44
|
skills_daily_rollup_admin_dash
|
44
45
|
WHERE
|
@@ -47,7 +48,7 @@ class SkillsDailyRollupAdminDashQueries:
|
|
47
48
|
GROUP BY
|
48
49
|
skill_name
|
49
50
|
ORDER BY
|
50
|
-
|
51
|
+
total_enrollment_count DESC
|
51
52
|
LIMIT 10
|
52
53
|
)
|
53
54
|
SELECT
|
@@ -70,7 +71,7 @@ class SkillsDailyRollupAdminDashQueries:
|
|
70
71
|
GROUP BY
|
71
72
|
sd.skill_name, subject_name
|
72
73
|
ORDER BY
|
73
|
-
|
74
|
+
total_enrollment_count DESC;
|
74
75
|
"""
|
75
76
|
|
76
77
|
@staticmethod
|
@@ -82,7 +83,8 @@ class SkillsDailyRollupAdminDashQueries:
|
|
82
83
|
WITH TopSkills AS (
|
83
84
|
-- Get top 10 skills by total completions
|
84
85
|
SELECT
|
85
|
-
skill_name
|
86
|
+
skill_name,
|
87
|
+
SUM(completions) AS total_completion_count
|
86
88
|
FROM
|
87
89
|
skills_daily_rollup_admin_dash
|
88
90
|
WHERE
|
@@ -91,7 +93,7 @@ class SkillsDailyRollupAdminDashQueries:
|
|
91
93
|
GROUP BY
|
92
94
|
skill_name
|
93
95
|
ORDER BY
|
94
|
-
|
96
|
+
total_completion_count DESC
|
95
97
|
LIMIT 10
|
96
98
|
)
|
97
99
|
SELECT
|
@@ -114,5 +116,5 @@ class SkillsDailyRollupAdminDashQueries:
|
|
114
116
|
GROUP BY
|
115
117
|
sd.skill_name, subject_name
|
116
118
|
ORDER BY
|
117
|
-
|
119
|
+
total_completion_count DESC;
|
118
120
|
"""
|
@@ -11,6 +11,8 @@ from ..queries import FactEngagementAdminDashQueries
|
|
11
11
|
from ..utils import run_query
|
12
12
|
from .base import BaseTable
|
13
13
|
|
14
|
+
NULL_EMAIL_TEXT = 'learners who have not shared consent'
|
15
|
+
|
14
16
|
|
15
17
|
class FactEngagementAdminDashTable(BaseTable):
|
16
18
|
"""
|
@@ -327,8 +329,9 @@ class FactEngagementAdminDashTable(BaseTable):
|
|
327
329
|
if include_null_email:
|
328
330
|
engagement_data_dict['None'] = find_first(engagement_data, lambda x: x['email'] is None) or {}
|
329
331
|
completion = find_first(completion_data, lambda x: x['email'] is None) or \
|
330
|
-
{'course_completion_count': '
|
332
|
+
{'course_completion_count': ''}
|
331
333
|
engagement_data_dict['None']['course_completion_count'] = completion['course_completion_count']
|
334
|
+
engagement_data_dict['None']['email'] = NULL_EMAIL_TEXT
|
332
335
|
|
333
336
|
return list(engagement_data_dict.values())
|
334
337
|
|
@@ -75,7 +75,7 @@ class AdvanceAnalyticsCompletionsView(AnalyticsPaginationMixin, ViewSet):
|
|
75
75
|
)
|
76
76
|
|
77
77
|
if response_type == ResponseType.CSV.value:
|
78
|
-
filename = f"""
|
78
|
+
filename = f"""Individual Completions, {start_date} - {end_date}.csv"""
|
79
79
|
|
80
80
|
return StreamingHttpResponse(
|
81
81
|
IndividualCompletionsCSVRenderer().render(self._stream_serialized_data(
|
@@ -75,7 +75,7 @@ class AdvanceAnalyticsEngagementView(AnalyticsPaginationMixin, ViewSet):
|
|
75
75
|
)
|
76
76
|
|
77
77
|
if response_type == ResponseType.CSV.value:
|
78
|
-
filename = f"""
|
78
|
+
filename = f"""Individual Engagements, {start_date} - {end_date}.csv"""
|
79
79
|
|
80
80
|
return StreamingHttpResponse(
|
81
81
|
IndividualEngagementsCSVRenderer().render(self._stream_serialized_data(
|
@@ -74,7 +74,7 @@ class AdvanceAnalyticsEnrollmentsView(AnalyticsPaginationMixin, ViewSet):
|
|
74
74
|
)
|
75
75
|
|
76
76
|
if response_type == ResponseType.CSV.value:
|
77
|
-
filename = f"""
|
77
|
+
filename = f"""Individual Enrollments, {start_date} - {end_date}.csv"""
|
78
78
|
|
79
79
|
return StreamingHttpResponse(
|
80
80
|
IndividualEnrollmentsCSVRenderer().render(self._stream_serialized_data(
|
File without changes
|
File without changes
|
File without changes
|