edx-enterprise-data 9.7.6__py3-none-any.whl → 9.7.7__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.6.dist-info → edx_enterprise_data-9.7.7.dist-info}/METADATA +1 -1
- {edx_enterprise_data-9.7.6.dist-info → edx_enterprise_data-9.7.7.dist-info}/RECORD +13 -12
- enterprise_data/__init__.py +1 -1
- enterprise_data/api/v1/serializers.py +3 -3
- enterprise_data/api/v1/views/enterprise_learner.py +3 -3
- enterprise_data/management/commands/tests/test_create_enterprise_learner_enrollment_lpr_v1.py +4 -0
- enterprise_data/migrations/0045_alter_enterpriseexecedlcmoduleperformance_options_and_more.py +27 -0
- enterprise_data/models.py +2 -0
- enterprise_data/renderers.py +3 -3
- enterprise_data/tests/test_utils.py +4 -0
- {edx_enterprise_data-9.7.6.dist-info → edx_enterprise_data-9.7.7.dist-info}/LICENSE +0 -0
- {edx_enterprise_data-9.7.6.dist-info → edx_enterprise_data-9.7.7.dist-info}/WHEEL +0 -0
- {edx_enterprise_data-9.7.6.dist-info → edx_enterprise_data-9.7.7.dist-info}/top_level.txt +0 -0
@@ -1,11 +1,11 @@
|
|
1
|
-
enterprise_data/__init__.py,sha256=
|
1
|
+
enterprise_data/__init__.py,sha256=0V2FoMjdqdwLqKUfxvwfoV_WKj5_Spo97Sr9NTyq1VI,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
|
5
5
|
enterprise_data/filters.py,sha256=D2EiK12MMpBoz6eOUmTpoJEhj_sH7bA93NRRAdvkDVo,6163
|
6
|
-
enterprise_data/models.py,sha256=
|
6
|
+
enterprise_data/models.py,sha256=7j8b8lgORZTQC9frG4CpfHTRvTgUvBTThemz6JPGCb0,24559
|
7
7
|
enterprise_data/paginators.py,sha256=YPrC5TeXFt-ymenT2H8H2nCbDCnAzJQlH9kFPElRxWE,269
|
8
|
-
enterprise_data/renderers.py,sha256=
|
8
|
+
enterprise_data/renderers.py,sha256=qggCLZklL9ohVcLHLO1pSecPJSDCCR7e_-PVobl9Lj8,3063
|
9
9
|
enterprise_data/signals.py,sha256=8eqNPnlvmfsKf19lGWv5xTIuBgQIqR8EZSp9UYzC8Rc,1024
|
10
10
|
enterprise_data/urls.py,sha256=bqtKF5OEWEwrNmHG3os-pZNuNsmjlhxEqp7yM4TbPf4,243
|
11
11
|
enterprise_data/utils.py,sha256=sDrpBd62DpybCV41QCxRUaCuvch3qKjEhfUp9cA_GV0,2952
|
@@ -30,7 +30,7 @@ enterprise_data/api/v0/serializers.py,sha256=dngZTk6DhRxApchQKCMp1B_c8aVnQtH0NCq
|
|
30
30
|
enterprise_data/api/v0/urls.py,sha256=vzJjqIo_S3AXWs9Us8XTaJc3FnxLbYzAkmLyuDQqum0,699
|
31
31
|
enterprise_data/api/v0/views.py,sha256=4RslZ4NZOU-844bnebEQ71ji2utRY7jEijqC45oQQD0,14380
|
32
32
|
enterprise_data/api/v1/__init__.py,sha256=1aAzAYU5hk-RW6cKUxa1645cbZMxn7GIZ7OMjWc9MKI,46
|
33
|
-
enterprise_data/api/v1/serializers.py,sha256=
|
33
|
+
enterprise_data/api/v1/serializers.py,sha256=C7X_f2J2RmqdGPmy9KFQQyGOli98kGeSsPDBG9kDk3A,10939
|
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
36
|
enterprise_data/api/v1/views/analytics_completions.py,sha256=esFbJ5q8ssnm2Mfbc3rZXtiGHF-MeM4KQ4Ft3N7wwHU,6260
|
@@ -39,7 +39,7 @@ enterprise_data/api/v1/views/analytics_enrollments.py,sha256=hw87VZ0hFWpwf3QEHFn
|
|
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
|
42
|
-
enterprise_data/api/v1/views/enterprise_learner.py,sha256=
|
42
|
+
enterprise_data/api/v1/views/enterprise_learner.py,sha256=XYoNQ9Ir12B9seGcs2LadWgeee3j5UTTAztZROcSy4U,18201
|
43
43
|
enterprise_data/api/v1/views/enterprise_offers.py,sha256=VifxgqTLFLVw4extYPlHcN1N_yjXcsYsAlYEnAbpb10,1266
|
44
44
|
enterprise_data/cache/__init__.py,sha256=fiBUploll1kmDy2vCmnNpeZVTD4ewsgtRF14vVs0Rb4,1850
|
45
45
|
enterprise_data/cache/decorators.py,sha256=vLbXK9VSv-HzVkkXS1-TkuSMxudwyxz04WFsAXqmjuM,1273
|
@@ -58,7 +58,7 @@ enterprise_data/management/commands/pre_warm_analytics_cache.py,sha256=3MCThZiZg
|
|
58
58
|
enterprise_data/management/commands/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
59
59
|
enterprise_data/management/commands/tests/test_create_dummy_data_lpr_v1.py,sha256=wt9fqAFKQVTqllpZ42dch-n31JavUifUIB9CKNYcnYM,1086
|
60
60
|
enterprise_data/management/commands/tests/test_create_enterprise_enrollment.py,sha256=5CABLk8qAx8RP8mrFtnbJ4-xVkf9-5Mq6iQcx8jBfFc,1742
|
61
|
-
enterprise_data/management/commands/tests/test_create_enterprise_learner_enrollment_lpr_v1.py,sha256=
|
61
|
+
enterprise_data/management/commands/tests/test_create_enterprise_learner_enrollment_lpr_v1.py,sha256=cw8PTUhwkFZeI3agCRLRMxKBRO6k1Ukft2CJIRUUMoY,4139
|
62
62
|
enterprise_data/management/commands/tests/test_create_enterprise_learner_lpr_v1.py,sha256=P7wyyaZ4LMWv1umpCThp4By5DWjtI7kYAmY0AeuY2XI,1637
|
63
63
|
enterprise_data/management/commands/tests/test_create_enterprise_user.py,sha256=0uxG332-jYpaxUIrMtIVRTwvRfxTWEQBIwZlIQO7f2g,1469
|
64
64
|
enterprise_data/management/commands/tests/test_pre_warm_analytics_cache.py,sha256=Nbwsl5CYMbi5cN2IwmUtTs5b_MeU6T0lquk3x8Tuh_4,2108
|
@@ -104,6 +104,7 @@ enterprise_data/migrations/0038_enterpriseoffer_export_timestamp.py,sha256=8St3D
|
|
104
104
|
enterprise_data/migrations/0039_auto_20240212_1403.py,sha256=rMiJcYx26ZGqPdQzgiWkUgbcRhD-tp9BgXdgt67vC2Q,1002
|
105
105
|
enterprise_data/migrations/0040_auto_20240718_0536_squashed_0043_alter_enterpriselearnerenrollment_enterprise_enrollment_id.py,sha256=Kq_ResqoAsJjtyIysHjs4VaDxNh6p4fPMMyh93GIJxA,1693
|
106
106
|
enterprise_data/migrations/0044_enterpriseexecedlcmoduleperformance.py,sha256=1aJ0wIu9K2cT3AJdBIHuNCUpJysPWmq_37Ucp5ntEO8,6122
|
107
|
+
enterprise_data/migrations/0045_alter_enterpriseexecedlcmoduleperformance_options_and_more.py,sha256=HJkY2OvuE39ciWgaEescd--ixQhTVrwzbL0_bvNofSo,876
|
107
108
|
enterprise_data/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
108
109
|
enterprise_data/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
109
110
|
enterprise_data/settings/test.py,sha256=4-flfrlf81AthGx9wTaT5PscyoOWyhsDDqbzBl-z7Eg,4191
|
@@ -113,7 +114,7 @@ enterprise_data/tests/mixins.py,sha256=YifptI9mtOhAWnBGyPUy4kX5OJNSDP3DvW2vb1E2t
|
|
113
114
|
enterprise_data/tests/test_clients.py,sha256=xBPHF9cgEFqNJoL4klOoYh_sVS3scZGcX0Ltc9Ghp7A,6336
|
114
115
|
enterprise_data/tests/test_filters.py,sha256=ZBbLl9Sgj5mJ7lTWoaFcEPwuxPDpIbMo2n_Fhurc0T8,7263
|
115
116
|
enterprise_data/tests/test_models.py,sha256=MWBY-LY5TPBjZ4GlvpM-h4W-BvRKr2Rml8Bzg1NPZ9M,3234
|
116
|
-
enterprise_data/tests/test_utils.py,sha256=
|
117
|
+
enterprise_data/tests/test_utils.py,sha256=k3ha4V9fM2jd98r0SIOWr5umMEG0YbVKJVbtq4zXXmw,18572
|
117
118
|
enterprise_data/tests/test_views.py,sha256=UvDRNTxruy5zBK_KgUy2cBMbwlaTW_vkM0-TCXbQZiY,69667
|
118
119
|
enterprise_data/tests/admin_analytics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
119
120
|
enterprise_data/tests/admin_analytics/mock_analytics_data.py,sha256=qN73YxoD1kAtKsQo94avR0DGMCsJClrpqFxxYC6reqE,15248
|
@@ -171,8 +172,8 @@ enterprise_reporting/tests/test_send_enterprise_reports.py,sha256=WtL-RqGgu2x5PP
|
|
171
172
|
enterprise_reporting/tests/test_utils.py,sha256=Zt_TA0LVb-B6fQGkUkAKKVlUKKnQh8jnw1US1jKe7g8,9493
|
172
173
|
enterprise_reporting/tests/test_vertica_client.py,sha256=-R2yNCGUjRtoXwLMBloVFQkFYrJoo613VCr61gwI3kQ,140
|
173
174
|
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.
|
175
|
+
edx_enterprise_data-9.7.7.dist-info/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
|
176
|
+
edx_enterprise_data-9.7.7.dist-info/METADATA,sha256=h4Cbqq6t-RRfUlkLljnkG-5_vso_M_4uBdLL6C4I-K8,1569
|
177
|
+
edx_enterprise_data-9.7.7.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
178
|
+
edx_enterprise_data-9.7.7.dist-info/top_level.txt,sha256=f5F2kU-dob6MqiHJpgZkFzoCD5VMhsdpkTV5n9Tvq3I,59
|
179
|
+
edx_enterprise_data-9.7.7.dist-info/RECORD,,
|
enterprise_data/__init__.py
CHANGED
@@ -41,9 +41,9 @@ class EnterpriseLearnerEnrollmentSerializer(serializers.ModelSerializer):
|
|
41
41
|
'course_primary_program', 'primary_program_type', 'course_primary_subject', 'has_passed',
|
42
42
|
'last_activity_date', 'progress_status', 'passed_date', 'current_grade',
|
43
43
|
'letter_grade', 'enterprise_user_id', 'user_email', 'user_account_creation_date',
|
44
|
-
'user_country_code', 'user_username', '
|
45
|
-
'enterprise_sso_uid', 'created', 'course_api_url', 'total_learning_time_hours',
|
46
|
-
'course_product_line', 'budget_id', 'enterprise_group_name', 'enterprise_group_uuid',
|
44
|
+
'user_country_code', 'user_username', 'user_first_name', 'user_last_name', 'enterprise_name',
|
45
|
+
'enterprise_customer_uuid', 'enterprise_sso_uid', 'created', 'course_api_url', 'total_learning_time_hours',
|
46
|
+
'is_subsidy', 'course_product_line', 'budget_id', 'enterprise_group_name', 'enterprise_group_uuid',
|
47
47
|
)
|
48
48
|
|
49
49
|
def get_course_api_url(self, obj):
|
@@ -59,9 +59,9 @@ class EnterpriseLearnerEnrollmentViewSet(EnterpriseViewSetMixin, viewsets.ReadOn
|
|
59
59
|
'course_primary_program', 'primary_program_type', 'course_primary_subject', 'has_passed',
|
60
60
|
'last_activity_date', 'progress_status', 'passed_date', 'current_grade',
|
61
61
|
'letter_grade', 'enterprise_user_id', 'user_email', 'user_account_creation_date',
|
62
|
-
'user_country_code', 'user_username', '
|
63
|
-
'enterprise_sso_uid', 'created', 'course_api_url', 'total_learning_time_hours',
|
64
|
-
'course_product_line', 'budget_id'
|
62
|
+
'user_country_code', 'user_username', 'user_first_name', 'user_last_name', 'enterprise_name',
|
63
|
+
'enterprise_customer_uuid', 'enterprise_sso_uid', 'created', 'course_api_url', 'total_learning_time_hours',
|
64
|
+
'is_subsidy', 'course_product_line', 'budget_id',
|
65
65
|
]
|
66
66
|
|
67
67
|
# TODO: Remove after we release the streaming csv changes
|
enterprise_data/management/commands/tests/test_create_enterprise_learner_enrollment_lpr_v1.py
CHANGED
@@ -39,6 +39,8 @@ class TestCreateEnterpriseLearnerEnrollmentCommand(TestCase):
|
|
39
39
|
assert enterprise_learner_enrollment[0].letter_grade is None
|
40
40
|
assert enterprise_learner_enrollment[0].enterprise_user_id is None
|
41
41
|
assert enterprise_learner_enrollment[0].user_username is None
|
42
|
+
assert enterprise_learner_enrollment[0].user_first_name is None
|
43
|
+
assert enterprise_learner_enrollment[0].user_last_name is None
|
42
44
|
assert enterprise_learner_enrollment[0].user_email is None
|
43
45
|
assert enterprise_learner_enrollment[0].enterprise_user is None
|
44
46
|
|
@@ -62,6 +64,8 @@ class TestCreateEnterpriseLearnerEnrollmentCommand(TestCase):
|
|
62
64
|
assert enterprise_learner_enrollment[0].progress_status is not None
|
63
65
|
assert enterprise_learner_enrollment[0].enterprise_user_id is not None
|
64
66
|
assert enterprise_learner_enrollment[0].user_username is not None
|
67
|
+
assert enterprise_learner_enrollment[0].user_first_name is not None
|
68
|
+
assert enterprise_learner_enrollment[0].user_last_name is not None
|
65
69
|
assert enterprise_learner_enrollment[0].enterprise_user is not None
|
66
70
|
assert enterprise_learner_enrollment[0].user_email is not None
|
67
71
|
assert EnterpriseLearner.objects.count() == 1
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# Generated by Django 4.2.15 on 2024-12-23 12:55
|
2
|
+
|
3
|
+
from django.db import migrations, models
|
4
|
+
|
5
|
+
|
6
|
+
class Migration(migrations.Migration):
|
7
|
+
|
8
|
+
dependencies = [
|
9
|
+
('enterprise_data', '0044_enterpriseexecedlcmoduleperformance'),
|
10
|
+
]
|
11
|
+
|
12
|
+
operations = [
|
13
|
+
migrations.AlterModelOptions(
|
14
|
+
name='enterpriseexecedlcmoduleperformance',
|
15
|
+
options={'verbose_name': 'Exec Ed LC Module Performance', 'verbose_name_plural': 'Exec Ed LC Module Performance'},
|
16
|
+
),
|
17
|
+
migrations.AddField(
|
18
|
+
model_name='enterpriselearnerenrollment',
|
19
|
+
name='user_first_name',
|
20
|
+
field=models.CharField(max_length=255, null=True),
|
21
|
+
),
|
22
|
+
migrations.AddField(
|
23
|
+
model_name='enterpriselearnerenrollment',
|
24
|
+
name='user_last_name',
|
25
|
+
field=models.CharField(max_length=255, null=True),
|
26
|
+
),
|
27
|
+
]
|
enterprise_data/models.py
CHANGED
@@ -128,6 +128,8 @@ class EnterpriseLearnerEnrollment(models.Model):
|
|
128
128
|
user_account_creation_date = models.DateTimeField(null=True)
|
129
129
|
user_country_code = models.CharField(max_length=2, null=True)
|
130
130
|
user_username = models.CharField(max_length=255, null=True)
|
131
|
+
user_first_name = models.CharField(max_length=255, null=True)
|
132
|
+
user_last_name = models.CharField(max_length=255, null=True)
|
131
133
|
enterprise_name = models.CharField(max_length=255, db_index=True, null=False)
|
132
134
|
enterprise_customer_uuid = models.UUIDField(db_index=True, null=False)
|
133
135
|
enterprise_sso_uid = models.CharField(max_length=255, null=True)
|
enterprise_data/renderers.py
CHANGED
@@ -25,9 +25,9 @@ class EnrollmentsCSVRenderer(CSVStreamingRenderer):
|
|
25
25
|
'course_primary_program', 'primary_program_type', 'course_primary_subject', 'has_passed',
|
26
26
|
'last_activity_date', 'progress_status', 'passed_date', 'current_grade',
|
27
27
|
'letter_grade', 'enterprise_user_id', 'user_email', 'user_account_creation_date',
|
28
|
-
'user_country_code', 'user_username', '
|
29
|
-
'enterprise_sso_uid', 'created', 'course_api_url', 'total_learning_time_hours',
|
30
|
-
'course_product_line', 'budget_id', 'enterprise_group_name', 'enterprise_group_uuid',
|
28
|
+
'user_country_code', 'user_username', 'user_first_name', 'user_last_name', 'enterprise_name',
|
29
|
+
'enterprise_customer_uuid', 'enterprise_sso_uid', 'created', 'course_api_url', 'total_learning_time_hours',
|
30
|
+
'is_subsidy', 'course_product_line', 'budget_id', 'enterprise_group_name', 'enterprise_group_uuid',
|
31
31
|
]
|
32
32
|
|
33
33
|
|
@@ -180,6 +180,8 @@ class EnterpriseLearnerEnrollmentFactory(factory.django.DjangoModelFactory):
|
|
180
180
|
enterprise_user_id = factory.Sequence(lambda n: n)
|
181
181
|
user_email = factory.lazy_attribute(lambda x: FAKER.email()) # pylint: disable=no-member
|
182
182
|
user_username = factory.Sequence('robot{}'.format)
|
183
|
+
user_first_name = factory.Sequence('Robot First {}'.format)
|
184
|
+
user_last_name = factory.Sequence('Robot Last {}'.format)
|
183
185
|
user_account_creation_date = factory.lazy_attribute(lambda x: '2018-01-01')
|
184
186
|
user_country_code = factory.lazy_attribute(lambda x: FAKER.country_code())
|
185
187
|
is_subsidy = factory.lazy_attribute(lambda x: FAKER.boolean()) # pylint: disable=no-member
|
@@ -230,6 +232,8 @@ class EnterpriseLearnerEnrollmentFactory(factory.django.DjangoModelFactory):
|
|
230
232
|
'user_account_creation_date',
|
231
233
|
'user_country_code',
|
232
234
|
'user_username',
|
235
|
+
'user_first_name',
|
236
|
+
'user_last_name',
|
233
237
|
]
|
234
238
|
if create and not obj.is_consent_granted:
|
235
239
|
for field in dsc_dependent_fields:
|
File without changes
|
File without changes
|
File without changes
|