edx-enterprise-data 5.4.1__py3-none-any.whl → 5.5.1__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-5.4.1.dist-info → edx_enterprise_data-5.5.1.dist-info}/METADATA +2 -2
- {edx_enterprise_data-5.4.1.dist-info → edx_enterprise_data-5.5.1.dist-info}/RECORD +9 -8
- {edx_enterprise_data-5.4.1.dist-info → edx_enterprise_data-5.5.1.dist-info}/WHEEL +1 -1
- enterprise_data/__init__.py +1 -1
- enterprise_data/migrations/0038_enterpriseoffer_export_timestamp.py +18 -0
- enterprise_data/models.py +1 -0
- enterprise_reporting/reporter.py +7 -1
- {edx_enterprise_data-5.4.1.dist-info → edx_enterprise_data-5.5.1.dist-info}/LICENSE +0 -0
- {edx_enterprise_data-5.4.1.dist-info → edx_enterprise_data-5.5.1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: edx-enterprise-data
|
3
|
-
Version: 5.
|
3
|
+
Version: 5.5.1
|
4
4
|
Summary: Enterprise Reporting
|
5
5
|
Home-page: https://github.com/openedx/edx-enterprise-data
|
6
6
|
Author: edX
|
@@ -31,8 +31,8 @@ Requires-Dist: awscli ; extra == 'reporting'
|
|
31
31
|
Requires-Dist: boto3 ; extra == 'reporting'
|
32
32
|
Requires-Dist: celery ==4.4.7 ; extra == 'reporting'
|
33
33
|
Requires-Dist: cryptography ; extra == 'reporting'
|
34
|
+
Requires-Dist: https ; extra == 'reporting'
|
34
35
|
Requires-Dist: paramiko ; extra == 'reporting'
|
35
|
-
Requires-Dist: py2neo ; extra == 'reporting'
|
36
36
|
Requires-Dist: pyminizip ; extra == 'reporting'
|
37
37
|
Requires-Dist: snowflake-connector-python ; extra == 'reporting'
|
38
38
|
Requires-Dist: unicodecsv ==0.14.1 ; extra == 'reporting'
|
@@ -1,9 +1,9 @@
|
|
1
|
-
enterprise_data/__init__.py,sha256=
|
1
|
+
enterprise_data/__init__.py,sha256=dC_EnL5TAyJtgKEiiE010yYxoMn6H4OL7KrAtv41FHo,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=pS65L4mimz7hd_cLml_mXdU0GJ7hs0X8UQ8MNjC5hCU,234
|
5
5
|
enterprise_data/filters.py,sha256=SsDCfD6YTBPySUqGphJ8ZtuswTafTvsYt4JI93DFRX4,5686
|
6
|
-
enterprise_data/models.py,sha256=
|
6
|
+
enterprise_data/models.py,sha256=oDnvuQ-XlFTLaZNSiv5aviStpeQrEgALtlB63jVZKcA,18376
|
7
7
|
enterprise_data/paginators.py,sha256=YPrC5TeXFt-ymenT2H8H2nCbDCnAzJQlH9kFPElRxWE,269
|
8
8
|
enterprise_data/signals.py,sha256=8eqNPnlvmfsKf19lGWv5xTIuBgQIqR8EZSp9UYzC8Rc,1024
|
9
9
|
enterprise_data/urls.py,sha256=bqtKF5OEWEwrNmHG3os-pZNuNsmjlhxEqp7yM4TbPf4,243
|
@@ -73,6 +73,7 @@ enterprise_data/migrations/0034_auto_20230907_0834.py,sha256=30davBk2QD9tZCoSCHl
|
|
73
73
|
enterprise_data/migrations/0035_auto_20230907_1154.py,sha256=nVz53sDLzygo0wR8E1dMaedEdGsUdc6LkdOVnH8FiZk,743
|
74
74
|
enterprise_data/migrations/0036_enterprisesubsidybudget_subsidy_access_policy_display_name.py,sha256=KqMw3rcVshujU-bYVXnAHCRF-l_Gtd5EYemakFQGE2U,450
|
75
75
|
enterprise_data/migrations/0037_alter_enterpriseenrollment_consent_granted.py,sha256=MF9-RRhCR1efO51UPgSn746V5EnymdwNYrL8dA_P7Q8,471
|
76
|
+
enterprise_data/migrations/0038_enterpriseoffer_export_timestamp.py,sha256=8St3DsKb-VI3LGGC-Mc7OvmFn67kVob0HKCPGKcjvu4,436
|
76
77
|
enterprise_data/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
77
78
|
enterprise_data/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
78
79
|
enterprise_data/settings/test.py,sha256=Ei2K4fCCIdeKh9VSRoW7yivMlyoxY1Vbvu5I-Rk7rL0,3988
|
@@ -110,7 +111,7 @@ enterprise_data_roles/tests/test_models.py,sha256=wJv7ywk0BSbjlW_U142h0aFxZleAHy
|
|
110
111
|
enterprise_reporting/__init__.py,sha256=yQO9ureIxFnl-1a_34H53elDwuAzXrSmhLlzqqD2SJ0,112
|
111
112
|
enterprise_reporting/delivery_method.py,sha256=bG-JCGhrK3nuC3P6D88zBRSwDJCbaDxN35nNlXzvoRM,4813
|
112
113
|
enterprise_reporting/external_resource_link_report.py,sha256=-KEB8jLkx4KFTTcoB1eznKte38XoAkya_VoFGUORz6o,8066
|
113
|
-
enterprise_reporting/reporter.py,sha256=
|
114
|
+
enterprise_reporting/reporter.py,sha256=3wI46qH-CNCUC5r9-Eme1mQdMjwEsFk9myRb-ajzJkM,13807
|
114
115
|
enterprise_reporting/send_enterprise_reports.py,sha256=usseqP7tG0oyG7goaBA-kz2nQnU6wGLOIv0jlfq_4Lg,4753
|
115
116
|
enterprise_reporting/utils.py,sha256=7t0IUeaLVxHmunLhYU6EVKrmizY_fquwUf3xdHWlkAE,13860
|
116
117
|
enterprise_reporting/clients/__init__.py,sha256=Y2XqHWyEfgHBWnfwdO1P-MWLVqCivzWIJFm_lQFUMyI,5122
|
@@ -130,8 +131,8 @@ enterprise_reporting/tests/test_send_enterprise_reports.py,sha256=WtL-RqGgu2x5PP
|
|
130
131
|
enterprise_reporting/tests/test_utils.py,sha256=7Y5GmeibiC8Q5kIpYuIAkFpeyIDRs2U3ItxsabhR1zM,9493
|
131
132
|
enterprise_reporting/tests/test_vertica_client.py,sha256=-R2yNCGUjRtoXwLMBloVFQkFYrJoo613VCr61gwI3kQ,140
|
132
133
|
enterprise_reporting/tests/utils.py,sha256=xms2LM7DV3wczXEfctOK1ddel1EE0J_YSr17UzbCDy4,1401
|
133
|
-
edx_enterprise_data-5.
|
134
|
-
edx_enterprise_data-5.
|
135
|
-
edx_enterprise_data-5.
|
136
|
-
edx_enterprise_data-5.
|
137
|
-
edx_enterprise_data-5.
|
134
|
+
edx_enterprise_data-5.5.1.dist-info/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
|
135
|
+
edx_enterprise_data-5.5.1.dist-info/METADATA,sha256=PCX9-g2TUh3yRC4MaiPPAWFquLMPTyUuNnVH-mMckNo,1474
|
136
|
+
edx_enterprise_data-5.5.1.dist-info/WHEEL,sha256=Xo9-1PvkuimrydujYJAjF7pCkriuXBpUPEjma1nZyJ0,92
|
137
|
+
edx_enterprise_data-5.5.1.dist-info/top_level.txt,sha256=f5F2kU-dob6MqiHJpgZkFzoCD5VMhsdpkTV5n9Tvq3I,59
|
138
|
+
edx_enterprise_data-5.5.1.dist-info/RECORD,,
|
enterprise_data/__init__.py
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
# Generated by Django 3.2.20 on 2023-10-19 15:55
|
2
|
+
|
3
|
+
from django.db import migrations, models
|
4
|
+
|
5
|
+
|
6
|
+
class Migration(migrations.Migration):
|
7
|
+
|
8
|
+
dependencies = [
|
9
|
+
('enterprise_data', '0037_alter_enterpriseenrollment_consent_granted'),
|
10
|
+
]
|
11
|
+
|
12
|
+
operations = [
|
13
|
+
migrations.AddField(
|
14
|
+
model_name='enterpriseoffer',
|
15
|
+
name='export_timestamp',
|
16
|
+
field=models.DateTimeField(null=True),
|
17
|
+
),
|
18
|
+
]
|
enterprise_data/models.py
CHANGED
@@ -310,6 +310,7 @@ class EnterpriseOffer(models.Model):
|
|
310
310
|
remaining_balance = models.FloatField(null=True)
|
311
311
|
amount_offer_spent_ocm = models.FloatField(null=True)
|
312
312
|
amount_offer_spent_exec_ed = models.FloatField(null=True)
|
313
|
+
export_timestamp = models.DateTimeField(null=True)
|
313
314
|
|
314
315
|
def __str__(self):
|
315
316
|
"""
|
enterprise_reporting/reporter.py
CHANGED
@@ -20,7 +20,12 @@ from enterprise_reporting.clients.enterprise import (
|
|
20
20
|
from enterprise_reporting.clients.s3 import S3Client
|
21
21
|
from enterprise_reporting.clients.vertica import VerticaClient
|
22
22
|
from enterprise_reporting.delivery_method import SFTPDeliveryMethod, SMTPDeliveryMethod
|
23
|
-
from enterprise_reporting.utils import
|
23
|
+
from enterprise_reporting.utils import (
|
24
|
+
decrypt_string,
|
25
|
+
extract_catalog_uuids_from_reporting_config,
|
26
|
+
generate_data,
|
27
|
+
retry_on_exception,
|
28
|
+
)
|
24
29
|
|
25
30
|
LOGGER = logging.getLogger(__name__)
|
26
31
|
NOW = datetime.datetime.now().strftime("%Y-%m-%d")
|
@@ -115,6 +120,7 @@ class EnterpriseReportSender:
|
|
115
120
|
"""Get a full path to the report file that can be modified with arbitrary formatting."""
|
116
121
|
return '_{}.'.join(self.data_report_file_name.rsplit('.'))
|
117
122
|
|
123
|
+
@retry_on_exception(max_retries=2, delay=1, backoff=2)
|
118
124
|
def send_enterprise_report(self):
|
119
125
|
"""Generate the report file of the appropriate type and send it through the configured delivery method."""
|
120
126
|
LOGGER.info(f'Starting process to send report to {self.enterprise_customer_name}')
|
File without changes
|
File without changes
|