edx-enterprise-data 10.7.0__tar.gz → 10.7.1__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-10.7.0 → edx_enterprise_data-10.7.1}/CHANGELOG.rst +5 -0
- {edx_enterprise_data-10.7.0/edx_enterprise_data.egg-info → edx_enterprise_data-10.7.1}/PKG-INFO +11 -2
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1/edx_enterprise_data.egg-info}/PKG-INFO +11 -2
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/edx_enterprise_data.egg-info/SOURCES.txt +1 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/__init__.py +1 -1
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v1/serializers.py +14 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v1/urls.py +5 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v1/views/enterprise_admin.py +22 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v1/views/enterprise_learner.py +11 -2
- edx_enterprise_data-10.7.1/enterprise_data/migrations/0046_enterprisegroupmembership.py +36 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/models.py +44 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/test_models.py +27 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/test_utils.py +22 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/requirements/base.txt +11 -10
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/requirements/ci.txt +2 -2
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/requirements/common_constraints.txt +4 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/requirements/dev.txt +17 -16
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/requirements/pip.txt +1 -1
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/requirements/pip_tools.txt +1 -1
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/requirements/quality.txt +19 -18
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/requirements/test-master.txt +13 -12
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/requirements/test-reporting.txt +11 -10
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/requirements/test.txt +13 -12
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/LICENSE +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/MANIFEST.in +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/README.md +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/edx_enterprise_data.egg-info/dependency_links.txt +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/edx_enterprise_data.egg-info/not-zip-safe +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/edx_enterprise_data.egg-info/requires.txt +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/edx_enterprise_data.egg-info/top_level.txt +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/admin_analytics/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/admin_analytics/constants.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/admin_analytics/data_loaders.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/admin_analytics/database/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/admin_analytics/database/queries/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/admin_analytics/database/queries/fact_engagement_admin_dash.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/admin_analytics/database/queries/fact_enrollment_admin_dash.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/admin_analytics/database/queries/skills_daily_rollup_admin_dash.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/admin_analytics/database/tables/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/admin_analytics/database/tables/base.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/admin_analytics/database/tables/fact_engagement_admin_dash.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/admin_analytics/database/tables/fact_enrollment_admin_dash.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/admin_analytics/database/tables/skills_daily_rollup_admin_dash.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/admin_analytics/database/utils.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/urls.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v0/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v0/serializers.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v0/urls.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v0/views.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v1/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v1/views/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v1/views/analytics_completions.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v1/views/analytics_engagements.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v1/views/analytics_enrollments.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v1/views/analytics_leaderboard.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v1/views/base.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v1/views/enterprise_offers.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/apps.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/cache/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/cache/decorators.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/clients.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/constants.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/filters.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/fixtures/enterprise_enrollment.json +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/fixtures/enterprise_user.json +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/commands/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/commands/create_dummy_data.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/commands/create_dummy_data_lpr_v1.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/commands/create_enterprise_enrollment.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/commands/create_enterprise_learner_enrollment_lpr_v1.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/commands/create_enterprise_learner_lpr_v1.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/commands/create_enterprise_offer.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/commands/create_enterprise_user.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/commands/pre_warm_analytics_cache.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/commands/tests/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/commands/tests/test_create_dummy_data_lpr_v1.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/commands/tests/test_create_enterprise_enrollment.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/commands/tests/test_create_enterprise_learner_enrollment_lpr_v1.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/commands/tests/test_create_enterprise_learner_lpr_v1.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/commands/tests/test_create_enterprise_user.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/management/commands/tests/test_pre_warm_analytics_cache.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0001_initial.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0002_auto_20180430_1358.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0003_auto_20180501_0603.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0004_auto_20180501_0928.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0004_auto_20180508_1652.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0005_auto_20180524_2204.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0006_auto_20180612_0336.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0007_auto_20180612_0534.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0008_auto_20180614_0108.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0009_auto_20180628_1152.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0010_enterpriseenrollment_created.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0011_enterpriseuser.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0012_auto_20180831_1930.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0013_auto_20180831_1931.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0014_enterpriseuser_created.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0015_auto_20180907_1757.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0016_auto_20180924_2138.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0017_enterpriseenrollment_unenrollment_timestamp.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0018_enterprisedatafeaturerole_enterprisedataroleassignment.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0019_add_enterprise_data_feature_roles.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0020_add_role_based_access_control_switch.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0021_auto_20190329_1241.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0022_remove_role_based_access_control_switch.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0023_enterpriselearner_enterpriselearnerenrollment.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0024_auto_20210602_1811.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0025_auto_20210703_1854.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0026_auto_20210916_0414.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0027_enterpriselearnerenrollment_total_learning_time_seconds.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0028_enterpriselearnerenrollment_offer_id.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0029_enterpriseoffer.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0030_auto_20230609_1353.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0031_auto_20230615_0705.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0032_auto_20230704_0818.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0033_enterpriseadminlearnerprogress_enterpriseadminsummarizeinsights.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0034_auto_20230907_0834.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0035_auto_20230907_1154.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0036_enterprisesubsidybudget_subsidy_access_policy_display_name.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0037_alter_enterpriseenrollment_consent_granted.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0038_enterpriseoffer_export_timestamp.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0039_auto_20240212_1403.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0040_auto_20240718_0536_squashed_0043_alter_enterpriselearnerenrollment_enterprise_enrollment_id.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0044_enterpriseexecedlcmoduleperformance.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/0045_alter_enterpriseexecedlcmoduleperformance_options_and_more.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/migrations/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/paginators.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/renderers.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/settings/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/settings/test.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/signals.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/admin_analytics/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/admin_analytics/mock_analytics_data.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/admin_analytics/mock_enrollments.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/admin_analytics/test_analytics_engagements.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/admin_analytics/test_analytics_enrollments.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/admin_analytics/test_analytics_leaderboard.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/admin_analytics/test_data_loaders.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/admin_analytics/test_enterprise_completions.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/api/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/api/v0/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/api/v0/test_serializers.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/api/v1/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/api/v1/test_serializers.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/api/v1/test_views.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/api/v1/views/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/api/v1/views/test_enterprise_admin.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/factories.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/mixins.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/test_clients.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/test_filters.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/test_views.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/urls.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/utils.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/admin.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/apps.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/constants.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/migrations/0001_initial.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/migrations/0002_add_enterprise_data_feature_roles.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/migrations/0003_add_role_based_access_control_switch.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/migrations/0004_enterprisedataroleassignment_enterprise_id.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/migrations/0005_turn_on_role_based_access_control_switch.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/migrations/0006_remove_role_based_access_control_switch.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/migrations/0007_enterprisedataroleassignment_applies_to_all_contexts.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/migrations/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/models.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/rules.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/tests/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/tests/factories.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data_roles/tests/test_models.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/clients/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/clients/enterprise.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/clients/s3.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/clients/snowflake.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/clients/vertica.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/delivery_method.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/external_resource_link_report.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/fixtures/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/fixtures/enterprise_customer_reporting.json +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/reporter.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/send_enterprise_reports.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/tests/__init__.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/tests/test_clients.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/tests/test_delivery_method.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/tests/test_enterprise_client.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/tests/test_external_link_report.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/tests/test_reporter.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/tests/test_send_enterprise_reports.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/tests/test_utils.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/tests/test_vertica_client.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/tests/utils.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_reporting/utils.py +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/requirements/base.in +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/requirements/constraints.txt +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/requirements/django.txt +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/requirements/reporting.in +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/setup.cfg +0 -0
- {edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/setup.py +0 -0
@@ -16,6 +16,11 @@ Unreleased
|
|
16
16
|
|
17
17
|
=========================
|
18
18
|
|
19
|
+
[10.7.1] - 2025-01-07
|
20
|
+
---------------------
|
21
|
+
* feat: add group_membership table
|
22
|
+
* feat: add APIs to support LPR filtering for enterprise groups
|
23
|
+
|
19
24
|
[10.7.0] - 2024-12-24
|
20
25
|
---------------------
|
21
26
|
* feat: Added user's first and last name in the enterprise enrollments API and related DB table.
|
{edx_enterprise_data-10.7.0/edx_enterprise_data.egg-info → edx_enterprise_data-10.7.1}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: edx-enterprise-data
|
3
|
-
Version: 10.7.
|
3
|
+
Version: 10.7.1
|
4
4
|
Summary: Enterprise Reporting
|
5
5
|
Home-page: https://github.com/openedx/edx-enterprise-data
|
6
6
|
Author: edX
|
@@ -39,5 +39,14 @@ Requires-Dist: pyminizip; extra == "reporting"
|
|
39
39
|
Requires-Dist: snowflake-connector-python; extra == "reporting"
|
40
40
|
Requires-Dist: unicodecsv==0.14.1; extra == "reporting"
|
41
41
|
Requires-Dist: vertica-python; extra == "reporting"
|
42
|
+
Dynamic: author
|
43
|
+
Dynamic: author-email
|
44
|
+
Dynamic: classifier
|
45
|
+
Dynamic: description
|
46
|
+
Dynamic: home-page
|
47
|
+
Dynamic: license
|
48
|
+
Dynamic: provides-extra
|
49
|
+
Dynamic: requires-dist
|
50
|
+
Dynamic: summary
|
42
51
|
|
43
52
|
Tools and products related to providing access to Enterprise data.
|
{edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1/edx_enterprise_data.egg-info}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: edx-enterprise-data
|
3
|
-
Version: 10.7.
|
3
|
+
Version: 10.7.1
|
4
4
|
Summary: Enterprise Reporting
|
5
5
|
Home-page: https://github.com/openedx/edx-enterprise-data
|
6
6
|
Author: edX
|
@@ -39,5 +39,14 @@ Requires-Dist: pyminizip; extra == "reporting"
|
|
39
39
|
Requires-Dist: snowflake-connector-python; extra == "reporting"
|
40
40
|
Requires-Dist: unicodecsv==0.14.1; extra == "reporting"
|
41
41
|
Requires-Dist: vertica-python; extra == "reporting"
|
42
|
+
Dynamic: author
|
43
|
+
Dynamic: author-email
|
44
|
+
Dynamic: classifier
|
45
|
+
Dynamic: description
|
46
|
+
Dynamic: home-page
|
47
|
+
Dynamic: license
|
48
|
+
Dynamic: provides-extra
|
49
|
+
Dynamic: requires-dist
|
50
|
+
Dynamic: summary
|
42
51
|
|
43
52
|
Tools and products related to providing access to Enterprise data.
|
{edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/edx_enterprise_data.egg-info/SOURCES.txt
RENAMED
@@ -116,6 +116,7 @@ enterprise_data/migrations/0039_auto_20240212_1403.py
|
|
116
116
|
enterprise_data/migrations/0040_auto_20240718_0536_squashed_0043_alter_enterpriselearnerenrollment_enterprise_enrollment_id.py
|
117
117
|
enterprise_data/migrations/0044_enterpriseexecedlcmoduleperformance.py
|
118
118
|
enterprise_data/migrations/0045_alter_enterpriseexecedlcmoduleperformance_options_and_more.py
|
119
|
+
enterprise_data/migrations/0046_enterprisegroupmembership.py
|
119
120
|
enterprise_data/migrations/__init__.py
|
120
121
|
enterprise_data/settings/__init__.py
|
121
122
|
enterprise_data/settings/test.py
|
{edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/api/v1/serializers.py
RENAMED
@@ -10,6 +10,7 @@ from enterprise_data.models import (
|
|
10
10
|
EnterpriseAdminLearnerProgress,
|
11
11
|
EnterpriseAdminSummarizeInsights,
|
12
12
|
EnterpriseExecEdLCModulePerformance,
|
13
|
+
EnterpriseGroupMembership,
|
13
14
|
EnterpriseLearner,
|
14
15
|
EnterpriseLearnerEnrollment,
|
15
16
|
EnterpriseOffer,
|
@@ -253,6 +254,19 @@ class EnterpriseBudgetSerializer(serializers.ModelSerializer):
|
|
253
254
|
)
|
254
255
|
|
255
256
|
|
257
|
+
class EnterpriseGroupMembershipSerializer(serializers.ModelSerializer):
|
258
|
+
"""
|
259
|
+
Serializer for EnterpriseGroupMembership model.
|
260
|
+
"""
|
261
|
+
|
262
|
+
class Meta:
|
263
|
+
model = EnterpriseGroupMembership
|
264
|
+
fields = (
|
265
|
+
'enterprise_group_uuid',
|
266
|
+
'enterprise_group_name',
|
267
|
+
)
|
268
|
+
|
269
|
+
|
256
270
|
class AdvanceAnalyticsQueryParamSerializer(serializers.Serializer): # pylint: disable=abstract-method
|
257
271
|
"""Serializer for validating query params"""
|
258
272
|
RESPONSE_TYPES = [
|
@@ -101,6 +101,11 @@ urlpatterns = [
|
|
101
101
|
enterprise_admin_views.EnterpriseBudgetView.as_view(),
|
102
102
|
name='enterprise-budgets'
|
103
103
|
),
|
104
|
+
re_path(
|
105
|
+
fr'^enterprise/(?P<enterprise_uuid>{UUID4_REGEX})/groups',
|
106
|
+
enterprise_admin_views.EnterpriseGroupMembershipView.as_view(),
|
107
|
+
name='enterprise-groups'
|
108
|
+
),
|
104
109
|
]
|
105
110
|
|
106
111
|
urlpatterns += router.urls
|
@@ -21,6 +21,7 @@ from enterprise_data.models import (
|
|
21
21
|
EnterpriseAdminLearnerProgress,
|
22
22
|
EnterpriseAdminSummarizeInsights,
|
23
23
|
EnterpriseExecEdLCModulePerformance,
|
24
|
+
EnterpriseGroupMembership,
|
24
25
|
EnterpriseSubsidyBudget,
|
25
26
|
)
|
26
27
|
from enterprise_data.utils import timer
|
@@ -230,3 +231,24 @@ class EnterpriseBudgetView(APIView):
|
|
230
231
|
|
231
232
|
serializer = serializers.EnterpriseBudgetSerializer(budgets, many=True)
|
232
233
|
return Response(serializer.data)
|
234
|
+
|
235
|
+
|
236
|
+
class EnterpriseGroupMembershipView(APIView):
|
237
|
+
"""
|
238
|
+
View for getting Group Memberships information for an enterprise.
|
239
|
+
"""
|
240
|
+
authentication_classes = (JwtAuthentication,)
|
241
|
+
http_method_names = ["get"]
|
242
|
+
|
243
|
+
@permission_required("can_access_enterprise", fn=lambda request, enterprise_uuid: enterprise_uuid)
|
244
|
+
def get(self, request, enterprise_uuid):
|
245
|
+
"""
|
246
|
+
Returns the groups and budgets for an enterprise.
|
247
|
+
"""
|
248
|
+
groups = EnterpriseGroupMembership.objects.filter(
|
249
|
+
enterprise_customer_id=enterprise_uuid,
|
250
|
+
group_type='flex',
|
251
|
+
)
|
252
|
+
|
253
|
+
serializer = serializers.EnterpriseGroupMembershipSerializer(groups, many=True)
|
254
|
+
return Response(serializer.data)
|
@@ -12,7 +12,7 @@ from rest_framework.response import Response
|
|
12
12
|
|
13
13
|
from django.conf import settings
|
14
14
|
from django.core.paginator import Paginator
|
15
|
-
from django.db.models import Count, Max, OuterRef, Prefetch, Q, Subquery, Value
|
15
|
+
from django.db.models import Count, Exists, Max, OuterRef, Prefetch, Q, Subquery, Value
|
16
16
|
from django.db.models.fields import IntegerField
|
17
17
|
from django.db.models.functions import Coalesce
|
18
18
|
from django.http import StreamingHttpResponse
|
@@ -20,7 +20,7 @@ from django.utils import timezone
|
|
20
20
|
|
21
21
|
from enterprise_data.admin_analytics.database.utils import LOGGER
|
22
22
|
from enterprise_data.api.v1 import serializers
|
23
|
-
from enterprise_data.models import EnterpriseLearner, EnterpriseLearnerEnrollment
|
23
|
+
from enterprise_data.models import EnterpriseGroupMembership, EnterpriseLearner, EnterpriseLearnerEnrollment
|
24
24
|
from enterprise_data.paginators import EnterpriseEnrollmentsPagination
|
25
25
|
from enterprise_data.renderers import EnrollmentsCSVRenderer
|
26
26
|
from enterprise_data.utils import subtract_one_month
|
@@ -174,6 +174,15 @@ class EnterpriseLearnerEnrollmentViewSet(EnterpriseViewSetMixin, viewsets.ReadOn
|
|
174
174
|
if is_subsidy:
|
175
175
|
queryset = queryset.filter(is_subsidy=is_subsidy)
|
176
176
|
|
177
|
+
group_uuid = query_filters.get('group_uuid')
|
178
|
+
if group_uuid:
|
179
|
+
flex_group_exists = EnterpriseGroupMembership.objects.filter(
|
180
|
+
enterprise_customer_user_id=OuterRef('enterprise_user_id'),
|
181
|
+
enterprise_group_uuid=group_uuid,
|
182
|
+
group_type='flex'
|
183
|
+
)
|
184
|
+
queryset = queryset.filter(Exists(flex_group_exists))
|
185
|
+
|
177
186
|
return queryset
|
178
187
|
|
179
188
|
def filter_by_offer_id(self, queryset, offer_id):
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Generated by Django 4.2.16 on 2025-01-08 07:31
|
2
|
+
|
3
|
+
from django.db import migrations, models
|
4
|
+
|
5
|
+
|
6
|
+
class Migration(migrations.Migration):
|
7
|
+
|
8
|
+
dependencies = [
|
9
|
+
('enterprise_data', '0045_alter_enterpriseexecedlcmoduleperformance_options_and_more'),
|
10
|
+
]
|
11
|
+
|
12
|
+
operations = [
|
13
|
+
migrations.CreateModel(
|
14
|
+
name='EnterpriseGroupMembership',
|
15
|
+
fields=[
|
16
|
+
('group_membership_unique_id', models.CharField(max_length=64, primary_key=True, serialize=False)),
|
17
|
+
('is_applies_to_all_contexts', models.BooleanField(default=False)),
|
18
|
+
('enterprise_customer_id', models.UUIDField(db_index=True, null=True)),
|
19
|
+
('enterprise_group_name', models.CharField(max_length=255, null=True)),
|
20
|
+
('enterprise_group_uuid', models.UUIDField(null=True)),
|
21
|
+
('group_is_removed', models.BooleanField(default=False)),
|
22
|
+
('group_type', models.CharField(max_length=128, null=True)),
|
23
|
+
('activated_at', models.DateTimeField(null=True)),
|
24
|
+
('enterprise_customer_user_id', models.PositiveIntegerField(null=True)),
|
25
|
+
('membership_is_removed', models.BooleanField(default=False)),
|
26
|
+
('membership_status', models.CharField(max_length=128, null=True)),
|
27
|
+
('enterprise_group_membership_uuid', models.UUIDField(null=True)),
|
28
|
+
],
|
29
|
+
options={
|
30
|
+
'verbose_name': 'Group Membership',
|
31
|
+
'verbose_name_plural': 'Group Memberships',
|
32
|
+
'db_table': 'group_membership',
|
33
|
+
'indexes': [models.Index(fields=['enterprise_group_uuid', 'group_type', 'enterprise_customer_user_id'], name='group_membe_enterpr_796f48_idx')],
|
34
|
+
},
|
35
|
+
),
|
36
|
+
]
|
@@ -398,6 +398,50 @@ class EnterpriseSubsidyBudget(models.Model):
|
|
398
398
|
return self.__str__()
|
399
399
|
|
400
400
|
|
401
|
+
class EnterpriseGroupMembership(models.Model):
|
402
|
+
"""
|
403
|
+
Details of group memberships in enterprise reports.
|
404
|
+
"""
|
405
|
+
|
406
|
+
objects = EnterpriseReportingModelManager()
|
407
|
+
|
408
|
+
class Meta:
|
409
|
+
app_label = 'enterprise_data'
|
410
|
+
db_table = 'group_membership'
|
411
|
+
verbose_name = _("Group Membership")
|
412
|
+
verbose_name_plural = _("Group Memberships")
|
413
|
+
indexes = [
|
414
|
+
models.Index(fields=['enterprise_group_uuid', 'group_type', 'enterprise_customer_user_id']),
|
415
|
+
]
|
416
|
+
|
417
|
+
group_membership_unique_id = models.CharField(max_length=64, primary_key=True)
|
418
|
+
is_applies_to_all_contexts = models.BooleanField(default=False)
|
419
|
+
enterprise_customer_id = models.UUIDField(db_index=True, null=True)
|
420
|
+
enterprise_group_name = models.CharField(max_length=255, null=True)
|
421
|
+
enterprise_group_uuid = models.UUIDField(null=True)
|
422
|
+
group_is_removed = models.BooleanField(default=False)
|
423
|
+
group_type = models.CharField(max_length=128, null=True)
|
424
|
+
activated_at = models.DateTimeField(null=True)
|
425
|
+
enterprise_customer_user_id = models.PositiveIntegerField(null=True)
|
426
|
+
membership_is_removed = models.BooleanField(default=False)
|
427
|
+
membership_status = models.CharField(max_length=128, null=True)
|
428
|
+
enterprise_group_membership_uuid = models.UUIDField(null=True)
|
429
|
+
|
430
|
+
def __str__(self):
|
431
|
+
"""
|
432
|
+
Return a human-readable string representation of the object.
|
433
|
+
"""
|
434
|
+
return (f'<Enterprise Group Membership: {self.enterprise_group_name} '
|
435
|
+
f'(Group UUID: {self.enterprise_group_uuid}) '
|
436
|
+
f'for Customer ID {self.enterprise_customer_id}>')
|
437
|
+
|
438
|
+
def __repr__(self):
|
439
|
+
"""
|
440
|
+
Return uniquely identifying string representation.
|
441
|
+
"""
|
442
|
+
return self.__str__()
|
443
|
+
|
444
|
+
|
401
445
|
class EnterpriseUser(models.Model):
|
402
446
|
"""Information includes a mix of the user's meta data.
|
403
447
|
|
{edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/test_models.py
RENAMED
@@ -10,6 +10,7 @@ from pytest import mark
|
|
10
10
|
|
11
11
|
from enterprise_data.tests.test_utils import (
|
12
12
|
EnterpriseEnrollmentFactory,
|
13
|
+
EnterpriseGroupMembershipFactory,
|
13
14
|
EnterpriseOfferFactory,
|
14
15
|
EnterpriseSubsidyBudgetFactory,
|
15
16
|
EnterpriseUserFactory,
|
@@ -91,6 +92,32 @@ class TestEnterpriseSubsidyBudget(unittest.TestCase):
|
|
91
92
|
assert expected_str == method(self.enterprise_subsidy_budget)
|
92
93
|
|
93
94
|
|
95
|
+
@mark.django_db
|
96
|
+
@ddt.ddt
|
97
|
+
class TestEnterpriseGroupMembership(unittest.TestCase):
|
98
|
+
"""
|
99
|
+
Tests for Enterprise Group Membership model
|
100
|
+
"""
|
101
|
+
|
102
|
+
def setUp(self):
|
103
|
+
self.enterprise_group_membership = EnterpriseGroupMembershipFactory(
|
104
|
+
enterprise_customer_id='ee5e6b3a-069a-4947-bb8d-d2dbc323396c',
|
105
|
+
enterprise_group_name='Test Group',
|
106
|
+
enterprise_group_uuid='ee5e6b3a-069a-4947-bb8d-d2dbc323396d',
|
107
|
+
)
|
108
|
+
super().setUp()
|
109
|
+
|
110
|
+
@ddt.data(str, repr)
|
111
|
+
def test_string_conversion(self, method):
|
112
|
+
"""
|
113
|
+
Test conversion to string.
|
114
|
+
"""
|
115
|
+
expected_str = ('<Enterprise Group Membership: Test Group '
|
116
|
+
'(Group UUID: ee5e6b3a-069a-4947-bb8d-d2dbc323396d) '
|
117
|
+
'for Customer ID ee5e6b3a-069a-4947-bb8d-d2dbc323396c>')
|
118
|
+
assert expected_str == method(self.enterprise_group_membership)
|
119
|
+
|
120
|
+
|
94
121
|
@mark.django_db
|
95
122
|
@ddt.ddt
|
96
123
|
class TestEnterpriseUser(unittest.TestCase):
|
{edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/enterprise_data/tests/test_utils.py
RENAMED
@@ -14,6 +14,7 @@ from django.contrib.auth import get_user_model
|
|
14
14
|
|
15
15
|
from enterprise_data.models import (
|
16
16
|
EnterpriseEnrollment,
|
17
|
+
EnterpriseGroupMembership,
|
17
18
|
EnterpriseLearner,
|
18
19
|
EnterpriseLearnerEnrollment,
|
19
20
|
EnterpriseOffer,
|
@@ -288,6 +289,27 @@ class EnterpriseSubsidyBudgetFactory(factory.django.DjangoModelFactory):
|
|
288
289
|
)
|
289
290
|
|
290
291
|
|
292
|
+
class EnterpriseGroupMembershipFactory(factory.django.DjangoModelFactory):
|
293
|
+
"""
|
294
|
+
EnterpriseGroupMembership model Factory.
|
295
|
+
"""
|
296
|
+
class Meta:
|
297
|
+
model = EnterpriseGroupMembership
|
298
|
+
|
299
|
+
enterprise_customer_id = factory.LazyAttribute(lambda _: FAKER.uuid4())
|
300
|
+
enterprise_group_name = factory.LazyAttribute(lambda _: ' '.join(FAKER.words(nb=2)).title())
|
301
|
+
enterprise_group_uuid = factory.LazyAttribute(lambda _: FAKER.uuid4())
|
302
|
+
group_is_removed = factory.LazyAttribute(lambda _: FAKER.boolean())
|
303
|
+
group_type = factory.LazyAttribute(lambda _: 'budget')
|
304
|
+
activated_at = factory.LazyAttribute(lambda _: FAKER.date_time_this_decade(tzinfo=pytz.UTC))
|
305
|
+
enterprise_customer_user_id = factory.LazyAttribute(lambda _: FAKER.random_int(min=1, max=10000))
|
306
|
+
membership_is_removed = factory.LazyAttribute(lambda _: FAKER.boolean())
|
307
|
+
membership_status = factory.LazyAttribute(lambda _: FAKER.word())
|
308
|
+
enterprise_group_membership_uuid = factory.LazyAttribute(lambda _: FAKER.uuid4())
|
309
|
+
|
310
|
+
is_applies_to_all_contexts = factory.LazyAttribute(lambda _: FAKER.boolean())
|
311
|
+
|
312
|
+
|
291
313
|
class EnterpriseOfferFactory(factory.django.DjangoModelFactory):
|
292
314
|
"""
|
293
315
|
EnterpriseLearner model Factory.
|
@@ -10,15 +10,15 @@ asgiref==3.8.1
|
|
10
10
|
# via django
|
11
11
|
asn1crypto==1.5.1
|
12
12
|
# via snowflake-connector-python
|
13
|
-
awscli==1.36.
|
13
|
+
awscli==1.36.38
|
14
14
|
# via -r requirements/reporting.in
|
15
15
|
bcrypt==4.2.1
|
16
16
|
# via paramiko
|
17
17
|
billiard==4.2.1
|
18
18
|
# via celery
|
19
|
-
boto3==1.35.
|
19
|
+
boto3==1.35.97
|
20
20
|
# via -r requirements/reporting.in
|
21
|
-
botocore==1.35.
|
21
|
+
botocore==1.35.97
|
22
22
|
# via
|
23
23
|
# awscli
|
24
24
|
# boto3
|
@@ -35,11 +35,11 @@ cffi==1.17.1
|
|
35
35
|
# cryptography
|
36
36
|
# pynacl
|
37
37
|
# snowflake-connector-python
|
38
|
-
charset-normalizer==3.4.
|
38
|
+
charset-normalizer==3.4.1
|
39
39
|
# via
|
40
40
|
# requests
|
41
41
|
# snowflake-connector-python
|
42
|
-
click==8.1.
|
42
|
+
click==8.1.8
|
43
43
|
# via
|
44
44
|
# celery
|
45
45
|
# click-didyoumean
|
@@ -125,7 +125,7 @@ edx-rest-api-client==6.0.0
|
|
125
125
|
# via -r requirements/base.in
|
126
126
|
factory-boy==3.3.1
|
127
127
|
# via -r requirements/base.in
|
128
|
-
faker==33.1
|
128
|
+
faker==33.3.1
|
129
129
|
# via factory-boy
|
130
130
|
filelock==3.16.1
|
131
131
|
# via snowflake-connector-python
|
@@ -147,7 +147,7 @@ mysql-connector-python==9.1.0
|
|
147
147
|
# via -r requirements/base.in
|
148
148
|
newrelic==10.4.0
|
149
149
|
# via edx-django-utils
|
150
|
-
numpy==2.2.
|
150
|
+
numpy==2.2.1
|
151
151
|
# via
|
152
152
|
# -r requirements/base.in
|
153
153
|
# pandas
|
@@ -165,13 +165,13 @@ pbr==6.1.0
|
|
165
165
|
# via stevedore
|
166
166
|
pgpy==0.6.0
|
167
167
|
# via -r requirements/reporting.in
|
168
|
-
pillow==11.
|
168
|
+
pillow==11.1.0
|
169
169
|
# via pansi
|
170
170
|
platformdirs==4.3.6
|
171
171
|
# via snowflake-connector-python
|
172
172
|
prompt-toolkit==3.0.48
|
173
173
|
# via click-repl
|
174
|
-
psutil==6.1.
|
174
|
+
psutil==6.1.1
|
175
175
|
# via edx-django-utils
|
176
176
|
py2neo @ https://github.com/overhangio/py2neo/releases/download/2021.2.3/py2neo-2021.2.3.tar.gz
|
177
177
|
# via -r requirements/reporting.in
|
@@ -181,7 +181,7 @@ pyasn1==0.6.1
|
|
181
181
|
# rsa
|
182
182
|
pycparser==2.22
|
183
183
|
# via cffi
|
184
|
-
pygments==2.
|
184
|
+
pygments==2.19.1
|
185
185
|
# via py2neo
|
186
186
|
pyjwt[crypto]==2.10.1
|
187
187
|
# via
|
@@ -262,6 +262,7 @@ unicodecsv==0.14.1
|
|
262
262
|
# via -r requirements/reporting.in
|
263
263
|
urllib3==2.2.3
|
264
264
|
# via
|
265
|
+
# -c /home/runner/work/edx-enterprise-data/edx-enterprise-data/requirements/common_constraints.txt
|
265
266
|
# botocore
|
266
267
|
# py2neo
|
267
268
|
# requests
|
@@ -10,7 +10,7 @@ chardet==5.2.0
|
|
10
10
|
# via tox
|
11
11
|
colorama==0.4.6
|
12
12
|
# via tox
|
13
|
-
coverage==7.6.
|
13
|
+
coverage==7.6.10
|
14
14
|
# via -r requirements/ci.in
|
15
15
|
distlib==0.3.9
|
16
16
|
# via virtualenv
|
@@ -32,5 +32,5 @@ pyproject-api==1.8.0
|
|
32
32
|
# via tox
|
33
33
|
tox==4.23.2
|
34
34
|
# via -r requirements/ci.in
|
35
|
-
virtualenv==20.28.
|
35
|
+
virtualenv==20.28.1
|
36
36
|
# via tox
|
{edx_enterprise_data-10.7.0 → edx_enterprise_data-10.7.1}/requirements/common_constraints.txt
RENAMED
@@ -26,3 +26,7 @@ django-simple-history==3.0.0
|
|
26
26
|
# Cause: https://github.com/openedx/edx-lint/issues/458
|
27
27
|
# This can be unpinned once https://github.com/openedx/edx-lint/issues/459 has been resolved.
|
28
28
|
pip<24.3
|
29
|
+
|
30
|
+
# Cause: https://github.com/openedx/edx-lint/issues/475
|
31
|
+
# This can be unpinned once https://github.com/openedx/edx-lint/issues/476 has been resolved.
|
32
|
+
urllib3<2.3.0
|
@@ -10,19 +10,19 @@ asgiref==3.8.1
|
|
10
10
|
# via django
|
11
11
|
asn1crypto==1.5.1
|
12
12
|
# via snowflake-connector-python
|
13
|
-
astroid==3.3.
|
13
|
+
astroid==3.3.8
|
14
14
|
# via
|
15
15
|
# pylint
|
16
16
|
# pylint-celery
|
17
|
-
awscli==1.36.
|
17
|
+
awscli==1.36.38
|
18
18
|
# via -r requirements/reporting.in
|
19
19
|
bcrypt==4.2.1
|
20
20
|
# via paramiko
|
21
21
|
billiard==4.2.1
|
22
22
|
# via celery
|
23
|
-
boto3==1.35.
|
23
|
+
boto3==1.35.97
|
24
24
|
# via -r requirements/reporting.in
|
25
|
-
botocore==1.35.
|
25
|
+
botocore==1.35.97
|
26
26
|
# via
|
27
27
|
# awscli
|
28
28
|
# boto3
|
@@ -47,11 +47,11 @@ chardet==5.2.0
|
|
47
47
|
# via
|
48
48
|
# diff-cover
|
49
49
|
# tox
|
50
|
-
charset-normalizer==3.4.
|
50
|
+
charset-normalizer==3.4.1
|
51
51
|
# via
|
52
52
|
# requests
|
53
53
|
# snowflake-connector-python
|
54
|
-
click==8.1.
|
54
|
+
click==8.1.8
|
55
55
|
# via
|
56
56
|
# celery
|
57
57
|
# click-didyoumean
|
@@ -163,7 +163,7 @@ edx-rest-api-client==6.0.0
|
|
163
163
|
# via -r requirements/base.in
|
164
164
|
factory-boy==3.3.1
|
165
165
|
# via -r requirements/base.in
|
166
|
-
faker==33.1
|
166
|
+
faker==33.3.1
|
167
167
|
# via factory-boy
|
168
168
|
filelock==3.16.1
|
169
169
|
# via
|
@@ -190,7 +190,7 @@ jeepney==0.8.0
|
|
190
190
|
# via
|
191
191
|
# keyring
|
192
192
|
# secretstorage
|
193
|
-
jinja2==3.1.
|
193
|
+
jinja2==3.1.5
|
194
194
|
# via
|
195
195
|
# code-annotations
|
196
196
|
# diff-cover
|
@@ -198,7 +198,7 @@ jmespath==1.0.1
|
|
198
198
|
# via
|
199
199
|
# boto3
|
200
200
|
# botocore
|
201
|
-
keyring==25.
|
201
|
+
keyring==25.6.0
|
202
202
|
# via twine
|
203
203
|
kombu==5.4.2
|
204
204
|
# via celery
|
@@ -226,9 +226,9 @@ mysql-connector-python==9.1.0
|
|
226
226
|
# via -r requirements/base.in
|
227
227
|
newrelic==10.4.0
|
228
228
|
# via edx-django-utils
|
229
|
-
nh3==0.2.
|
229
|
+
nh3==0.2.20
|
230
230
|
# via readme-renderer
|
231
|
-
numpy==2.2.
|
231
|
+
numpy==2.2.1
|
232
232
|
# via
|
233
233
|
# -r requirements/base.in
|
234
234
|
# pandas
|
@@ -252,7 +252,7 @@ pbr==6.1.0
|
|
252
252
|
# via stevedore
|
253
253
|
pgpy==0.6.0
|
254
254
|
# via -r requirements/reporting.in
|
255
|
-
pillow==11.
|
255
|
+
pillow==11.1.0
|
256
256
|
# via pansi
|
257
257
|
pip-tools==7.4.1
|
258
258
|
# via -r requirements/dev-enterprise_data.in
|
@@ -272,7 +272,7 @@ polib==1.2.0
|
|
272
272
|
# via edx-i18n-tools
|
273
273
|
prompt-toolkit==3.0.48
|
274
274
|
# via click-repl
|
275
|
-
psutil==6.1.
|
275
|
+
psutil==6.1.1
|
276
276
|
# via edx-django-utils
|
277
277
|
py2neo @ https://github.com/overhangio/py2neo/releases/download/2021.2.3/py2neo-2021.2.3.tar.gz
|
278
278
|
# via -r requirements/reporting.in
|
@@ -286,7 +286,7 @@ pycparser==2.22
|
|
286
286
|
# via cffi
|
287
287
|
pydocstyle==6.3.0
|
288
288
|
# via -r requirements/quality.in
|
289
|
-
pygments==2.
|
289
|
+
pygments==2.19.1
|
290
290
|
# via
|
291
291
|
# diff-cover
|
292
292
|
# py2neo
|
@@ -298,7 +298,7 @@ pyjwt[crypto]==2.10.1
|
|
298
298
|
# edx-drf-extensions
|
299
299
|
# edx-rest-api-client
|
300
300
|
# snowflake-connector-python
|
301
|
-
pylint==3.3.
|
301
|
+
pylint==3.3.3
|
302
302
|
# via
|
303
303
|
# edx-lint
|
304
304
|
# pylint-celery
|
@@ -422,6 +422,7 @@ unicodecsv==0.14.1
|
|
422
422
|
# via -r requirements/reporting.in
|
423
423
|
urllib3==2.2.3
|
424
424
|
# via
|
425
|
+
# -c /home/runner/work/edx-enterprise-data/edx-enterprise-data/requirements/common_constraints.txt
|
425
426
|
# botocore
|
426
427
|
# py2neo
|
427
428
|
# requests
|
@@ -433,7 +434,7 @@ vine==5.1.0
|
|
433
434
|
# amqp
|
434
435
|
# celery
|
435
436
|
# kombu
|
436
|
-
virtualenv==20.28.
|
437
|
+
virtualenv==20.28.1
|
437
438
|
# via tox
|
438
439
|
wcwidth==0.2.13
|
439
440
|
# via prompt-toolkit
|