edx-enterprise-data 4.11.1__tar.gz → 5.0.0__tar.gz
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-4.11.1 → edx-enterprise-data-5.0.0}/CHANGELOG.rst +10 -0
- {edx-enterprise-data-4.11.1/edx_enterprise_data.egg-info → edx-enterprise-data-5.0.0}/PKG-INFO +1 -1
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0/edx_enterprise_data.egg-info}/PKG-INFO +1 -1
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/__init__.py +1 -1
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/api/v1/views.py +28 -7
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/tests/api/v1/test_views.py +3 -3
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/requirements/base.txt +12 -11
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/requirements/ci.txt +3 -3
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/requirements/dev.txt +35 -27
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/requirements/pip.txt +2 -2
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/requirements/pip_tools.txt +3 -3
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/requirements/quality.txt +37 -29
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/requirements/test-master.txt +27 -13
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/requirements/test-reporting.txt +12 -12
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/requirements/test.txt +14 -13
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/LICENSE +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/MANIFEST.in +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/README.md +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/edx_enterprise_data.egg-info/SOURCES.txt +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/edx_enterprise_data.egg-info/dependency_links.txt +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/edx_enterprise_data.egg-info/not-zip-safe +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/edx_enterprise_data.egg-info/requires.txt +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/edx_enterprise_data.egg-info/top_level.txt +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/api/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/api/urls.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/api/v0/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/api/v0/serializers.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/api/v0/urls.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/api/v0/views.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/api/v1/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/api/v1/serializers.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/api/v1/urls.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/apps.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/clients.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/constants.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/filters.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/fixtures/enterprise_enrollment.json +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/fixtures/enterprise_user.json +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/management/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/management/commands/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/management/commands/create_dummy_data.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/management/commands/create_dummy_data_lpr_v1.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/management/commands/create_enterprise_enrollment.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/management/commands/create_enterprise_learner_enrollment_lpr_v1.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/management/commands/create_enterprise_learner_lpr_v1.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/management/commands/create_enterprise_offer.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/management/commands/create_enterprise_user.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/management/commands/tests/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/management/commands/tests/test_create_dummy_data_lpr_v1.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/management/commands/tests/test_create_enterprise_enrollment.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/management/commands/tests/test_create_enterprise_learner_enrollment_lpr_v1.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/management/commands/tests/test_create_enterprise_learner_lpr_v1.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/management/commands/tests/test_create_enterprise_user.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0001_initial.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0002_auto_20180430_1358.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0003_auto_20180501_0603.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0004_auto_20180501_0928.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0004_auto_20180508_1652.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0005_auto_20180524_2204.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0006_auto_20180612_0336.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0007_auto_20180612_0534.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0008_auto_20180614_0108.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0009_auto_20180628_1152.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0010_enterpriseenrollment_created.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0011_enterpriseuser.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0012_auto_20180831_1930.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0013_auto_20180831_1931.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0014_enterpriseuser_created.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0015_auto_20180907_1757.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0016_auto_20180924_2138.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0017_enterpriseenrollment_unenrollment_timestamp.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0018_enterprisedatafeaturerole_enterprisedataroleassignment.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0019_add_enterprise_data_feature_roles.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0020_add_role_based_access_control_switch.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0021_auto_20190329_1241.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0022_remove_role_based_access_control_switch.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0023_enterpriselearner_enterpriselearnerenrollment.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0024_auto_20210602_1811.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0025_auto_20210703_1854.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0026_auto_20210916_0414.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0027_enterpriselearnerenrollment_total_learning_time_seconds.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0028_enterpriselearnerenrollment_offer_id.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0029_enterpriseoffer.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0030_auto_20230609_1353.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0031_auto_20230615_0705.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0032_auto_20230704_0818.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/0033_enterpriseadminlearnerprogress_enterpriseadminsummarizeinsights.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/migrations/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/models.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/paginators.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/settings/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/settings/test.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/signals.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/tests/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/tests/api/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/tests/api/v0/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/tests/api/v0/test_serializers.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/tests/api/v1/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/tests/api/v1/test_serializers.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/tests/factories.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/tests/mixins.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/tests/test_clients.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/tests/test_filters.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/tests/test_models.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/tests/test_utils.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/tests/test_views.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/urls.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/utils.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/admin.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/apps.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/constants.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/migrations/0001_initial.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/migrations/0002_add_enterprise_data_feature_roles.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/migrations/0003_add_role_based_access_control_switch.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/migrations/0004_enterprisedataroleassignment_enterprise_id.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/migrations/0005_turn_on_role_based_access_control_switch.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/migrations/0006_remove_role_based_access_control_switch.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/migrations/0007_enterprisedataroleassignment_applies_to_all_contexts.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/migrations/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/models.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/rules.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/tests/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/tests/factories.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data_roles/tests/test_models.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/clients/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/clients/enterprise.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/clients/s3.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/clients/snowflake.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/clients/vertica.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/delivery_method.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/external_resource_link_report.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/fixtures/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/fixtures/enterprise_customer_reporting.json +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/reporter.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/send_enterprise_reports.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/tests/__init__.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/tests/test_clients.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/tests/test_delivery_method.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/tests/test_enterprise_client.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/tests/test_external_link_report.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/tests/test_reporter.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/tests/test_send_enterprise_reports.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/tests/test_utils.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/tests/test_vertica_client.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/tests/utils.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_reporting/utils.py +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/requirements/base.in +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/requirements/constraints.txt +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/requirements/django.txt +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/requirements/reporting.in +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/setup.cfg +0 -0
- {edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/setup.py +0 -0
@@ -15,6 +15,16 @@ Unreleased
|
|
15
15
|
----------
|
16
16
|
|
17
17
|
=========================
|
18
|
+
[5.0.0] - 2023-08-22
|
19
|
+
---------------------
|
20
|
+
* Rename `summary` to `learner_engagement` in `EnterpriseLearnerEnrollmentViewSet` response
|
21
|
+
|
22
|
+
|
23
|
+
[4.11.2] - 2023-08-18
|
24
|
+
---------------------
|
25
|
+
* Fix offer id filtering in `EnterpriseLearnerEnrollmentViewSet`
|
26
|
+
|
27
|
+
|
18
28
|
[4.11.1] - 2023-08-17
|
19
29
|
---------------------
|
20
30
|
* Add api filtering for `EnterpriseLearnerEnrollmentViewSet` for course_title or user_email
|
@@ -2,9 +2,9 @@
|
|
2
2
|
Views for enterprise api v1.
|
3
3
|
"""
|
4
4
|
|
5
|
-
|
6
5
|
from datetime import date, timedelta
|
7
6
|
from logging import getLogger
|
7
|
+
from uuid import UUID
|
8
8
|
|
9
9
|
from django_filters.rest_framework import DjangoFilterBackend
|
10
10
|
from edx_django_utils.cache import TieredCache
|
@@ -181,7 +181,7 @@ class EnterpriseLearnerEnrollmentViewSet(EnterpriseViewSetMixin, viewsets.ReadOn
|
|
181
181
|
|
182
182
|
offer_id = query_filters.get('offer_id')
|
183
183
|
if offer_id:
|
184
|
-
queryset =
|
184
|
+
queryset = self.filter_by_offer_id(queryset, offer_id)
|
185
185
|
|
186
186
|
ignore_null_course_list_price = query_filters.get('ignore_null_course_list_price')
|
187
187
|
if ignore_null_course_list_price:
|
@@ -197,6 +197,27 @@ class EnterpriseLearnerEnrollmentViewSet(EnterpriseViewSetMixin, viewsets.ReadOn
|
|
197
197
|
|
198
198
|
return queryset
|
199
199
|
|
200
|
+
def filter_by_offer_id(self, queryset, offer_id):
|
201
|
+
"""
|
202
|
+
Filter queryset by `offer_id`
|
203
|
+
"""
|
204
|
+
# offer_id field in table contains two types of data
|
205
|
+
# 1. integer
|
206
|
+
# 2. uuid
|
207
|
+
# In table, uuids are stored without hyphen and in lower case
|
208
|
+
# but api clients are sending uuids with hyphen and that causes the issue
|
209
|
+
# we need to remove the hyphens from uuid, convert the uuid to lower case and then do a compare in DB
|
210
|
+
|
211
|
+
# if offer_id is a uuid only then do the transformation
|
212
|
+
try:
|
213
|
+
offer_id_uuid_obj = UUID(offer_id, version=4)
|
214
|
+
offer_id = str(offer_id_uuid_obj)
|
215
|
+
offer_id = offer_id.replace('-', '')
|
216
|
+
except ValueError:
|
217
|
+
pass
|
218
|
+
|
219
|
+
return queryset.filter(offer_id=offer_id)
|
220
|
+
|
200
221
|
def filter_active_enrollments(self, queryset):
|
201
222
|
"""
|
202
223
|
Filters queryset to include enrollments with course date in future
|
@@ -471,7 +492,7 @@ class EnterpriseAdminInsightsView(APIView):
|
|
471
492
|
"""
|
472
493
|
response_data = {}
|
473
494
|
learner_progress = {}
|
474
|
-
|
495
|
+
learner_engagement = {}
|
475
496
|
|
476
497
|
try:
|
477
498
|
learner_progress = EnterpriseAdminLearnerProgress.objects.get(enterprise_customer_uuid=enterprise_id)
|
@@ -481,14 +502,14 @@ class EnterpriseAdminInsightsView(APIView):
|
|
481
502
|
pass
|
482
503
|
|
483
504
|
try:
|
484
|
-
|
485
|
-
|
486
|
-
response_data['
|
505
|
+
learner_engagement = EnterpriseAdminSummarizeInsights.objects.get(enterprise_customer_uuid=enterprise_id)
|
506
|
+
learner_engagement = serializers.EnterpriseAdminSummarizeInsightsSerializer(learner_engagement).data
|
507
|
+
response_data['learner_engagement'] = learner_engagement
|
487
508
|
except EnterpriseAdminSummarizeInsights.DoesNotExist:
|
488
509
|
pass
|
489
510
|
|
490
511
|
status = HTTP_200_OK
|
491
|
-
if learner_progress == {} and
|
512
|
+
if learner_progress == {} and learner_engagement == {}:
|
492
513
|
status = HTTP_404_NOT_FOUND
|
493
514
|
|
494
515
|
return Response(data=response_data, status=status)
|
{edx-enterprise-data-4.11.1 → edx-enterprise-data-5.0.0}/enterprise_data/tests/api/v1/test_views.py
RENAMED
@@ -338,7 +338,7 @@ class TestEnterpriseAdminInsightsView(JWTTestMixin, APITransactionTestCase):
|
|
338
338
|
learner_progress_obj = EnterpriseAdminLearnerProgressFactory.create(
|
339
339
|
enterprise_customer_uuid=enterprise_customer_uuid
|
340
340
|
)
|
341
|
-
|
341
|
+
learner_engagement_obj = EnterpriseAdminSummarizeInsightsFactory.create(
|
342
342
|
enterprise_customer_uuid=enterprise_customer_uuid
|
343
343
|
)
|
344
344
|
|
@@ -350,8 +350,8 @@ class TestEnterpriseAdminInsightsView(JWTTestMixin, APITransactionTestCase):
|
|
350
350
|
|
351
351
|
learner_progress = response_json['learner_progress']
|
352
352
|
self.verify_data(learner_progress, learner_progress_obj)
|
353
|
-
|
354
|
-
self.verify_data(
|
353
|
+
learner_engagement = response_json['learner_engagement']
|
354
|
+
self.verify_data(learner_engagement, learner_engagement_obj)
|
355
355
|
|
356
356
|
def test_retrieve_enterprise_admin_insights_no_data(self):
|
357
357
|
"""
|
@@ -12,22 +12,22 @@ asn1crypto==1.5.1
|
|
12
12
|
# via
|
13
13
|
# oscrypto
|
14
14
|
# snowflake-connector-python
|
15
|
-
awscli==1.
|
15
|
+
awscli==1.29.10
|
16
16
|
# via -r requirements/reporting.in
|
17
17
|
bcrypt==4.0.1
|
18
18
|
# via paramiko
|
19
19
|
billiard==3.6.4.0
|
20
20
|
# via celery
|
21
|
-
boto3==1.
|
21
|
+
boto3==1.28.10
|
22
22
|
# via -r requirements/reporting.in
|
23
|
-
botocore==1.
|
23
|
+
botocore==1.31.10
|
24
24
|
# via
|
25
25
|
# awscli
|
26
26
|
# boto3
|
27
27
|
# s3transfer
|
28
28
|
celery==4.4.7
|
29
29
|
# via -r requirements/reporting.in
|
30
|
-
certifi==2023.
|
30
|
+
certifi==2023.7.22
|
31
31
|
# via
|
32
32
|
# py2neo
|
33
33
|
# requests
|
@@ -37,11 +37,11 @@ cffi==1.15.1
|
|
37
37
|
# cryptography
|
38
38
|
# pynacl
|
39
39
|
# snowflake-connector-python
|
40
|
-
charset-normalizer==3.
|
40
|
+
charset-normalizer==3.2.0
|
41
41
|
# via
|
42
42
|
# requests
|
43
43
|
# snowflake-connector-python
|
44
|
-
click==8.1.
|
44
|
+
click==8.1.6
|
45
45
|
# via edx-django-utils
|
46
46
|
colorama==0.4.4
|
47
47
|
# via awscli
|
@@ -91,7 +91,7 @@ docutils==0.16
|
|
91
91
|
# via awscli
|
92
92
|
drf-jwt==1.19.2
|
93
93
|
# via edx-drf-extensions
|
94
|
-
edx-django-utils==5.
|
94
|
+
edx-django-utils==5.6.0
|
95
95
|
# via
|
96
96
|
# -r requirements/base.in
|
97
97
|
# edx-drf-extensions
|
@@ -108,9 +108,9 @@ edx-rbac==1.7.0
|
|
108
108
|
# via -r requirements/base.in
|
109
109
|
edx-rest-api-client==5.5.2
|
110
110
|
# via -r requirements/base.in
|
111
|
-
factory-boy==3.
|
111
|
+
factory-boy==3.3.0
|
112
112
|
# via -r requirements/base.in
|
113
|
-
faker==
|
113
|
+
faker==19.2.0
|
114
114
|
# via factory-boy
|
115
115
|
filelock==3.12.2
|
116
116
|
# via snowflake-connector-python
|
@@ -158,7 +158,7 @@ pycryptodomex==3.18.0
|
|
158
158
|
# via snowflake-connector-python
|
159
159
|
pygments==2.15.1
|
160
160
|
# via py2neo
|
161
|
-
pyjwt[crypto]==2.
|
161
|
+
pyjwt[crypto]==2.8.0
|
162
162
|
# via
|
163
163
|
# drf-jwt
|
164
164
|
# edx-drf-extensions
|
@@ -187,7 +187,7 @@ pytz==2023.3
|
|
187
187
|
# djangorestframework
|
188
188
|
# interchange
|
189
189
|
# snowflake-connector-python
|
190
|
-
pyyaml==
|
190
|
+
pyyaml==6.0.1
|
191
191
|
# via awscli
|
192
192
|
requests==2.31.0
|
193
193
|
# via
|
@@ -230,6 +230,7 @@ stevedore==5.1.0
|
|
230
230
|
typing-extensions==4.7.1
|
231
231
|
# via
|
232
232
|
# asgiref
|
233
|
+
# faker
|
233
234
|
# snowflake-connector-python
|
234
235
|
unicodecsv==0.14.1
|
235
236
|
# via -r requirements/reporting.in
|
@@ -6,7 +6,7 @@
|
|
6
6
|
#
|
7
7
|
coverage==7.2.7
|
8
8
|
# via -r requirements/ci.in
|
9
|
-
distlib==0.3.
|
9
|
+
distlib==0.3.7
|
10
10
|
# via virtualenv
|
11
11
|
filelock==3.12.2
|
12
12
|
# via
|
@@ -14,7 +14,7 @@ filelock==3.12.2
|
|
14
14
|
# virtualenv
|
15
15
|
packaging==23.1
|
16
16
|
# via tox
|
17
|
-
platformdirs==3.
|
17
|
+
platformdirs==3.9.1
|
18
18
|
# via virtualenv
|
19
19
|
pluggy==1.2.0
|
20
20
|
# via tox
|
@@ -31,5 +31,5 @@ tox==3.28.0
|
|
31
31
|
# tox-battery
|
32
32
|
tox-battery==0.6.1
|
33
33
|
# via -r requirements/ci.in
|
34
|
-
virtualenv==20.
|
34
|
+
virtualenv==20.24.2
|
35
35
|
# via tox
|
@@ -12,11 +12,11 @@ asn1crypto==1.5.1
|
|
12
12
|
# via
|
13
13
|
# oscrypto
|
14
14
|
# snowflake-connector-python
|
15
|
-
astroid==2.15.
|
15
|
+
astroid==2.15.6
|
16
16
|
# via
|
17
17
|
# pylint
|
18
18
|
# pylint-celery
|
19
|
-
awscli==1.
|
19
|
+
awscli==1.29.10
|
20
20
|
# via -r requirements/reporting.in
|
21
21
|
bcrypt==4.0.1
|
22
22
|
# via paramiko
|
@@ -24,9 +24,9 @@ billiard==3.6.4.0
|
|
24
24
|
# via celery
|
25
25
|
bleach==6.0.0
|
26
26
|
# via readme-renderer
|
27
|
-
boto3==1.
|
27
|
+
boto3==1.28.10
|
28
28
|
# via -r requirements/reporting.in
|
29
|
-
botocore==1.
|
29
|
+
botocore==1.31.10
|
30
30
|
# via
|
31
31
|
# awscli
|
32
32
|
# boto3
|
@@ -35,7 +35,7 @@ build==0.10.0
|
|
35
35
|
# via pip-tools
|
36
36
|
celery==4.4.7
|
37
37
|
# via -r requirements/reporting.in
|
38
|
-
certifi==2023.
|
38
|
+
certifi==2023.7.22
|
39
39
|
# via
|
40
40
|
# py2neo
|
41
41
|
# requests
|
@@ -47,11 +47,11 @@ cffi==1.15.1
|
|
47
47
|
# snowflake-connector-python
|
48
48
|
chardet==5.1.0
|
49
49
|
# via diff-cover
|
50
|
-
charset-normalizer==3.
|
50
|
+
charset-normalizer==3.2.0
|
51
51
|
# via
|
52
52
|
# requests
|
53
53
|
# snowflake-connector-python
|
54
|
-
click==8.1.
|
54
|
+
click==8.1.6
|
55
55
|
# via
|
56
56
|
# click-log
|
57
57
|
# code-annotations
|
@@ -60,7 +60,7 @@ click==8.1.3
|
|
60
60
|
# pip-tools
|
61
61
|
click-log==0.4.0
|
62
62
|
# via edx-lint
|
63
|
-
code-annotations==1.
|
63
|
+
code-annotations==1.5.0
|
64
64
|
# via edx-lint
|
65
65
|
colorama==0.4.4
|
66
66
|
# via awscli
|
@@ -72,12 +72,13 @@ cryptography==40.0.2
|
|
72
72
|
# pgpy
|
73
73
|
# pyjwt
|
74
74
|
# pyopenssl
|
75
|
+
# secretstorage
|
75
76
|
# snowflake-connector-python
|
76
|
-
diff-cover==7.
|
77
|
+
diff-cover==7.7.0
|
77
78
|
# via -r requirements/dev-enterprise_data.in
|
78
|
-
dill==0.3.
|
79
|
+
dill==0.3.7
|
79
80
|
# via pylint
|
80
|
-
distlib==0.3.
|
81
|
+
distlib==0.3.7
|
81
82
|
# via virtualenv
|
82
83
|
django==3.2.20
|
83
84
|
# via
|
@@ -119,7 +120,7 @@ docutils==0.16
|
|
119
120
|
# readme-renderer
|
120
121
|
drf-jwt==1.19.2
|
121
122
|
# via edx-drf-extensions
|
122
|
-
edx-django-utils==5.
|
123
|
+
edx-django-utils==5.6.0
|
123
124
|
# via
|
124
125
|
# -r requirements/base.in
|
125
126
|
# edx-drf-extensions
|
@@ -128,7 +129,7 @@ edx-drf-extensions==8.8.0
|
|
128
129
|
# via
|
129
130
|
# -r requirements/base.in
|
130
131
|
# edx-rbac
|
131
|
-
edx-i18n-tools==0.
|
132
|
+
edx-i18n-tools==1.0.0
|
132
133
|
# via -r requirements/dev-enterprise_data.in
|
133
134
|
edx-lint==5.3.4
|
134
135
|
# via
|
@@ -142,9 +143,9 @@ edx-rbac==1.7.0
|
|
142
143
|
# via -r requirements/base.in
|
143
144
|
edx-rest-api-client==5.5.2
|
144
145
|
# via -r requirements/base.in
|
145
|
-
factory-boy==3.
|
146
|
+
factory-boy==3.3.0
|
146
147
|
# via -r requirements/base.in
|
147
|
-
faker==
|
148
|
+
faker==19.2.0
|
148
149
|
# via factory-boy
|
149
150
|
filelock==3.12.2
|
150
151
|
# via
|
@@ -155,11 +156,11 @@ idna==3.4
|
|
155
156
|
# via
|
156
157
|
# requests
|
157
158
|
# snowflake-connector-python
|
158
|
-
importlib-metadata==6.
|
159
|
+
importlib-metadata==6.8.0
|
159
160
|
# via
|
160
161
|
# keyring
|
161
162
|
# twine
|
162
|
-
importlib-resources==
|
163
|
+
importlib-resources==6.0.0
|
163
164
|
# via keyring
|
164
165
|
interchange==2021.0.4
|
165
166
|
# via py2neo
|
@@ -167,8 +168,12 @@ isort==5.12.0
|
|
167
168
|
# via
|
168
169
|
# -r requirements/quality.in
|
169
170
|
# pylint
|
170
|
-
jaraco-classes==3.
|
171
|
+
jaraco-classes==3.3.0
|
171
172
|
# via keyring
|
173
|
+
jeepney==0.8.0
|
174
|
+
# via
|
175
|
+
# keyring
|
176
|
+
# secretstorage
|
172
177
|
jinja2==3.1.2
|
173
178
|
# via
|
174
179
|
# code-annotations
|
@@ -193,7 +198,7 @@ mdurl==0.1.2
|
|
193
198
|
# via markdown-it-py
|
194
199
|
monotonic==1.6
|
195
200
|
# via py2neo
|
196
|
-
more-itertools==
|
201
|
+
more-itertools==10.0.0
|
197
202
|
# via jaraco-classes
|
198
203
|
newrelic==8.8.1
|
199
204
|
# via edx-django-utils
|
@@ -209,17 +214,17 @@ pansi==2020.7.3
|
|
209
214
|
# via py2neo
|
210
215
|
paramiko==3.2.0
|
211
216
|
# via -r requirements/reporting.in
|
212
|
-
path==16.
|
217
|
+
path==16.7.1
|
213
218
|
# via edx-i18n-tools
|
214
219
|
pbr==5.11.1
|
215
220
|
# via stevedore
|
216
221
|
pgpy==0.6.0
|
217
222
|
# via -r requirements/reporting.in
|
218
|
-
pip-tools==
|
223
|
+
pip-tools==7.1.0
|
219
224
|
# via -r requirements/dev-enterprise_data.in
|
220
225
|
pkginfo==1.9.6
|
221
226
|
# via twine
|
222
|
-
platformdirs==3.
|
227
|
+
platformdirs==3.9.1
|
223
228
|
# via
|
224
229
|
# pylint
|
225
230
|
# virtualenv
|
@@ -253,7 +258,7 @@ pygments==2.15.1
|
|
253
258
|
# py2neo
|
254
259
|
# readme-renderer
|
255
260
|
# rich
|
256
|
-
pyjwt[crypto]==2.
|
261
|
+
pyjwt[crypto]==2.8.0
|
257
262
|
# via
|
258
263
|
# drf-jwt
|
259
264
|
# edx-drf-extensions
|
@@ -300,7 +305,7 @@ pytz==2023.3
|
|
300
305
|
# djangorestframework
|
301
306
|
# interchange
|
302
307
|
# snowflake-connector-python
|
303
|
-
pyyaml==
|
308
|
+
pyyaml==6.0.1
|
304
309
|
# via
|
305
310
|
# awscli
|
306
311
|
# code-annotations
|
@@ -330,6 +335,8 @@ s3transfer==0.6.1
|
|
330
335
|
# via
|
331
336
|
# awscli
|
332
337
|
# boto3
|
338
|
+
secretstorage==3.3.3
|
339
|
+
# via keyring
|
333
340
|
semantic-version==2.10.0
|
334
341
|
# via edx-drf-extensions
|
335
342
|
six==1.16.0
|
@@ -385,6 +392,7 @@ typing-extensions==4.7.1
|
|
385
392
|
# via
|
386
393
|
# asgiref
|
387
394
|
# astroid
|
395
|
+
# faker
|
388
396
|
# pylint
|
389
397
|
# rich
|
390
398
|
# snowflake-connector-python
|
@@ -403,17 +411,17 @@ vine==1.3.0
|
|
403
411
|
# via
|
404
412
|
# amqp
|
405
413
|
# celery
|
406
|
-
virtualenv==20.
|
414
|
+
virtualenv==20.24.2
|
407
415
|
# via tox
|
408
416
|
webencodings==0.5.1
|
409
417
|
# via bleach
|
410
|
-
wheel==0.
|
418
|
+
wheel==0.41.0
|
411
419
|
# via
|
412
420
|
# -r requirements/dev-enterprise_data.in
|
413
421
|
# pip-tools
|
414
422
|
wrapt==1.15.0
|
415
423
|
# via astroid
|
416
|
-
zipp==3.
|
424
|
+
zipp==3.16.2
|
417
425
|
# via
|
418
426
|
# importlib-metadata
|
419
427
|
# importlib-resources
|
@@ -4,11 +4,11 @@
|
|
4
4
|
#
|
5
5
|
# make upgrade
|
6
6
|
#
|
7
|
-
wheel==0.
|
7
|
+
wheel==0.41.0
|
8
8
|
# via -r requirements/pip.in
|
9
9
|
|
10
10
|
# The following packages are considered to be unsafe in a requirements file:
|
11
|
-
pip==23.1
|
11
|
+
pip==23.2.1
|
12
12
|
# via -r requirements/pip.in
|
13
13
|
setuptools==68.0.0
|
14
14
|
# via -r requirements/pip.in
|
@@ -6,11 +6,11 @@
|
|
6
6
|
#
|
7
7
|
build==0.10.0
|
8
8
|
# via pip-tools
|
9
|
-
click==8.1.
|
9
|
+
click==8.1.6
|
10
10
|
# via pip-tools
|
11
11
|
packaging==23.1
|
12
12
|
# via build
|
13
|
-
pip-tools==
|
13
|
+
pip-tools==7.1.0
|
14
14
|
# via -r requirements/pip_tools.in
|
15
15
|
pyproject-hooks==1.0.0
|
16
16
|
# via build
|
@@ -18,7 +18,7 @@ tomli==2.0.1
|
|
18
18
|
# via
|
19
19
|
# build
|
20
20
|
# pip-tools
|
21
|
-
wheel==0.
|
21
|
+
wheel==0.41.0
|
22
22
|
# via pip-tools
|
23
23
|
|
24
24
|
# The following packages are considered to be unsafe in a requirements file:
|