edu-rdm-integration 3.22.5__tar.gz → 3.22.8__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.22.5 → edu_rdm_integration-3.22.8}/CHANGELOG.md +81 -1
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/PKG-INFO +1 -1
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/core/consts.py +3 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/transfer/tasks.py +5 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/registry/templates/ui-js/collect-command-window.js +8 -19
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/registry/templates/ui-js/validators.js +0 -15
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/models.py +4 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/registry/actions.py +2 -1
- edu_rdm_integration-3.22.8/src/edu_rdm_integration/stages/export_data/registry/templates/ui-js/create-export-command-win.js +25 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/service/service_outdated_data/cleaners/collect_data.py +1 -8
- edu_rdm_integration-3.22.8/src/edu_rdm_integration/stages/service/service_outdated_data/cleaners/consts.py +1 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/service/service_outdated_data/cleaners/export_data.py +1 -2
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/enums.py +2 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/export_managers.py +3 -1
- edu_rdm_integration-3.22.8/src/edu_rdm_integration/stages/upload_data/management/commands/custom_check_upload_status.py +59 -0
- edu_rdm_integration-3.22.8/src/edu_rdm_integration/stages/upload_data/management/commands/custom_upload_files.py +45 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/queues.py +50 -2
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/tasks.py +2 -2
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/utils.py +12 -0
- edu_rdm_integration-3.22.8/src/edu_rdm_integration/templates/ui-js/collect-and-export-validators.js +54 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration.egg-info/PKG-INFO +1 -1
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration.egg-info/SOURCES.txt +4 -1
- edu_rdm_integration-3.22.5/src/edu_rdm_integration/stages/export_data/registry/templates/ui-js/create-export-command-win.js +0 -41
- edu_rdm_integration-3.22.5/src/edu_rdm_integration/stages/service/service_outdated_data/cleaners/consts.py +0 -12
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/CONDUCT.md +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/LICENSE +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/MANIFEST.in +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/README.md +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/pyproject.toml +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/setup.cfg +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/apps.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/collect_and_export_data/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/collect_and_export_data/apps.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/collect_and_export_data/migrations/0001_initial.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/collect_and_export_data/migrations/0002_auto_20250204_1413.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/collect_and_export_data/migrations/0003_auto_20250704_0725.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/collect_and_export_data/migrations/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/collect_and_export_data/models.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/core/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/core/enums.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/core/helpers.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/core/mapping.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/core/operations.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/core/redis_cache.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/core/registry/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/core/registry/actions.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/core/registry/apps.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/core/registry/templates/ui-js/start-task.js +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/core/registry/ui.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/core/signals.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/core/storages.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/core/typing.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/core/utils.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0001_initial.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0002_init_data_uploadstatus.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0003_create_index_file_upload_status.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0004_uploaderclientlog.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0005_auto_20231204_1224.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0006_request_status_data.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0007_delete_upload_status.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0008_transferredentity.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0009_auto_20240522_1619.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0010_transferredentity_export_enabled.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0011_exportingdatasubstageentity.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0012_exportingdatasubstageattachment_attachment_size.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0013_set_attachment_size.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0014_uploaddatacommand.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0015_set_exporting_sub_stage_status.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0016_transferredentity_queue_level.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0017_delete_uploaddatacommand.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/0018_auto_20250704_0725.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/migrations/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/models.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/cleanup_outdated_data/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/cleanup_outdated_data/apps.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/cleanup_outdated_data/management/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/cleanup_outdated_data/management/commands/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/cleanup_outdated_data/management/commands/rdm_cleanup_outdated_data.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/transfer/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/transfer/actions.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/transfer/app_meta.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/transfer/apps.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/transfer/enums.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/transfer/migrations/0001_initial.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/transfer/migrations/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/transfer/mixins.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/transfer/models.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/transfer/templates/ui-js/transferred-entity-list.js +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/pipelines/transfer/ui.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_entities/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_entities/apps.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_entities/entities.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_entities/migrations/0001_initial.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_entities/migrations/0002_rename_regionaldatamartentityenum_rdmentityenum.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_entities/migrations/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_entities/mixins.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_entities/models.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_entities/utils.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_models/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_models/apps.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_models/migrations/0001_initial.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_models/migrations/0002_rename_regionaldatamartmodelenum_rdmmodelenum.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_models/migrations/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_models/mixins.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_models/models.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/rdm_models/utils.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/apps.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/consts.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/function_templates/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/__init__.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/apps.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/caches.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/consts.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/enums.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/errors.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/functions.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/helpers.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/managers.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/presenters.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/results.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/runners.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/strings.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/tests.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/validators.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/base/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/base/caches.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/base/consts.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/base/functions.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/base/helpers.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/base/managers.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/base/mixins.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/base/runners.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/calculated/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/caches.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/consts.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/enums.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/errors.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/functions.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/helpers.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/managers.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/presenters.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/results.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/runners.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/strings.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/tests.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/validators.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/calculated/strategies.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/caches.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/consts.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/enums.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/errors.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/functions.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/helpers.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/managers.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/presenters.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/results.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/runners.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/strings.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/tests.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/validators.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/strategies.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/generators.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/helpers.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/management/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/management/base.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/management/commands/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/management/commands/collect_latest_models_data.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/management/commands/collect_models_data.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/migrations/0001_initial.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/migrations/0002_edurdmcollectdatacommandprogress.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/migrations/0003_auto_20250704_0810.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/migrations/0004_auto_20250704_0825.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/migrations/0005_alter_rdmcollectingdatasubstage_previous.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/migrations/0006_fix_fk_constraints.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/migrations/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/mixins.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/models.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/operations.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/registry/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/registry/actions.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/registry/apps.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/registry/ui.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/collect_data/tests.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/apps.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/consts.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/function_templates/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/__init__.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/apps.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/caches.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/consts.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/enums.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/errors.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/functions.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/helpers.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/managers.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/presenters.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/results.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/runners.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/strings.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/tests.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/validators.py-tpl +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/functions/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/functions/base/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/functions/base/caches.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/functions/base/consts.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/functions/base/enums.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/functions/base/errors.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/functions/base/functions.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/functions/base/helpers.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/functions/base/managers.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/functions/base/presenters.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/functions/base/requests.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/functions/base/results.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/functions/base/runners.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/functions/base/strings.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/functions/base/tests.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/functions/base/validators.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/generators.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/helpers.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/management/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/management/base.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/management/commands/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/management/commands/export_entities_data.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/management/commands/export_latest_entities_data.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/migrations/0001_initial.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/migrations/0002_auto_20250704_0810.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/migrations/0003_alter_rdmexportingdatasubstageattachment_exporting_data_sub_stage.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/migrations/0004_fix_fk_constraints.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/migrations/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/mixins.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/operations.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/registry/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/registry/apps.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/registry/templates/ui-js/stage_for_export.js +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/registry/ui.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/export_data/strategies.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/service/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/service/apps.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/service/model_outdated_data/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/service/model_outdated_data/cleaners.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/service/model_outdated_data/managers.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/service/service_outdated_data/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/service/service_outdated_data/cleaners/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/service/service_outdated_data/cleaners/base.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/service/service_outdated_data/cleaners/upload_data.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/service/service_outdated_data/managers.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/service/tasks.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/apps.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/consts.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/dataclasses.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/helpers.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/management/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/management/base.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/management/commands/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/management/commands/async_fix_attachment_size.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/management/commands/check_upload_status.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/management/commands/datamart_status.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/management/commands/datamart_upload.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/migrations/0001_initial.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/migrations/0002_auto_20250704_0810.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/migrations/0003_auto_20251006_1417.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/migrations/0004_fix_fk_constraints.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/migrations/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/models.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/operations.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/uploader_log/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/uploader_log/actions.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/uploader_log/apps.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/uploader_log/enums.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/uploader_log/managers.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/uploader_log/migrations/0001_initial.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/uploader_log/migrations/__init__.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/uploader_log/models.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/uploader_log/templates/ui-js/object-grid-buttons.js +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/upload_data/uploader_log/ui.py +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration.egg-info/dependency_links.txt +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration.egg-info/requires.txt +0 -0
- {edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration.egg-info/top_level.txt +0 -0
|
@@ -29,6 +29,54 @@
|
|
|
29
29
|
### Удалено
|
|
30
30
|
|
|
31
31
|
|
|
32
|
+
## [3.22.8] - 2025-10-30
|
|
33
|
+
|
|
34
|
+
В функцию `update_foreign_key_constraint` добавлена проверка существования таблиц перед выполнением операций с внешними ключами.
|
|
35
|
+
Удален излишний функционал.
|
|
36
|
+
|
|
37
|
+
### Добавлено
|
|
38
|
+
|
|
39
|
+
- [EDUKNDG-15822](https://jira.bars.group/browse/EDUKNDG-15822)
|
|
40
|
+
PATCH В функцию `update_foreign_key_constraint` добавлена проверка существования таблиц перед выполнением операций с внешними ключами.
|
|
41
|
+
|
|
42
|
+
### Удалено
|
|
43
|
+
|
|
44
|
+
- [EDUKNDG-15822](https://jira.bars.group/browse/EDUKNDG-15822)
|
|
45
|
+
PATCH Удален излишний функционал.
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
## [3.22.7] - 2025-10-28
|
|
49
|
+
|
|
50
|
+
Убрано ограничение максимальной даты начала и конца сбора данных, для экспорта ограничение установлено в значение 'Завтра'.
|
|
51
|
+
Добавлены значения по умолчанию для времени при выборе даты в календаре, для начала (00:00:00) - для конца (23:59:59)
|
|
52
|
+
|
|
53
|
+
### Добавлено
|
|
54
|
+
|
|
55
|
+
- [EDUKNDG-15822](https://jira.bars.group/browse/EDUKNDG-15822)
|
|
56
|
+
PATCH Добавлены значения по умолчанию для времени при выборе даты в календаре, для начала (00:00:00) - для конца (23:59:59).
|
|
57
|
+
|
|
58
|
+
### Исправлено
|
|
59
|
+
|
|
60
|
+
- [EDUKNDG-15822](https://jira.bars.group/browse/EDUKNDG-15822)
|
|
61
|
+
PATCH Исправлены валидаторы полей периода сбора и экспорта данных.
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
## [3.22.6] - 2025-10-21
|
|
65
|
+
|
|
66
|
+
Для оптимизации работы были добавлены manage-команды
|
|
67
|
+
- для запуска отправки файлов в витрину custom_upload_files
|
|
68
|
+
- для проверки статусов в витрину custom_check_upload_status
|
|
69
|
+
|
|
70
|
+
Было добавлено новое значение IN_EXPORT в RDMExportingDataSubStageStatus
|
|
71
|
+
Был добавлен новый вид очереди отправки на базе словаря RdmDictBasedSubStageAttachmentQueue, для того, чтобы исключить
|
|
72
|
+
нагрузку на БД Redis.
|
|
73
|
+
|
|
74
|
+
### Исправлено
|
|
75
|
+
|
|
76
|
+
- [EDUSCHL-24340](https://jira.bars.group/browse/EDUSCHL-24340)
|
|
77
|
+
PATCH Добавлены изменения сделанные в рамках версии пакета 3.20.3.
|
|
78
|
+
|
|
79
|
+
|
|
32
80
|
## [3.22.5] - 2025-10-17
|
|
33
81
|
|
|
34
82
|
Выполнено переупорядочивание миграций приложения `edu_rdm_integration_export_data_stage`
|
|
@@ -147,6 +195,22 @@ BaseRDMModel -> BaseAdditionalRDMModel.
|
|
|
147
195
|
```
|
|
148
196
|
|
|
149
197
|
|
|
198
|
+
## [3.21.3] - 2025-10-21
|
|
199
|
+
|
|
200
|
+
Для оптимизации работы были добавлены manage-команды
|
|
201
|
+
- для запуска отправки файлов в витрину custom_upload_files
|
|
202
|
+
- для проверки статусов в витрину custom_check_upload_status
|
|
203
|
+
|
|
204
|
+
Было добавлено новое значение IN_EXPORT в RDMExportingDataSubStageStatus
|
|
205
|
+
Был добавлен новый вид очереди отправки на базе словаря RdmDictBasedSubStageAttachmentQueue, для того, чтобы исключить
|
|
206
|
+
нагрузку на БД Redis.
|
|
207
|
+
|
|
208
|
+
### Исправлено
|
|
209
|
+
|
|
210
|
+
- [EDUSCHL-24340](https://jira.bars.group/browse/EDUSCHL-24340)
|
|
211
|
+
PATCH Добавлены изменения сделанные в рамках версии пакета 3.20.3.
|
|
212
|
+
|
|
213
|
+
|
|
150
214
|
## [3.21.2] - 2025-10-14
|
|
151
215
|
|
|
152
216
|
Исправление вывода списков моделей и сущностей в реестрах сбора и выгрузки данных.
|
|
@@ -183,6 +247,22 @@ BaseRDMModel -> BaseAdditionalRDMModel.
|
|
|
183
247
|
MINOR Переименование m3-django-compat в m3-django-compatibility.
|
|
184
248
|
|
|
185
249
|
|
|
250
|
+
## [3.20.3] - 2025-10-21
|
|
251
|
+
|
|
252
|
+
Для оптимизации работы были добавлены manage-команды
|
|
253
|
+
- для запуска отправки файлов в витрину custom_upload_files
|
|
254
|
+
- для проверки статусов в витрину custom_check_upload_status
|
|
255
|
+
|
|
256
|
+
Было добавлено новое значение IN_EXPORT в RDMExportingDataSubStageStatus
|
|
257
|
+
Был добавлен новый вид очереди отправки на базе словаря RdmDictBasedSubStageAttachmentQueue, для того, чтобы исключить
|
|
258
|
+
нагрузку на БД Redis
|
|
259
|
+
|
|
260
|
+
### Исправлено
|
|
261
|
+
|
|
262
|
+
- [EDUSCHL-24340](https://jira.bars.group/browse/EDUSCHL-24340)
|
|
263
|
+
PATCH Исправление вывода списков моделей и сущностей в реестрах сбора и выгрузки данных.
|
|
264
|
+
|
|
265
|
+
|
|
186
266
|
## [3.20.2] - 2025-10-14
|
|
187
267
|
|
|
188
268
|
Исправление вывода списков моделей и сущностей в реестрах сбора и выгрузки данных.
|
|
@@ -191,7 +271,7 @@ BaseRDMModel -> BaseAdditionalRDMModel.
|
|
|
191
271
|
|
|
192
272
|
- [EDUSCHL-24360](https://jira.bars.group/browse/EDUSCHL-24360)
|
|
193
273
|
PATCH Исправление вывода списков моделей и сущностей в реестрах сбора и выгрузки данных.
|
|
194
|
-
|
|
274
|
+
|
|
195
275
|
|
|
196
276
|
## [3.20.1] - 2025-10-12
|
|
197
277
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: edu-rdm-integration
|
|
3
|
-
Version: 3.22.
|
|
3
|
+
Version: 3.22.8
|
|
4
4
|
Summary: Интеграция с Региональной витриной данных
|
|
5
5
|
Author-email: BARS Group <education_dev@bars.group>
|
|
6
6
|
Project-URL: Homepage, https://stash.bars-open.ru/projects/EDUBASE/repos/edu-rdm-integration/browse
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import time
|
|
1
2
|
from datetime import (
|
|
2
3
|
datetime,
|
|
3
4
|
)
|
|
@@ -37,6 +38,7 @@ from educommon.utils.date import (
|
|
|
37
38
|
from edu_rdm_integration.core.consts import (
|
|
38
39
|
FAST_TRANSFER_TASK_QUEUE_NAME,
|
|
39
40
|
LONG_TRANSFER_TASK_QUEUE_NAME,
|
|
41
|
+
PAUSE_TIME,
|
|
40
42
|
TASK_QUEUE_NAME,
|
|
41
43
|
)
|
|
42
44
|
from edu_rdm_integration.core.enums import (
|
|
@@ -206,6 +208,9 @@ class BaseTransferLatestEntitiesDataPeriodicTask(BaseTransferLatestEntitiesDataM
|
|
|
206
208
|
|
|
207
209
|
continue
|
|
208
210
|
|
|
211
|
+
# Лаг времени для достаки данных в реплику
|
|
212
|
+
time.sleep(PAUSE_TIME)
|
|
213
|
+
|
|
209
214
|
try:
|
|
210
215
|
if export_enabled:
|
|
211
216
|
self._run_export_entity_data(entity_enum.key, task_id)
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{% load educommon %}
|
|
2
2
|
{% include "ui-js/validators.js" %}
|
|
3
|
+
{% include "ui-js/collect-and-export-validators.js" %}
|
|
3
4
|
|
|
4
|
-
var
|
|
5
|
+
var logsPeriodStartField = Ext.getCmp('logs_period_started_at');
|
|
6
|
+
var logsPeriodEndField = Ext.getCmp('logs_period_ended_at');
|
|
5
7
|
|
|
6
8
|
Ext.onReady(function() {
|
|
7
9
|
// Инициализация валидаторов
|
|
@@ -41,24 +43,11 @@ function initializeValidators() {
|
|
|
41
43
|
});
|
|
42
44
|
}
|
|
43
45
|
|
|
44
|
-
// Устанавливаем
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
logsPeriodStartField.setMaxValue(now);
|
|
50
|
-
logsPeriodEndField.setMaxValue(now);
|
|
51
|
-
|
|
52
|
-
logsPeriodStartField.validate();
|
|
53
|
-
logsPeriodEndField.validate();
|
|
54
|
-
}, 1000);
|
|
55
|
-
|
|
56
|
-
win.on('destroy', function() {
|
|
57
|
-
clearInterval(validationInterval);
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
logsPeriodStartField.validator = logsPeriodsValidator;
|
|
61
|
-
logsPeriodEndField.validator = logsPeriodsValidator;
|
|
46
|
+
// Устанавливаем время по умолчанию в календаре и доп валидатор
|
|
47
|
+
setupPeriodFields(
|
|
48
|
+
logsPeriodStartField,
|
|
49
|
+
logsPeriodEndField,
|
|
50
|
+
);
|
|
62
51
|
}
|
|
63
52
|
|
|
64
53
|
function initializeBatchSizeSplitByLogic() {
|
|
@@ -47,20 +47,5 @@ var instituteCountValidator = function() {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
this.clearInvalid();
|
|
50
|
-
return true;
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
var logsPeriodStartField = Ext.getCmp('logs_period_started_at');
|
|
54
|
-
var logsPeriodEndField = Ext.getCmp('logs_period_ended_at');
|
|
55
|
-
|
|
56
|
-
var logsPeriodsValidator = function () {
|
|
57
|
-
if (
|
|
58
|
-
logsPeriodStartField.getValue() &&
|
|
59
|
-
logsPeriodEndField.getValue() &&
|
|
60
|
-
logsPeriodStartField.getValue() > logsPeriodEndField.getValue()
|
|
61
|
-
) {
|
|
62
|
-
return 'Дата конца периода не может быть меньше даты начала периода'
|
|
63
|
-
};
|
|
64
|
-
|
|
65
50
|
return true;
|
|
66
51
|
};
|
|
@@ -168,6 +168,10 @@ class RDMExportingDataSubStageStatus(TitledModelEnum):
|
|
|
168
168
|
)
|
|
169
169
|
PROCESS_ERROR = ModelEnumValue(title='Ошибка обработки витриной')
|
|
170
170
|
|
|
171
|
+
IN_EXPORT = ModelEnumValue(
|
|
172
|
+
title='Экспортируется',
|
|
173
|
+
)
|
|
174
|
+
|
|
171
175
|
class Meta:
|
|
172
176
|
db_table = 'rdm_exporting_data_sub_stage_status'
|
|
173
177
|
verbose_name = 'Модель-перечисление статусов подэтапа выгрузки данных'
|
|
@@ -228,7 +228,8 @@ class BaseExportingDataProgressPack(BaseCommandProgressPack):
|
|
|
228
228
|
ready_sub_stages=Subquery(
|
|
229
229
|
RDMExportingDataSubStage.objects.filter(
|
|
230
230
|
stage_id=OuterRef('stage_id'),
|
|
231
|
-
|
|
231
|
+
status__in=(RDMExportingDataSubStageStatus.READY_FOR_EXPORT.key,
|
|
232
|
+
RDMExportingDataSubStageStatus.IN_EXPORT.key)
|
|
232
233
|
)
|
|
233
234
|
.annotate(
|
|
234
235
|
ready_count=Func(F('id'), function='Count', output_field=IntegerField()),
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{% include "ui-js/collect-and-export-validators.js" %}
|
|
2
|
+
|
|
3
|
+
var periodStartField = Ext.getCmp('period_started_at');
|
|
4
|
+
var periodEndField = Ext.getCmp('period_ended_at');
|
|
5
|
+
|
|
6
|
+
Ext.onReady(function() {
|
|
7
|
+
// Инициализация валидаторов
|
|
8
|
+
initializeValidators();
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
function initializeValidators() {
|
|
12
|
+
// Установка максимальной даты (завтра 23:59:59)
|
|
13
|
+
const maxDate = new Date();
|
|
14
|
+
maxDate.setDate(maxDate.getDate() + 1);
|
|
15
|
+
maxDate.setHours(23, 59, 59);
|
|
16
|
+
|
|
17
|
+
periodStartField.setMaxValue(maxDate);
|
|
18
|
+
periodEndField.setMaxValue(maxDate);
|
|
19
|
+
|
|
20
|
+
// Устанавливаем время по умолчанию в календаре и доп валидатор
|
|
21
|
+
setupPeriodFields(
|
|
22
|
+
periodStartField,
|
|
23
|
+
periodEndField,
|
|
24
|
+
);
|
|
25
|
+
}
|
|
@@ -21,15 +21,10 @@ from educommon.utils.seqtools import (
|
|
|
21
21
|
make_chunks,
|
|
22
22
|
)
|
|
23
23
|
|
|
24
|
-
from web_edu.plugins.regional_data_mart_integration.models import (
|
|
25
|
-
LessonClass,
|
|
26
|
-
)
|
|
27
|
-
|
|
28
24
|
from .base import (
|
|
29
25
|
BaseServiceOutdatedDataCleaner,
|
|
30
26
|
)
|
|
31
27
|
from .consts import (
|
|
32
|
-
OLD_RDM_MODEL,
|
|
33
28
|
UNION_CHUNK_SIZE,
|
|
34
29
|
)
|
|
35
30
|
|
|
@@ -49,14 +44,12 @@ class CollectingDataSubStageCleaner(BaseServiceOutdatedDataCleaner):
|
|
|
49
44
|
def _get_valid_substage_ids_subquery(self) -> Optional[Subquery]:
|
|
50
45
|
"""Подзапрос, возвращающий все допустимые collecting_sub_stage_id из моделей, описанных в RDMModelEnum."""
|
|
51
46
|
model_enum_values = RDMModelEnum.get_model_enum_values()
|
|
52
|
-
all_model = [model_enum.model for model_enum in model_enum_values]
|
|
47
|
+
all_model = [model_enum.model for model_enum in model_enum_values]
|
|
53
48
|
chunk_queries = []
|
|
54
49
|
|
|
55
50
|
for enum_values_chunk in make_chunks(all_model, UNION_CHUNK_SIZE, is_list=True):
|
|
56
51
|
qs_list = []
|
|
57
52
|
for model_cls in enum_values_chunk:
|
|
58
|
-
if model_cls in [LessonClass]:
|
|
59
|
-
continue
|
|
60
53
|
try:
|
|
61
54
|
model_cls._meta.get_field('collecting_sub_stage_id')
|
|
62
55
|
except FieldDoesNotExist:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
UNION_CHUNK_SIZE = 5
|
|
@@ -28,7 +28,6 @@ from .base import (
|
|
|
28
28
|
ServiceFileCleaner,
|
|
29
29
|
)
|
|
30
30
|
from .consts import (
|
|
31
|
-
OLD_RDM_MODEL,
|
|
32
31
|
UNION_CHUNK_SIZE,
|
|
33
32
|
)
|
|
34
33
|
|
|
@@ -47,7 +46,7 @@ class ExportingDataSubStageCleaner(BaseServiceOutdatedDataCleaner):
|
|
|
47
46
|
def _get_valid_substage_ids_subquery(self) -> Optional[Subquery]:
|
|
48
47
|
"""Подзапрос, возвращающий все допустимые exporting_sub_stage_id из моделей, описанных в RDMModelEnum."""
|
|
49
48
|
model_enum_values = RDMModelEnum.get_model_enum_values()
|
|
50
|
-
all_model = [model_enum.model for model_enum in model_enum_values]
|
|
49
|
+
all_model = [model_enum.model for model_enum in model_enum_values]
|
|
51
50
|
chunk_queries = []
|
|
52
51
|
|
|
53
52
|
for enum_values_chunk in make_chunks(all_model, UNION_CHUNK_SIZE, is_list=True):
|
|
@@ -9,9 +9,11 @@ class FileUploadStatusEnum(BaseEnumerate):
|
|
|
9
9
|
IN_PROGRESS = 1
|
|
10
10
|
FINISHED = 2
|
|
11
11
|
ERROR = 3
|
|
12
|
+
IN_CHECK = 4
|
|
12
13
|
|
|
13
14
|
values = {
|
|
14
15
|
IN_PROGRESS: 'В процессе загрузки в витрину',
|
|
15
16
|
FINISHED: 'Загрузка в витрину закончена',
|
|
16
17
|
ERROR: 'Ошибка загрузки в витрину',
|
|
18
|
+
IN_CHECK: 'На проверке'
|
|
17
19
|
}
|
|
@@ -106,11 +106,13 @@ class ExportQueueSender:
|
|
|
106
106
|
|
|
107
107
|
def get_sub_stages_attachments_to_export(self):
|
|
108
108
|
"""Выборка готовых к экспорту подэтапов."""
|
|
109
|
-
sub_stage_ids = (
|
|
109
|
+
sub_stage_ids = set(
|
|
110
110
|
RDMExportingDataSubStage.objects.filter(self._make_stage_filter())
|
|
111
111
|
.order_by('started_at')
|
|
112
112
|
.values_list('id', flat=True)[: self.limit]
|
|
113
113
|
)
|
|
114
|
+
RDMExportingDataSubStage.objects.filter(id__in=sub_stage_ids).update(
|
|
115
|
+
status=RDMExportingDataSubStageStatus.IN_EXPORT.key)
|
|
114
116
|
|
|
115
117
|
return (
|
|
116
118
|
RDMExportingDataSubStage.objects.filter(id__in=sub_stage_ids)
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
from time import (
|
|
2
|
+
sleep,
|
|
3
|
+
)
|
|
4
|
+
from typing import (
|
|
5
|
+
TYPE_CHECKING,
|
|
6
|
+
Any,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
from django.core.cache import (
|
|
10
|
+
cache,
|
|
11
|
+
)
|
|
12
|
+
from django.core.management.base import (
|
|
13
|
+
BaseCommand,
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
from edu_rdm_integration.core.consts import (
|
|
17
|
+
BATCH_SIZE,
|
|
18
|
+
)
|
|
19
|
+
from edu_rdm_integration.stages.upload_data.enums import (
|
|
20
|
+
FileUploadStatusEnum,
|
|
21
|
+
)
|
|
22
|
+
from edu_rdm_integration.stages.upload_data.helpers import (
|
|
23
|
+
UploadStatusHelper,
|
|
24
|
+
)
|
|
25
|
+
from edu_rdm_integration.stages.upload_data.models import (
|
|
26
|
+
RDMExportingDataSubStageUploaderClientLog,
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class Command(BaseCommand):
|
|
31
|
+
"""Команда для отправки данных в витрину параллельно-последовательно. В рамках скрипта последовательно,
|
|
32
|
+
параллельно количетвом запусков команды."""
|
|
33
|
+
|
|
34
|
+
help = 'Команда для отправки данных в витрину параллельно-последовательно' # noqa: A003
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def handle(self, *args: tuple[Any], **kwargs: dict[str, Any]) -> None:
|
|
38
|
+
"""Обработчик команды."""
|
|
39
|
+
while True:
|
|
40
|
+
self.stdout.write(f'Начало проверки статуса загрузки данных в витрину..')
|
|
41
|
+
|
|
42
|
+
# Получаем незавершенные загрузки данных в витрину
|
|
43
|
+
in_progress_uploads = RDMExportingDataSubStageUploaderClientLog.objects.filter(
|
|
44
|
+
file_upload_status=FileUploadStatusEnum.IN_PROGRESS,
|
|
45
|
+
is_emulation=False,
|
|
46
|
+
).select_related('attachment')[:BATCH_SIZE]
|
|
47
|
+
|
|
48
|
+
for upload in in_progress_uploads:
|
|
49
|
+
upload.file_upload_status = FileUploadStatusEnum.IN_CHECK
|
|
50
|
+
|
|
51
|
+
RDMExportingDataSubStageUploaderClientLog.objects.bulk_update(in_progress_uploads, fields=['file_upload_status'])
|
|
52
|
+
|
|
53
|
+
self.stdout.write(f'Обновление статуса загрузки данных в витрину на {FileUploadStatusEnum.IN_CHECK}..')
|
|
54
|
+
|
|
55
|
+
UploadStatusHelper(in_progress_uploads, cache).run()
|
|
56
|
+
|
|
57
|
+
sleep(10)
|
|
58
|
+
|
|
59
|
+
self.stdout.write(f'Окончание проверки статуса загрузки данных в витрину.\n\n')
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
from time import sleep
|
|
2
|
+
from typing import (
|
|
3
|
+
Any,
|
|
4
|
+
)
|
|
5
|
+
|
|
6
|
+
from django.core.management.base import (
|
|
7
|
+
BaseCommand,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
from django.core.cache import (
|
|
11
|
+
cache,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
from edu_rdm_integration.stages.upload_data.operations import (
|
|
15
|
+
UploadData,
|
|
16
|
+
)
|
|
17
|
+
from edu_rdm_integration.stages.upload_data.queues import (
|
|
18
|
+
RdmDictBasedSubStageAttachmentQueue
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class Command(BaseCommand):
|
|
23
|
+
"""Команда для отправки данных в витрину параллельно-последовательно. В рамках скрипта последовательно,
|
|
24
|
+
параллельно количетвом запусков команды."""
|
|
25
|
+
|
|
26
|
+
help = 'Команда для отправки данных в витрину параллельно-последовательно' # noqa: A003
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def handle(self, *args: tuple[Any], **kwargs: dict[str, Any]) -> None:
|
|
30
|
+
"""Обработчик команды."""
|
|
31
|
+
while True:
|
|
32
|
+
self.stdout.write(f'Начало отправки данных в витрину')
|
|
33
|
+
|
|
34
|
+
queue = RdmDictBasedSubStageAttachmentQueue()
|
|
35
|
+
upload_data = UploadData(
|
|
36
|
+
data_cache=cache,
|
|
37
|
+
queue=queue,
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
upload_result = upload_data.upload_data()
|
|
41
|
+
|
|
42
|
+
sleep(40)
|
|
43
|
+
|
|
44
|
+
self.stdout.write(f'Общий объем отправленных файлов {upload_result["total_file_size"]}')
|
|
45
|
+
self.stdout.write(f'Сущности, отправленные в витрину {upload_result["uploaded_entities"]}')
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import json
|
|
2
|
+
import uuid
|
|
2
3
|
from abc import (
|
|
3
4
|
ABC,
|
|
4
5
|
abstractmethod,
|
|
5
6
|
)
|
|
7
|
+
from collections import (
|
|
8
|
+
defaultdict,
|
|
9
|
+
)
|
|
6
10
|
from typing import (
|
|
7
11
|
Any,
|
|
8
12
|
Union,
|
|
@@ -66,8 +70,6 @@ class RdmRedisSubStageAttachmentQueue(Queue):
|
|
|
66
70
|
(Sorted Set in Redis)
|
|
67
71
|
- Информация по файлам стандартно по ключу - ключом выступает sub_stage_id
|
|
68
72
|
"""
|
|
69
|
-
|
|
70
|
-
queue_key = 'rdm:export_sub_stage_ids_queue'
|
|
71
73
|
prefix = 'rdm:'
|
|
72
74
|
|
|
73
75
|
def __init__(self, *args, **kwargs):
|
|
@@ -81,6 +83,9 @@ class RdmRedisSubStageAttachmentQueue(Queue):
|
|
|
81
83
|
password=settings.RDM_REDIS_PASSWORD,
|
|
82
84
|
)
|
|
83
85
|
|
|
86
|
+
self.queue_key = f'rdm:export_sub_stage_ids_queue:{str(uuid.uuid4())[:4]}'
|
|
87
|
+
|
|
88
|
+
|
|
84
89
|
def _make_key(self, key: Union[int, str]) -> str:
|
|
85
90
|
"""Формирование ключа."""
|
|
86
91
|
return f'{self.prefix}{key}'
|
|
@@ -169,3 +174,46 @@ class RdmRedisSubStageAttachmentQueue(Queue):
|
|
|
169
174
|
db = kwargs['db']
|
|
170
175
|
|
|
171
176
|
return f'Redis {version} on {host}:{port}/{db}'
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
class RdmDictBasedSubStageAttachmentQueue(Queue):
|
|
180
|
+
"""Очередь файлов и подэтапов на основе словаря.
|
|
181
|
+
|
|
182
|
+
Данные хранятся следующим образом:
|
|
183
|
+
- Словарь вида (id подэтапа, сущность): список с данными по файлам.
|
|
184
|
+
Данные по файлу в именнованном кортеже UpladFile
|
|
185
|
+
{
|
|
186
|
+
(sub_stage_id,entity): [UploadFile1, UploadFile2],
|
|
187
|
+
}
|
|
188
|
+
"""
|
|
189
|
+
|
|
190
|
+
def __init__(self, *args, **kwargs):
|
|
191
|
+
"""Инициализация объекта очереди Queue."""
|
|
192
|
+
super().__init__(*args, **kwargs)
|
|
193
|
+
|
|
194
|
+
self.data = defaultdict(list)
|
|
195
|
+
|
|
196
|
+
@property
|
|
197
|
+
def count(self) -> int:
|
|
198
|
+
"""Возвращает количество подэтапов в очереди."""
|
|
199
|
+
return len(self.data)
|
|
200
|
+
|
|
201
|
+
def enqueue(self, stage_id, entity_name: str, attachmets: list[UploadFile]) -> None:
|
|
202
|
+
"""Помещение в очередь.
|
|
203
|
+
|
|
204
|
+
Подэтап попадает в упорядоченную очередь."""
|
|
205
|
+
|
|
206
|
+
self.data[(stage_id, entity_name)].extend(attachmets)
|
|
207
|
+
|
|
208
|
+
def dequeue(self) -> dict[tuple[Any, Any], list[UploadFile]]:
|
|
209
|
+
"""Возвращает все данные из очереди."""
|
|
210
|
+
return self.data
|
|
211
|
+
|
|
212
|
+
def delete_from_queue(self, sub_stage_id: int, entity_name: str) -> None:
|
|
213
|
+
"""Удаление элемента из очереди."""
|
|
214
|
+
self.data.get((sub_stage_id, entity_name))
|
|
215
|
+
|
|
216
|
+
def clear(self) -> None:
|
|
217
|
+
"""Очистить очередь."""
|
|
218
|
+
self.data.clear()
|
|
219
|
+
|
|
@@ -32,7 +32,7 @@ from edu_rdm_integration.stages.upload_data.operations import (
|
|
|
32
32
|
UploadData,
|
|
33
33
|
)
|
|
34
34
|
from edu_rdm_integration.stages.upload_data.queues import (
|
|
35
|
-
|
|
35
|
+
RdmDictBasedSubStageAttachmentQueue
|
|
36
36
|
)
|
|
37
37
|
|
|
38
38
|
|
|
@@ -81,7 +81,7 @@ class UploadDataAsyncTask(UniquePeriodicAsyncTask):
|
|
|
81
81
|
"""Выполнение."""
|
|
82
82
|
super().process(*args, **kwargs)
|
|
83
83
|
|
|
84
|
-
queue =
|
|
84
|
+
queue = RdmDictBasedSubStageAttachmentQueue()
|
|
85
85
|
upload_data = UploadData(
|
|
86
86
|
data_cache=cache,
|
|
87
87
|
queue=queue,
|
{edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration/stages/utils.py
RENAMED
|
@@ -24,6 +24,18 @@ def update_foreign_key_constraint(
|
|
|
24
24
|
on_delete (str): Поведение при удалении связанной записи.
|
|
25
25
|
"""
|
|
26
26
|
with connection.cursor() as cursor:
|
|
27
|
+
# Проверяем существование таблиц
|
|
28
|
+
cursor.execute("""
|
|
29
|
+
SELECT EXISTS (
|
|
30
|
+
SELECT FROM information_schema.tables WHERE table_name = %s AND table_schema = 'public'
|
|
31
|
+
) AND EXISTS (
|
|
32
|
+
SELECT FROM information_schema.tables WHERE table_name = %s AND table_schema = 'public'
|
|
33
|
+
);
|
|
34
|
+
""", [table_name, target_table])
|
|
35
|
+
|
|
36
|
+
if not cursor.fetchone()[0]:
|
|
37
|
+
return
|
|
38
|
+
|
|
27
39
|
# Найти имя constraint'а
|
|
28
40
|
cursor.execute(f"""
|
|
29
41
|
SELECT conname
|
edu_rdm_integration-3.22.8/src/edu_rdm_integration/templates/ui-js/collect-and-export-validators.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
function logsPeriodsValidator(startField, endField) {
|
|
2
|
+
if (
|
|
3
|
+
startField.getValue() &&
|
|
4
|
+
endField.getValue() &&
|
|
5
|
+
startField.getValue() > endField.getValue()
|
|
6
|
+
) {
|
|
7
|
+
return 'Дата конца периода не может быть меньше даты начала периода';
|
|
8
|
+
}
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function setupPeriodFields(startField, endField) {
|
|
13
|
+
// Функция валидации обоих полей
|
|
14
|
+
function validatePeriodFields() {
|
|
15
|
+
startField.validate();
|
|
16
|
+
endField.validate();
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Установка времени начала по умолчанию 00:00:00
|
|
20
|
+
function setDefaultStartTime() {
|
|
21
|
+
if (!startField.getValue()) {
|
|
22
|
+
const defaultDateTime = new Date();
|
|
23
|
+
defaultDateTime.setHours(0, 0, 0);
|
|
24
|
+
startField.setValue(defaultDateTime);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// Установка времени конца по умолчанию 23:59:59
|
|
29
|
+
function setDefaultEndTime() {
|
|
30
|
+
if (!endField.getValue()) {
|
|
31
|
+
const defaultDateTime = new Date();
|
|
32
|
+
defaultDateTime.setHours(23, 59, 59);
|
|
33
|
+
endField.setValue(defaultDateTime);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Настройка обработчиков для поля начала периода
|
|
38
|
+
startField.menu.on('beforeshow', setDefaultStartTime);
|
|
39
|
+
startField.on('change', validatePeriodFields);
|
|
40
|
+
startField.on('select', validatePeriodFields);
|
|
41
|
+
|
|
42
|
+
// Настройка обработчиков для поля конца периода
|
|
43
|
+
endField.menu.on('beforeshow', setDefaultEndTime);
|
|
44
|
+
endField.on('change', validatePeriodFields);
|
|
45
|
+
endField.on('select', validatePeriodFields);
|
|
46
|
+
|
|
47
|
+
// Установка валидаторов
|
|
48
|
+
startField.validator = function() {
|
|
49
|
+
return logsPeriodsValidator(startField, endField);
|
|
50
|
+
};
|
|
51
|
+
endField.validator = function() {
|
|
52
|
+
return logsPeriodsValidator(startField, endField);
|
|
53
|
+
};
|
|
54
|
+
}
|
{edu_rdm_integration-3.22.5 → edu_rdm_integration-3.22.8}/src/edu_rdm_integration.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: edu-rdm-integration
|
|
3
|
-
Version: 3.22.
|
|
3
|
+
Version: 3.22.8
|
|
4
4
|
Summary: Интеграция с Региональной витриной данных
|
|
5
5
|
Author-email: BARS Group <education_dev@bars.group>
|
|
6
6
|
Project-URL: Homepage, https://stash.bars-open.ru/projects/EDUBASE/repos/edu-rdm-integration/browse
|
|
@@ -262,6 +262,8 @@ src/edu_rdm_integration/stages/upload_data/management/base.py
|
|
|
262
262
|
src/edu_rdm_integration/stages/upload_data/management/commands/__init__.py
|
|
263
263
|
src/edu_rdm_integration/stages/upload_data/management/commands/async_fix_attachment_size.py
|
|
264
264
|
src/edu_rdm_integration/stages/upload_data/management/commands/check_upload_status.py
|
|
265
|
+
src/edu_rdm_integration/stages/upload_data/management/commands/custom_check_upload_status.py
|
|
266
|
+
src/edu_rdm_integration/stages/upload_data/management/commands/custom_upload_files.py
|
|
265
267
|
src/edu_rdm_integration/stages/upload_data/management/commands/datamart_status.py
|
|
266
268
|
src/edu_rdm_integration/stages/upload_data/management/commands/datamart_upload.py
|
|
267
269
|
src/edu_rdm_integration/stages/upload_data/migrations/0001_initial.py
|
|
@@ -278,4 +280,5 @@ src/edu_rdm_integration/stages/upload_data/uploader_log/models.py
|
|
|
278
280
|
src/edu_rdm_integration/stages/upload_data/uploader_log/ui.py
|
|
279
281
|
src/edu_rdm_integration/stages/upload_data/uploader_log/migrations/0001_initial.py
|
|
280
282
|
src/edu_rdm_integration/stages/upload_data/uploader_log/migrations/__init__.py
|
|
281
|
-
src/edu_rdm_integration/stages/upload_data/uploader_log/templates/ui-js/object-grid-buttons.js
|
|
283
|
+
src/edu_rdm_integration/stages/upload_data/uploader_log/templates/ui-js/object-grid-buttons.js
|
|
284
|
+
src/edu_rdm_integration/templates/ui-js/collect-and-export-validators.js
|