edu-rdm-integration 3.2.8__tar.gz → 3.3.4__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.
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/CHANGELOG.md +56 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/PKG-INFO +58 -2
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/dependencies/external_packages.txt +1 -1
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/setup.py +1 -1
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/app_settings.py +5 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/collect.py +4 -54
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/consts.py +0 -1
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/functions.py +15 -108
- edu-rdm-integration-3.3.4/src/edu_rdm_integration/export_data/consts.py +6 -0
- edu-rdm-integration-3.3.4/src/edu_rdm_integration/export_data/dataclasses.py +11 -0
- edu-rdm-integration-3.3.4/src/edu_rdm_integration/export_data/export_manger.py +246 -0
- edu-rdm-integration-3.3.4/src/edu_rdm_integration/export_data/queue.py +172 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/helpers.py +19 -2
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/general.py +0 -12
- edu-rdm-integration-3.3.4/src/edu_rdm_integration/migrations/0009_auto_20240522_1619.py +25 -0
- edu-rdm-integration-3.2.8/src/edu_rdm_integration/migrations/0009_transferredentity_export_enabled.py → edu-rdm-integration-3.3.4/src/edu_rdm_integration/migrations/0010_transferredentity_export_enabled.py +2 -2
- edu-rdm-integration-3.3.4/src/edu_rdm_integration/migrations/0011_exportingdatasubstageentity.py +30 -0
- edu-rdm-integration-3.3.4/src/edu_rdm_integration/migrations/0012_exportingdatasubstageattachment_attachment_size.py +21 -0
- edu-rdm-integration-3.3.4/src/edu_rdm_integration/migrations/0013_set_attachment_size.py +48 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/models.py +35 -4
- edu-rdm-integration-3.3.4/src/edu_rdm_integration/redis_cache.py +52 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/tasks.py +38 -3
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/utils.py +1 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration.egg-info/PKG-INFO +58 -2
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration.egg-info/SOURCES.txt +9 -1
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration.egg-info/requires.txt +1 -1
- edu-rdm-integration-3.2.8/src/edu_rdm_integration/export_data/consts.py +0 -1
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/CONDUCT.md +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/LICENSE +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/MANIFEST.in +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/README.md +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/pyproject.toml +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/dependencies/development_packages.txt +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/dependencies/internal_packages.txt +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/dependencies/internal_sources.txt +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/dependencies/production_packages.txt +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/dependencies/system_packages.txt +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/dependencies/testing_packages.txt +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/development.txt +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/production.txt +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/stage.txt +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/setup.cfg +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/apps.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/caches.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/consts.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/enums.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/errors.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/functions.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/helpers.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/managers.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/presenters.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/receivers.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/results.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/runners.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/strategies.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/strings.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/tests.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/validators.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/app_meta.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/apps.py +1 -1
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/base.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_and_export_data/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_and_export_data/apps.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_and_export_data/migrations/0001_initial.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_and_export_data/migrations/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_and_export_data/models.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_and_export_data/utils.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/base/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/base/caches.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/base/functions.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/base/helpers.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/base/managers.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/base/mixins.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/base/runners.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/caches.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/consts.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/enums.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/errors.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/functions.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/helpers.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/managers.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/presenters.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/results.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/runners.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/strings.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/tests.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/validators.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/strategies.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/generators.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/helpers.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/caches.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/consts.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/enums.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/errors.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/functions.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/helpers.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/managers.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/presenters.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/results.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/runners.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/strings.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/tests.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/validators.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/strategies.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/tests.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/entities.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/enum_register/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/enum_register/mixins.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/enum_register/register.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/enums.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/caches.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/consts.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/enums.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/errors.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/helpers.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/managers.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/presenters.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/requests.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/results.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/runners.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/strings.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/tests.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/validators.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/export.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/generators.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/helpers.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/strategies.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/__init__.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/apps.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/caches.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/consts.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/enums.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/errors.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/functions.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/helpers.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/managers.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/presenters.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/results.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/runners.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/strings.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/tests.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/validators.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/__init__.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/apps.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/caches.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/consts.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/enums.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/errors.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/functions.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/helpers.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/managers.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/presenters.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/results.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/runners.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/strings.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/tests.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/validators.py-tpl +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/commands/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/commands/check_upload_status.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/commands/collect_latest_models_data.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/commands/collect_models_data.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/commands/datamart_status.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/commands/datamart_upload.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/commands/export_entities_data.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/commands/export_latest_entities_data.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/mapping.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/0001_initial.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/0002_init_data_uploadstatus.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/0003_create_index_file_upload_status.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/0004_uploaderclientlog.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/0005_auto_20231204_1224.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/0006_request_status_data.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/0007_delete_upload_status.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/0008_transferredentity.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/registry/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/registry/actions.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/registry/ui.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/signals.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/storages.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/templates/ui-js/transferred-entity-list.js +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/uploader_log/__init__.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/uploader_log/actions.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/uploader_log/apps.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/uploader_log/enums.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/uploader_log/managers.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/uploader_log/templates/ui-js/object-grid-buttons.js +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/uploader_log/ui.py +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration.egg-info/dependency_links.txt +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration.egg-info/namespace_packages.txt +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration.egg-info/not-zip-safe +0 -0
- {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration.egg-info/top_level.txt +0 -0
@@ -28,6 +28,54 @@
|
|
28
28
|
|
29
29
|
### Удалено
|
30
30
|
|
31
|
+
## 3.3.4 - 2024-08-16
|
32
|
+
Поднята максимальная версия Django (<3.3)
|
33
|
+
|
34
|
+
### Изменено
|
35
|
+
- [EDUKNDG-14560](https://jira.bars.group/browse/EDUKNDG-14560)
|
36
|
+
MINOR Добавлена поддержка Django 3.2
|
37
|
+
|
38
|
+
|
39
|
+
## 3.3.3 - 2024-08-19
|
40
|
+
Изменен порядок запуска сбора и экспорта по сущностям в периодической задаче TransferLatestEntitiesDataPeriodicTask
|
41
|
+
с учетом многопоточности, скорректированы номера миграций
|
42
|
+
|
43
|
+
### Изменено
|
44
|
+
- [EDUSCHL-21965](https://jira.bars.group/browse/EDUSCHL-21965)
|
45
|
+
PATCH Добавлен параметр export_off в модель TransferredEntity и изменен порядок запуска сбора и экспорта в
|
46
|
+
TransferLatestEntitiesDataPeriodicTask. Скорректированы номера миграций
|
47
|
+
|
48
|
+
|
49
|
+
## 3.3.2 - 2024-07-16
|
50
|
+
Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
|
51
|
+
|
52
|
+
### Изменено
|
53
|
+
- [EDUSCHL-22070](https://jira.bars.group/browse/EDUSCHL-22070)
|
54
|
+
PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
|
55
|
+
|
56
|
+
|
57
|
+
## 3.3.1 - 2024-06-13
|
58
|
+
Удалён устаревший параметр logs_sub_period_days у базового класса команды сбора данных BaseCollectModelsDataByGeneratingLogsCommand.
|
59
|
+
Добавлен таймаут для сохранения информации об объемах файла в кеш.
|
60
|
+
|
61
|
+
### Изменено
|
62
|
+
- [EDUSCHL-20649](https://jira.bars.group/browse/EDUSCHL-20649)
|
63
|
+
MINOR Удалён устаревший параметр logs_sub_period_days у базового класса команды сбора данных BaseCollectModelsDataByGeneratingLogsCommand
|
64
|
+
|
65
|
+
### Исправлено
|
66
|
+
- [EDUSCHL-21835](https://jira.bars.group/browse/EDUSCHL-21835)
|
67
|
+
PATCH Реализация многопоточной выгрузки
|
68
|
+
|
69
|
+
|
70
|
+
## 3.3.0 - 2024-06-06
|
71
|
+
Отправка файлов в РВД вынесена в отдельную задачу UploadDataAsyncTask, добавлен кеш файлов и очередь подэтапов отправки,
|
72
|
+
а также расчет объемов отправляемых файлов
|
73
|
+
|
74
|
+
### Изменено
|
75
|
+
- [EDUSCHL-21835](https://jira.bars.group/browse/EDUSCHL-21835)
|
76
|
+
MINOR Реализация многопоточной выгрузки
|
77
|
+
|
78
|
+
|
31
79
|
## 3.2.8 - 2024-08-02
|
32
80
|
Исправлена ошибка задвоения сборки и экспорта в периодической задаче TransferLatestEntitiesDataPeriodicTask.
|
33
81
|
|
@@ -62,6 +110,14 @@
|
|
62
110
|
PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
|
63
111
|
|
64
112
|
|
113
|
+
## 3.2.5 - 2024-07-16
|
114
|
+
Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
|
115
|
+
|
116
|
+
### Изменено
|
117
|
+
- [EDUSCHL-22070](https://jira.bars.group/browse/EDUSCHL-22070)
|
118
|
+
PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
|
119
|
+
|
120
|
+
|
65
121
|
## 3.2.4 - 2024-07-16
|
66
122
|
Внесены корректировки в запросы используемые в функциях get_collecting_managers_max_period_ended_dates и get_exporting_managers_max_period_ended_dates.
|
67
123
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: edu-rdm-integration
|
3
|
-
Version: 3.
|
3
|
+
Version: 3.3.4
|
4
4
|
Summary: Интеграция с Региональной витриной данных
|
5
5
|
Home-page:
|
6
6
|
Download-URL:
|
@@ -26,7 +26,7 @@ Requires-Dist: pip<24,>=23.2.1
|
|
26
26
|
Requires-Dist: setuptools<70,>=47.3.1
|
27
27
|
Requires-Dist: wheel<0.42,>=0.37.1
|
28
28
|
Requires-Dist: transliterate<2
|
29
|
-
Requires-Dist: Django<3.
|
29
|
+
Requires-Dist: Django<3.3,>=2.2
|
30
30
|
Requires-Dist: celery<5.3,>=4.4.7
|
31
31
|
Requires-Dist: educommon<4,>=3.9.3
|
32
32
|
Requires-Dist: function-tools<1,>=0.9.0
|
@@ -301,6 +301,54 @@ Requires-Dist: uploader-client<1,>=0.2.1
|
|
301
301
|
|
302
302
|
### Удалено
|
303
303
|
|
304
|
+
## 3.3.4 - 2024-08-16
|
305
|
+
Поднята максимальная версия Django (<3.3)
|
306
|
+
|
307
|
+
### Изменено
|
308
|
+
- [EDUKNDG-14560](https://jira.bars.group/browse/EDUKNDG-14560)
|
309
|
+
MINOR Добавлена поддержка Django 3.2
|
310
|
+
|
311
|
+
|
312
|
+
## 3.3.3 - 2024-08-19
|
313
|
+
Изменен порядок запуска сбора и экспорта по сущностям в периодической задаче TransferLatestEntitiesDataPeriodicTask
|
314
|
+
с учетом многопоточности, скорректированы номера миграций
|
315
|
+
|
316
|
+
### Изменено
|
317
|
+
- [EDUSCHL-21965](https://jira.bars.group/browse/EDUSCHL-21965)
|
318
|
+
PATCH Добавлен параметр export_off в модель TransferredEntity и изменен порядок запуска сбора и экспорта в
|
319
|
+
TransferLatestEntitiesDataPeriodicTask. Скорректированы номера миграций
|
320
|
+
|
321
|
+
|
322
|
+
## 3.3.2 - 2024-07-16
|
323
|
+
Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
|
324
|
+
|
325
|
+
### Изменено
|
326
|
+
- [EDUSCHL-22070](https://jira.bars.group/browse/EDUSCHL-22070)
|
327
|
+
PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
|
328
|
+
|
329
|
+
|
330
|
+
## 3.3.1 - 2024-06-13
|
331
|
+
Удалён устаревший параметр logs_sub_period_days у базового класса команды сбора данных BaseCollectModelsDataByGeneratingLogsCommand.
|
332
|
+
Добавлен таймаут для сохранения информации об объемах файла в кеш.
|
333
|
+
|
334
|
+
### Изменено
|
335
|
+
- [EDUSCHL-20649](https://jira.bars.group/browse/EDUSCHL-20649)
|
336
|
+
MINOR Удалён устаревший параметр logs_sub_period_days у базового класса команды сбора данных BaseCollectModelsDataByGeneratingLogsCommand
|
337
|
+
|
338
|
+
### Исправлено
|
339
|
+
- [EDUSCHL-21835](https://jira.bars.group/browse/EDUSCHL-21835)
|
340
|
+
PATCH Реализация многопоточной выгрузки
|
341
|
+
|
342
|
+
|
343
|
+
## 3.3.0 - 2024-06-06
|
344
|
+
Отправка файлов в РВД вынесена в отдельную задачу UploadDataAsyncTask, добавлен кеш файлов и очередь подэтапов отправки,
|
345
|
+
а также расчет объемов отправляемых файлов
|
346
|
+
|
347
|
+
### Изменено
|
348
|
+
- [EDUSCHL-21835](https://jira.bars.group/browse/EDUSCHL-21835)
|
349
|
+
MINOR Реализация многопоточной выгрузки
|
350
|
+
|
351
|
+
|
304
352
|
## 3.2.8 - 2024-08-02
|
305
353
|
Исправлена ошибка задвоения сборки и экспорта в периодической задаче TransferLatestEntitiesDataPeriodicTask.
|
306
354
|
|
@@ -335,6 +383,14 @@ Requires-Dist: uploader-client<1,>=0.2.1
|
|
335
383
|
PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
|
336
384
|
|
337
385
|
|
386
|
+
## 3.2.5 - 2024-07-16
|
387
|
+
Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
|
388
|
+
|
389
|
+
### Изменено
|
390
|
+
- [EDUSCHL-22070](https://jira.bars.group/browse/EDUSCHL-22070)
|
391
|
+
PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
|
392
|
+
|
393
|
+
|
338
394
|
## 3.2.4 - 2024-07-16
|
339
395
|
Внесены корректировки в запросы используемые в функциях get_collecting_managers_max_period_ended_dates и get_exporting_managers_max_period_ended_dates.
|
340
396
|
|
{edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/app_settings.py
RENAMED
@@ -43,3 +43,8 @@ RDM_UPLOAD_STATUS_TASK_MINUTE = '*/30'
|
|
43
43
|
RDM_UPLOAD_STATUS_TASK_HOUR = '*'
|
44
44
|
RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK = '*'
|
45
45
|
RDM_UPLOAD_STATUS_TASK_LOCK_EXPIRE_SECONDS = 60 * 60 * 2
|
46
|
+
|
47
|
+
# Настройка очереди Redis для формирования файлов РВД
|
48
|
+
RDM_UPLOAD_QUEUE_MAX_SIZE = 500_000_000
|
49
|
+
# Таймаут для сохранения параметров в общем кеш
|
50
|
+
RDM_REDIS_CACHE_TIMEOUT_SECONDS = 60 * 60 * 2
|
@@ -3,7 +3,6 @@ from datetime import (
|
|
3
3
|
date,
|
4
4
|
datetime,
|
5
5
|
time,
|
6
|
-
timedelta,
|
7
6
|
)
|
8
7
|
from typing import (
|
9
8
|
TYPE_CHECKING,
|
@@ -42,7 +41,6 @@ from edu_rdm_integration.base import (
|
|
42
41
|
BaseOperationData,
|
43
42
|
)
|
44
43
|
from edu_rdm_integration.consts import (
|
45
|
-
LOGS_SUB_PERIOD_DAYS,
|
46
44
|
REGIONAL_DATA_MART_INTEGRATION_COLLECTING_DATA,
|
47
45
|
)
|
48
46
|
from edu_rdm_integration.helpers import (
|
@@ -195,13 +193,11 @@ class BaseCollectModelsDataByGeneratingLogs(BaseCollectModelsData):
|
|
195
193
|
models: Iterable[str],
|
196
194
|
logs_period_started_at=datetime.combine(date.today(), time.min),
|
197
195
|
logs_period_ended_at=datetime.combine(date.today(), time.min),
|
198
|
-
logs_sub_period_days=LOGS_SUB_PERIOD_DAYS,
|
199
196
|
institute_ids=(),
|
200
197
|
**kwargs,
|
201
198
|
):
|
202
199
|
super().__init__(models, logs_period_started_at, logs_period_ended_at, **kwargs)
|
203
200
|
|
204
|
-
self.logs_sub_period_days = logs_sub_period_days
|
205
201
|
# Учебные заведения, для которых производится выгрузка
|
206
202
|
self.institute_ids = institute_ids
|
207
203
|
# Генератор логов
|
@@ -211,42 +207,11 @@ class BaseCollectModelsDataByGeneratingLogs(BaseCollectModelsData):
|
|
211
207
|
"""Возвращает генератор логов."""
|
212
208
|
raise NotImplementedError
|
213
209
|
|
214
|
-
def
|
215
|
-
"""
|
216
|
-
Генерация логов с учетом подпериодов.
|
217
|
-
"""
|
218
|
-
temp_logs_period_started_at = self.logs_period_started_at
|
219
|
-
temp_logs_period_ended_at = self.logs_period_started_at + timedelta(days=self.logs_sub_period_days)
|
220
|
-
|
221
|
-
if temp_logs_period_ended_at > self.logs_period_ended_at:
|
222
|
-
temp_logs_period_ended_at = self.logs_period_ended_at
|
223
|
-
|
224
|
-
temp_logs: Dict[str, List['AuditLog']] = {}
|
225
|
-
|
226
|
-
while temp_logs_period_started_at < temp_logs_period_ended_at <= self.logs_period_ended_at:
|
227
|
-
for model in self.models:
|
228
|
-
logs = self.log_generator.generate(
|
229
|
-
model=model,
|
230
|
-
logs_period_started_at=temp_logs_period_started_at,
|
231
|
-
logs_period_ended_at=temp_logs_period_ended_at,
|
232
|
-
institute_ids=self.institute_ids,
|
233
|
-
)
|
234
|
-
|
235
|
-
temp_logs[model.key] = logs
|
236
|
-
|
237
|
-
yield temp_logs, temp_logs_period_started_at, temp_logs_period_ended_at
|
238
|
-
|
239
|
-
temp_logs_period_started_at = temp_logs_period_ended_at
|
240
|
-
temp_logs_period_ended_at += timedelta(days=self.logs_sub_period_days)
|
241
|
-
|
242
|
-
if temp_logs_period_ended_at > self.logs_period_ended_at:
|
243
|
-
temp_logs_period_ended_at = self.logs_period_ended_at
|
244
|
-
|
245
|
-
temp_logs.clear()
|
210
|
+
def _generate_logs(self) -> List[Tuple[Dict[str, List['AuditLog']], datetime, datetime]]:
|
211
|
+
"""Генерация логов.
|
246
212
|
|
247
|
-
|
248
|
-
|
249
|
-
Генерация логов за весь период.
|
213
|
+
Осуществляет генерацию логов по уже существующим записям в базе данных. В качестве параметров указываются
|
214
|
+
начало и конец периода сбора логов. Генерация логов производится только для указанных моделей.
|
250
215
|
"""
|
251
216
|
temp_logs: Dict[str, List['AuditLog']] = {}
|
252
217
|
|
@@ -262,21 +227,6 @@ class BaseCollectModelsDataByGeneratingLogs(BaseCollectModelsData):
|
|
262
227
|
|
263
228
|
return [(temp_logs, self.logs_period_started_at, self.logs_period_ended_at)]
|
264
229
|
|
265
|
-
def _generate_logs(self) -> List[Tuple[Dict[str, List['AuditLog']], datetime, datetime]]:
|
266
|
-
"""
|
267
|
-
Генерация логов.
|
268
|
-
|
269
|
-
Осуществляет генерацию логов по уже существующим записям в базе данных. В качестве параметров указываются
|
270
|
-
начало и конец периода сбора логов, размер подпериодов, на которые должен быть разбит основной период.
|
271
|
-
Генерация логов производится только для указанных моделей.
|
272
|
-
"""
|
273
|
-
if self.logs_sub_period_days:
|
274
|
-
logs = self._generate_logs_by_subperiod()
|
275
|
-
else:
|
276
|
-
logs = self._generate_logs_for_all_period()
|
277
|
-
|
278
|
-
return logs
|
279
|
-
|
280
230
|
def _collect(self):
|
281
231
|
"""
|
282
232
|
Собирает данные моделей РВД.
|
@@ -1,22 +1,12 @@
|
|
1
|
-
import json
|
2
1
|
from abc import (
|
3
2
|
ABCMeta,
|
4
3
|
)
|
5
|
-
from pathlib import (
|
6
|
-
Path,
|
7
|
-
)
|
8
4
|
from typing import (
|
9
|
-
Dict,
|
10
5
|
List,
|
11
|
-
Optional,
|
12
|
-
Tuple,
|
13
6
|
Type,
|
14
7
|
Union,
|
15
8
|
)
|
16
9
|
|
17
|
-
from django.conf import (
|
18
|
-
settings,
|
19
|
-
)
|
20
10
|
from django.core.files.base import (
|
21
11
|
ContentFile,
|
22
12
|
)
|
@@ -26,9 +16,6 @@ from django.core.files.storage import (
|
|
26
16
|
from transliterate import (
|
27
17
|
slugify,
|
28
18
|
)
|
29
|
-
from uploader_client.adapters import (
|
30
|
-
adapter,
|
31
|
-
)
|
32
19
|
|
33
20
|
from educommon import (
|
34
21
|
logger,
|
@@ -46,22 +33,9 @@ from edu_rdm_integration.adapters.functions import (
|
|
46
33
|
from edu_rdm_integration.consts import (
|
47
34
|
LOGS_DELIMITER,
|
48
35
|
)
|
49
|
-
from edu_rdm_integration.enums import (
|
50
|
-
FileUploadStatusEnum,
|
51
|
-
)
|
52
|
-
from edu_rdm_integration.export_data.base.consts import (
|
53
|
-
OPERATIONS_METHODS_MAP,
|
54
|
-
OPERATIONS_URLS_MAP,
|
55
|
-
)
|
56
|
-
from edu_rdm_integration.export_data.base.errors import (
|
57
|
-
BaseExportDataError,
|
58
|
-
)
|
59
36
|
from edu_rdm_integration.export_data.base.helpers import (
|
60
37
|
BaseExportDataFunctionHelper,
|
61
38
|
)
|
62
|
-
from edu_rdm_integration.export_data.base.requests import (
|
63
|
-
RegionalDataMartEntityRequest,
|
64
|
-
)
|
65
39
|
from edu_rdm_integration.export_data.base.results import (
|
66
40
|
BaseExportDataFunctionResult,
|
67
41
|
)
|
@@ -75,8 +49,8 @@ from edu_rdm_integration.models import (
|
|
75
49
|
ExportingDataStage,
|
76
50
|
ExportingDataSubStage,
|
77
51
|
ExportingDataSubStageAttachment,
|
52
|
+
ExportingDataSubStageEntity,
|
78
53
|
ExportingDataSubStageStatus,
|
79
|
-
ExportingDataSubStageUploaderClientLog,
|
80
54
|
)
|
81
55
|
from edu_rdm_integration.utils import (
|
82
56
|
get_exporting_data_stage_attachment_path,
|
@@ -99,6 +73,10 @@ class BaseExportDataFunction(
|
|
99
73
|
stage=stage,
|
100
74
|
function_id=self.uuid,
|
101
75
|
)
|
76
|
+
ExportingDataSubStageEntity.objects.create(
|
77
|
+
exporting_data_sub_stage=self._sub_stage,
|
78
|
+
entity_id=self.first_entity.key
|
79
|
+
)
|
102
80
|
# Проставление подэтапа выгрузки
|
103
81
|
self.entities[0].main_model_enum.model.objects.filter(pk__in=model_ids).update(
|
104
82
|
exporting_sub_stage=self._sub_stage,
|
@@ -116,11 +94,7 @@ class BaseExportDataFunction(
|
|
116
94
|
EntityLogOperation.DELETE: [],
|
117
95
|
}
|
118
96
|
|
119
|
-
self.
|
120
|
-
EntityLogOperation.CREATE: (None, None),
|
121
|
-
EntityLogOperation.UPDATE: (None, None),
|
122
|
-
EntityLogOperation.DELETE: (None, None),
|
123
|
-
}
|
97
|
+
self.has_data = False
|
124
98
|
|
125
99
|
def _prepare_helper_class(self) -> Type[BaseExportDataFunctionHelper]:
|
126
100
|
"""
|
@@ -201,8 +175,10 @@ class BaseExportDataFunction(
|
|
201
175
|
Формирование файлов для дальнейшей выгрузки.
|
202
176
|
"""
|
203
177
|
logger.info(f'{LOGS_DELIMITER * 3}{self.__class__.__name__} prepare files..')
|
178
|
+
has_record = False
|
204
179
|
|
205
180
|
for operation in EntityLogOperation.values.keys():
|
181
|
+
|
206
182
|
records = self._data[operation]
|
207
183
|
if records:
|
208
184
|
title_record = (
|
@@ -230,83 +206,12 @@ class BaseExportDataFunction(
|
|
230
206
|
)
|
231
207
|
|
232
208
|
sub_stage_attachment.attachment = default_storage.save(file_path, ContentFile(joined_records))
|
209
|
+
sub_stage_attachment.attachment_size = sub_stage_attachment.attachment.size
|
233
210
|
|
234
211
|
self.do_on_save(sub_stage_attachment)
|
212
|
+
has_record |= True
|
235
213
|
|
236
|
-
|
237
|
-
|
238
|
-
def _send_files(self):
|
239
|
-
"""
|
240
|
-
Отправка файлов в "Региональная витрина данных".
|
241
|
-
"""
|
242
|
-
# TODO При старте проекта и инициализации приложения function_tools происходит поиск стратегий. При поиске
|
243
|
-
# возникает ошибка "Не произведена настройка клиента". Настройка производится в конфиге
|
244
|
-
# приложения regional_data_mart_integration. Нужно доработать механизм так, чтобы сборка стратегий запускалась
|
245
|
-
# после готовности всех приложений.
|
246
|
-
|
247
|
-
logger.info(f'{LOGS_DELIMITER * 3}{self.__class__.__name__} send files..')
|
248
|
-
|
249
|
-
requests_result = []
|
250
|
-
|
251
|
-
for operation, (relative_file_path, sub_stage_attachment) in self._file_contents.items():
|
252
|
-
if relative_file_path:
|
253
|
-
if settings.RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATION:
|
254
|
-
logger.warning(
|
255
|
-
f'{LOGS_DELIMITER * 3}ATTENTION!!! REGIONAL DATA MART INTEGRATION REQUEST EMULATION ENABLED!'
|
256
|
-
)
|
257
|
-
|
258
|
-
method = OPERATIONS_METHODS_MAP.get(operation)
|
259
|
-
file_path = Path.joinpath(Path(settings.MEDIA_ROOT), relative_file_path)
|
260
|
-
|
261
|
-
request = RegionalDataMartEntityRequest(
|
262
|
-
datamart_name=settings.RDM_UPLOADER_CLIENT_DATAMART_NAME,
|
263
|
-
table_name=self.first_entity.key.lower(),
|
264
|
-
method=method,
|
265
|
-
operation=OPERATIONS_URLS_MAP.get(operation),
|
266
|
-
parameters={},
|
267
|
-
headers={
|
268
|
-
'Content-Type': 'text/csv',
|
269
|
-
},
|
270
|
-
files=[],
|
271
|
-
data=file_path.open('rb').read(),
|
272
|
-
)
|
273
|
-
|
274
|
-
result = adapter.send(request)
|
275
|
-
|
276
|
-
request_id = ''
|
277
|
-
if not result.error:
|
278
|
-
request_id = result.response.text
|
279
|
-
|
280
|
-
file_upload_status = FileUploadStatusEnum.IN_PROGRESS if request_id else FileUploadStatusEnum.ERROR
|
281
|
-
|
282
|
-
sub_stage_uploader_client_log = ExportingDataSubStageUploaderClientLog(
|
283
|
-
entry=result.log,
|
284
|
-
sub_stage=self._sub_stage,
|
285
|
-
attachment=sub_stage_attachment,
|
286
|
-
request_id=request_id,
|
287
|
-
file_upload_status=file_upload_status,
|
288
|
-
is_emulation=settings.RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATION,
|
289
|
-
)
|
290
|
-
|
291
|
-
self.do_on_save(sub_stage_uploader_client_log)
|
292
|
-
|
293
|
-
if result.error:
|
294
|
-
logger.warning(
|
295
|
-
f'{result.error}\nrequest - "{result.log.request}"\nresponse - "{result.log.response}"'
|
296
|
-
)
|
297
|
-
|
298
|
-
error = BaseExportDataError(
|
299
|
-
message=result.error,
|
300
|
-
)
|
301
|
-
self.result.append_entity(entity=error)
|
302
|
-
|
303
|
-
break
|
304
|
-
else:
|
305
|
-
logger.info(
|
306
|
-
f'Response with {result.response.status_code} code and content {result.response.text}'
|
307
|
-
)
|
308
|
-
|
309
|
-
requests_result.append(result)
|
214
|
+
self.has_data = has_record
|
310
215
|
|
311
216
|
def _prepare(self, *args, **kwargs):
|
312
217
|
"""
|
@@ -316,7 +221,6 @@ class BaseExportDataFunction(
|
|
316
221
|
if self.helper.cache.entity_instances:
|
317
222
|
self._prepare_data()
|
318
223
|
self._prepare_files()
|
319
|
-
self._send_files()
|
320
224
|
else:
|
321
225
|
logger.info(f'{LOGS_DELIMITER * 3} no data for preparing.')
|
322
226
|
|
@@ -342,7 +246,10 @@ class BaseExportDataFunction(
|
|
342
246
|
super().run(*args, **kwargs)
|
343
247
|
|
344
248
|
if self.result.has_not_errors:
|
345
|
-
self._sub_stage.status_id =
|
249
|
+
self._sub_stage.status_id = (
|
250
|
+
ExportingDataSubStageStatus.FINISHED.key if not self.has_data
|
251
|
+
else ExportingDataSubStageStatus.READY_FOR_EXPORT.key
|
252
|
+
)
|
346
253
|
else:
|
347
254
|
self._sub_stage.status_id = ExportingDataSubStageStatus.FAILED.key
|
348
255
|
|