edu-rdm-integration 3.9.2__py3-none-any.whl → 3.10.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- edu_rdm_integration/__init__.py +0 -1
- edu_rdm_integration/adapters/apps.py +15 -2
- edu_rdm_integration/adapters/caches.py +25 -12
- edu_rdm_integration/adapters/errors.py +13 -2
- edu_rdm_integration/adapters/functions.py +53 -14
- edu_rdm_integration/adapters/helpers.py +34 -8
- edu_rdm_integration/adapters/managers.py +41 -5
- edu_rdm_integration/adapters/presenters.py +26 -2
- edu_rdm_integration/adapters/receivers.py +16 -2
- edu_rdm_integration/adapters/results.py +50 -4
- edu_rdm_integration/adapters/runners.py +79 -20
- edu_rdm_integration/adapters/strategies.py +56 -54
- edu_rdm_integration/adapters/validators.py +43 -4
- edu_rdm_integration/apps.py +3 -23
- edu_rdm_integration/collect_and_export_data/__init__.py +1 -1
- edu_rdm_integration/collect_and_export_data/apps.py +1 -0
- edu_rdm_integration/collect_and_export_data/migrations/0001_initial.py +107 -17
- edu_rdm_integration/collect_and_export_data/migrations/0002_auto_20250204_1413.py +4 -2
- edu_rdm_integration/{consts.py → core/consts.py} +0 -11
- edu_rdm_integration/{enums.py → core/enums.py} +7 -54
- edu_rdm_integration/core/helpers.py +331 -0
- edu_rdm_integration/core/operations.py +71 -0
- edu_rdm_integration/core/redis_cache.py +20 -0
- edu_rdm_integration/{collect_and_export_data → core/registry}/actions.py +6 -12
- edu_rdm_integration/core/registry/apps.py +11 -0
- edu_rdm_integration/{collect_and_export_data → core/registry}/ui.py +1 -1
- edu_rdm_integration/{storages.py → core/storages.py} +8 -17
- edu_rdm_integration/{utils.py → core/utils.py} +29 -91
- edu_rdm_integration/migrations/0001_initial.py +294 -44
- edu_rdm_integration/migrations/0002_init_data_uploadstatus.py +1 -3
- edu_rdm_integration/migrations/0003_create_index_file_upload_status.py +0 -1
- edu_rdm_integration/migrations/0004_uploaderclientlog.py +1 -2
- edu_rdm_integration/migrations/0005_auto_20231204_1224.py +16 -4
- edu_rdm_integration/migrations/0006_request_status_data.py +60 -58
- edu_rdm_integration/migrations/0007_delete_upload_status.py +0 -1
- edu_rdm_integration/migrations/0009_auto_20240522_1619.py +1 -5
- edu_rdm_integration/migrations/0010_transferredentity_export_enabled.py +0 -1
- edu_rdm_integration/migrations/0011_exportingdatasubstageentity.py +16 -3
- edu_rdm_integration/migrations/0012_exportingdatasubstageattachment_attachment_size.py +0 -1
- edu_rdm_integration/migrations/0013_set_attachment_size.py +8 -12
- edu_rdm_integration/migrations/0014_uploaddatacommand.py +33 -6
- edu_rdm_integration/migrations/0015_set_exporting_sub_stage_status.py +1 -5
- edu_rdm_integration/migrations/0016_transferredentity_queue_level.py +2 -2
- edu_rdm_integration/migrations/0017_delete_uploaddatacommand.py +3 -2
- edu_rdm_integration/migrations/__init__.py +1 -0
- edu_rdm_integration/{registry → pipelines/transfer}/actions.py +13 -26
- edu_rdm_integration/pipelines/transfer/app_meta.py +18 -0
- edu_rdm_integration/pipelines/transfer/apps.py +19 -0
- edu_rdm_integration/pipelines/transfer/enums.py +34 -0
- edu_rdm_integration/pipelines/transfer/migrations/0001_initial.py +57 -0
- edu_rdm_integration/{base.py → pipelines/transfer/mixins.py} +29 -53
- edu_rdm_integration/pipelines/transfer/models.py +48 -0
- edu_rdm_integration/{tasks.py → pipelines/transfer/tasks.py} +51 -150
- edu_rdm_integration/{registry → pipelines/transfer}/ui.py +4 -10
- edu_rdm_integration/rdm_entities/apps.py +11 -0
- edu_rdm_integration/{entities.py → rdm_entities/entities.py} +67 -57
- edu_rdm_integration/rdm_entities/migrations/0001_initial.py +44 -0
- edu_rdm_integration/{enum_register → rdm_entities}/mixins.py +8 -59
- edu_rdm_integration/rdm_entities/models.py +63 -0
- edu_rdm_integration/rdm_entities/utils.py +33 -0
- edu_rdm_integration/rdm_models/apps.py +16 -0
- edu_rdm_integration/rdm_models/migrations/0001_initial.py +40 -0
- edu_rdm_integration/rdm_models/mixins.py +67 -0
- edu_rdm_integration/rdm_models/models.py +73 -0
- edu_rdm_integration/rdm_models/utils.py +23 -0
- edu_rdm_integration/stages/collect_data/apps.py +11 -0
- edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/functions.py-tpl +2 -2
- edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/managers.py-tpl +1 -1
- edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/runners.py-tpl +1 -1
- edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/tests.py-tpl +2 -1
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/caches.py +2 -2
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/functions.py +15 -18
- edu_rdm_integration/stages/collect_data/functions/base/helpers.py +20 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/managers.py +20 -27
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/mixins.py +38 -55
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/runners.py +2 -5
- edu_rdm_integration/stages/collect_data/functions/calculated/base/__init__.py +0 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/caches.py +3 -7
- edu_rdm_integration/stages/collect_data/functions/calculated/base/errors.py +7 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/functions.py +8 -16
- edu_rdm_integration/stages/collect_data/functions/calculated/base/helpers.py +24 -0
- edu_rdm_integration/stages/collect_data/functions/calculated/base/managers.py +19 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/presenters.py +1 -3
- edu_rdm_integration/stages/collect_data/functions/calculated/base/results.py +12 -0
- edu_rdm_integration/stages/collect_data/functions/calculated/base/runners.py +28 -0
- edu_rdm_integration/stages/collect_data/functions/calculated/base/validators.py +20 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/strategies.py +32 -70
- edu_rdm_integration/stages/collect_data/functions/non_calculated/__init__.py +0 -0
- edu_rdm_integration/stages/collect_data/functions/non_calculated/base/__init__.py +0 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/caches.py +13 -22
- edu_rdm_integration/stages/collect_data/functions/non_calculated/base/errors.py +7 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/functions.py +8 -16
- edu_rdm_integration/stages/collect_data/functions/non_calculated/base/helpers.py +24 -0
- edu_rdm_integration/stages/collect_data/functions/non_calculated/base/managers.py +19 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/presenters.py +1 -3
- edu_rdm_integration/stages/collect_data/functions/non_calculated/base/results.py +12 -0
- edu_rdm_integration/stages/collect_data/functions/non_calculated/base/runners.py +28 -0
- edu_rdm_integration/stages/collect_data/functions/non_calculated/base/validators.py +20 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/strategies.py +32 -70
- edu_rdm_integration/{collect_data → stages/collect_data}/generators.py +9 -14
- edu_rdm_integration/stages/collect_data/helpers.py +154 -0
- edu_rdm_integration/stages/collect_data/management/__init__.py +0 -0
- edu_rdm_integration/stages/collect_data/management/base.py +100 -0
- edu_rdm_integration/stages/collect_data/management/commands/__init__.py +0 -0
- edu_rdm_integration/{management → stages/collect_data/management}/commands/collect_latest_models_data.py +5 -7
- edu_rdm_integration/{management → stages/collect_data/management}/commands/collect_models_data.py +5 -7
- edu_rdm_integration/stages/collect_data/migrations/0001_initial.py +187 -0
- edu_rdm_integration/stages/collect_data/migrations/0002_edurdmcollectdatacommandprogress.py +105 -0
- edu_rdm_integration/stages/collect_data/migrations/__init__.py +0 -0
- edu_rdm_integration/stages/collect_data/mixins.py +56 -0
- edu_rdm_integration/stages/collect_data/models.py +318 -0
- edu_rdm_integration/{collect_data/collect.py → stages/collect_data/operations.py} +30 -43
- edu_rdm_integration/stages/collect_data/registry/__init__.py +0 -0
- edu_rdm_integration/{collect_data → stages/collect_data/registry}/actions.py +17 -20
- edu_rdm_integration/stages/collect_data/registry/apps.py +11 -0
- edu_rdm_integration/{collect_data → stages/collect_data/registry}/ui.py +8 -15
- edu_rdm_integration/{collect_data → stages/collect_data}/tests.py +2 -2
- edu_rdm_integration/stages/export_data/__init__.py +0 -0
- edu_rdm_integration/stages/export_data/apps.py +11 -0
- edu_rdm_integration/stages/export_data/function_templates/__init__.py +0 -0
- edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/functions.py-tpl +2 -2
- edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/managers.py-tpl +2 -2
- edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/runners.py-tpl +2 -2
- edu_rdm_integration/stages/export_data/functions/__init__.py +0 -0
- edu_rdm_integration/stages/export_data/functions/base/__init__.py +0 -0
- edu_rdm_integration/{export_data → stages/export_data/functions}/base/caches.py +3 -8
- edu_rdm_integration/stages/export_data/functions/base/errors.py +7 -0
- edu_rdm_integration/{export_data → stages/export_data/functions}/base/functions.py +28 -59
- edu_rdm_integration/{export_data → stages/export_data/functions}/base/helpers.py +7 -17
- edu_rdm_integration/{export_data → stages/export_data/functions}/base/managers.py +19 -28
- edu_rdm_integration/stages/export_data/functions/base/presenters.py +11 -0
- edu_rdm_integration/{export_data → stages/export_data/functions}/base/requests.py +13 -40
- edu_rdm_integration/stages/export_data/functions/base/results.py +12 -0
- edu_rdm_integration/{export_data → stages/export_data/functions}/base/runners.py +9 -21
- edu_rdm_integration/stages/export_data/functions/base/validators.py +20 -0
- edu_rdm_integration/{export_data → stages/export_data}/generators.py +7 -6
- edu_rdm_integration/stages/export_data/helpers.py +203 -0
- edu_rdm_integration/stages/export_data/management/__init__.py +0 -0
- edu_rdm_integration/stages/export_data/management/base.py +101 -0
- edu_rdm_integration/stages/export_data/management/commands/__init__.py +0 -0
- edu_rdm_integration/{management → stages/export_data/management}/commands/export_entities_data.py +5 -7
- edu_rdm_integration/{management → stages/export_data/management}/commands/export_latest_entities_data.py +5 -7
- edu_rdm_integration/stages/export_data/migrations/0001_initial.py +324 -0
- edu_rdm_integration/stages/export_data/migrations/__init__.py +0 -0
- edu_rdm_integration/stages/export_data/mixins.py +50 -0
- edu_rdm_integration/stages/export_data/models.py +362 -0
- edu_rdm_integration/{export_data/export.py → stages/export_data/operations.py} +13 -152
- edu_rdm_integration/stages/export_data/registry/__init__.py +0 -0
- edu_rdm_integration/{export_data → stages/export_data/registry}/actions.py +18 -18
- edu_rdm_integration/stages/export_data/registry/apps.py +11 -0
- edu_rdm_integration/{export_data → stages/export_data/registry}/ui.py +5 -7
- edu_rdm_integration/{export_data → stages/export_data}/strategies.py +30 -68
- edu_rdm_integration/stages/service/__init__.py +0 -0
- edu_rdm_integration/stages/service/apps.py +19 -0
- edu_rdm_integration/stages/service/tasks.py +63 -0
- edu_rdm_integration/stages/upload_data/__init__.py +0 -0
- edu_rdm_integration/stages/upload_data/apps.py +19 -0
- edu_rdm_integration/stages/upload_data/consts.py +10 -0
- edu_rdm_integration/{export_data → stages/upload_data}/dataclasses.py +1 -0
- edu_rdm_integration/stages/upload_data/enums.py +17 -0
- edu_rdm_integration/{export_data/export_manager.py → stages/upload_data/export_managers.py} +73 -68
- edu_rdm_integration/stages/upload_data/helpers.py +164 -0
- edu_rdm_integration/stages/upload_data/management/__init__.py +0 -0
- edu_rdm_integration/stages/upload_data/management/base.py +134 -0
- edu_rdm_integration/stages/upload_data/management/commands/__init__.py +0 -0
- edu_rdm_integration/{management → stages/upload_data/management}/commands/async_fix_attachment_size.py +32 -54
- edu_rdm_integration/{management → stages/upload_data/management}/commands/check_upload_status.py +7 -6
- edu_rdm_integration/{management → stages/upload_data/management}/commands/datamart_status.py +3 -3
- edu_rdm_integration/{management → stages/upload_data/management}/commands/datamart_upload.py +4 -4
- edu_rdm_integration/stages/upload_data/migrations/0001_initial.py +161 -0
- edu_rdm_integration/stages/upload_data/migrations/__init__.py +0 -0
- edu_rdm_integration/stages/upload_data/models.py +175 -0
- edu_rdm_integration/stages/upload_data/operations.py +156 -0
- edu_rdm_integration/{export_data/queue.py → stages/upload_data/queues.py} +10 -8
- edu_rdm_integration/stages/upload_data/tasks.py +103 -0
- edu_rdm_integration/stages/upload_data/uploader_log/__init__.py +0 -0
- edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/actions.py +14 -16
- edu_rdm_integration/stages/upload_data/uploader_log/apps.py +11 -0
- edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/managers.py +15 -30
- edu_rdm_integration/stages/upload_data/uploader_log/migrations/0001_initial.py +31 -0
- edu_rdm_integration/stages/upload_data/uploader_log/migrations/__init__.py +0 -0
- edu_rdm_integration/stages/upload_data/uploader_log/models.py +86 -0
- edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/ui.py +8 -6
- {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.0.dist-info}/METADATA +238 -238
- edu_rdm_integration-3.10.0.dist-info/RECORD +255 -0
- edu_rdm_integration/app_meta.py +0 -16
- edu_rdm_integration/app_settings.py +0 -77
- edu_rdm_integration/collect_and_export_data/models.py +0 -67
- edu_rdm_integration/collect_and_export_data/utils.py +0 -224
- edu_rdm_integration/collect_data/base/helpers.py +0 -26
- edu_rdm_integration/collect_data/calculated/base/errors.py +0 -9
- edu_rdm_integration/collect_data/calculated/base/helpers.py +0 -32
- edu_rdm_integration/collect_data/calculated/base/managers.py +0 -23
- edu_rdm_integration/collect_data/calculated/base/results.py +0 -16
- edu_rdm_integration/collect_data/calculated/base/runners.py +0 -36
- edu_rdm_integration/collect_data/calculated/base/validators.py +0 -28
- edu_rdm_integration/collect_data/helpers.py +0 -92
- edu_rdm_integration/collect_data/non_calculated/base/errors.py +0 -9
- edu_rdm_integration/collect_data/non_calculated/base/helpers.py +0 -32
- edu_rdm_integration/collect_data/non_calculated/base/managers.py +0 -23
- edu_rdm_integration/collect_data/non_calculated/base/results.py +0 -16
- edu_rdm_integration/collect_data/non_calculated/base/runners.py +0 -36
- edu_rdm_integration/collect_data/non_calculated/base/validators.py +0 -28
- edu_rdm_integration/enum_register/register.py +0 -79
- edu_rdm_integration/export_data/base/errors.py +0 -9
- edu_rdm_integration/export_data/base/presenters.py +0 -13
- edu_rdm_integration/export_data/base/results.py +0 -16
- edu_rdm_integration/export_data/base/validators.py +0 -28
- edu_rdm_integration/export_data/helpers.py +0 -92
- edu_rdm_integration/helpers.py +0 -412
- edu_rdm_integration/management/general.py +0 -327
- edu_rdm_integration/models.py +0 -982
- edu_rdm_integration/redis_cache.py +0 -51
- edu_rdm_integration/uploader_log/apps.py +0 -10
- edu_rdm_integration-3.9.2.dist-info/RECORD +0 -198
- /edu_rdm_integration/{collect_and_export_data/migrations → core}/__init__.py +0 -0
- /edu_rdm_integration/{mapping.py → core/mapping.py} +0 -0
- /edu_rdm_integration/{collect_data → core/registry}/__init__.py +0 -0
- /edu_rdm_integration/{templates → core/registry/templates}/ui-js/start-task.js +0 -0
- /edu_rdm_integration/{signals.py → core/signals.py} +0 -0
- /edu_rdm_integration/{typing.py → core/typing.py} +0 -0
- /edu_rdm_integration/{collect_data/base → pipelines}/__init__.py +0 -0
- /edu_rdm_integration/{collect_data/calculated → pipelines/transfer}/__init__.py +0 -0
- /edu_rdm_integration/{collect_data/calculated/base → pipelines/transfer/migrations}/__init__.py +0 -0
- /edu_rdm_integration/{templates → pipelines/transfer/templates}/ui-js/transferred-entity-list.js +0 -0
- /edu_rdm_integration/{collect_data/non_calculated → rdm_entities}/__init__.py +0 -0
- /edu_rdm_integration/{collect_data/non_calculated/base → rdm_entities/migrations}/__init__.py +0 -0
- /edu_rdm_integration/{enum_register → rdm_models}/__init__.py +0 -0
- /edu_rdm_integration/{export_data → rdm_models/migrations}/__init__.py +0 -0
- /edu_rdm_integration/{export_data/base → stages}/__init__.py +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data}/__init__.py +0 -0
- /edu_rdm_integration/{collect_data/const.py → stages/collect_data/consts.py} +0 -0
- /edu_rdm_integration/{management → stages/collect_data/function_templates}/__init__.py +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/__init__.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/apps.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/caches.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/consts.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/enums.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/errors.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/helpers.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/presenters.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/results.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/strings.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/validators.py-tpl +0 -0
- /edu_rdm_integration/{management/commands → stages/collect_data/functions}/__init__.py +0 -0
- /edu_rdm_integration/{registry → stages/collect_data/functions/base}/__init__.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/consts.py +0 -0
- /edu_rdm_integration/{uploader_log → stages/collect_data/functions/calculated}/__init__.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/consts.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/enums.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/strings.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/tests.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/consts.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/enums.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/strings.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/tests.py +0 -0
- /edu_rdm_integration/{export_data → stages/export_data}/consts.py +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/__init__.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/apps.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/caches.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/consts.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/enums.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/errors.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/helpers.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/presenters.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/results.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/strings.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/tests.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/validators.py-tpl +0 -0
- /edu_rdm_integration/{export_data → stages/export_data/functions}/base/consts.py +0 -0
- /edu_rdm_integration/{export_data → stages/export_data/functions}/base/enums.py +0 -0
- /edu_rdm_integration/{export_data → stages/export_data/functions}/base/strings.py +0 -0
- /edu_rdm_integration/{export_data → stages/export_data/functions}/base/tests.py +0 -0
- /edu_rdm_integration/{templates → stages/export_data/registry/templates}/ui-js/stage_for_export.js +0 -0
- /edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/enums.py +0 -0
- /edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/templates/ui-js/object-grid-buttons.js +0 -0
- {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.0.dist-info}/WHEEL +0 -0
- {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.0.dist-info}/licenses/LICENSE +0 -0
- {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.0.dist-info}/top_level.txt +0 -0
@@ -33,25 +33,27 @@ from m3_db_utils.models import (
|
|
33
33
|
ModelEnumValue,
|
34
34
|
)
|
35
35
|
|
36
|
-
from edu_rdm_integration.
|
36
|
+
from edu_rdm_integration.core.consts import (
|
37
|
+
REGIONAL_DATA_MART_INTEGRATION_COLLECTING_DATA,
|
38
|
+
)
|
39
|
+
from edu_rdm_integration.core.operations import (
|
37
40
|
BaseOperationData,
|
38
41
|
)
|
39
|
-
from edu_rdm_integration.
|
40
|
-
|
42
|
+
from edu_rdm_integration.core.signals import (
|
43
|
+
manager_created,
|
41
44
|
)
|
42
|
-
from edu_rdm_integration.
|
43
|
-
|
45
|
+
from edu_rdm_integration.core.storages import (
|
46
|
+
RegionalDataMartEntityStorage,
|
44
47
|
)
|
45
|
-
from edu_rdm_integration.models import (
|
46
|
-
CollectingDataStageStatus,
|
47
|
-
CollectingExportedDataStage,
|
48
|
+
from edu_rdm_integration.rdm_models.models import (
|
48
49
|
RegionalDataMartModelEnum,
|
49
50
|
)
|
50
|
-
from edu_rdm_integration.
|
51
|
-
|
51
|
+
from edu_rdm_integration.stages.collect_data.helpers import (
|
52
|
+
get_collecting_managers_max_period_ended_dates,
|
52
53
|
)
|
53
|
-
from edu_rdm_integration.
|
54
|
-
|
54
|
+
from edu_rdm_integration.stages.collect_data.models import (
|
55
|
+
CollectingDataStageStatus,
|
56
|
+
CollectingExportedDataStage,
|
55
57
|
)
|
56
58
|
|
57
59
|
|
@@ -60,7 +62,7 @@ if TYPE_CHECKING:
|
|
60
62
|
AuditLog,
|
61
63
|
)
|
62
64
|
|
63
|
-
from edu_rdm_integration.collect_data.generators import (
|
65
|
+
from edu_rdm_integration.stages.collect_data.generators import (
|
64
66
|
BaseEduLogGenerator,
|
65
67
|
)
|
66
68
|
|
@@ -79,9 +81,7 @@ class BaseCollectModelsData(BaseOperationData):
|
|
79
81
|
|
80
82
|
# Если модели не указаны, берется значение по умолчанию - все модели:
|
81
83
|
models = models if models else RegionalDataMartModelEnum.get_enum_data().keys()
|
82
|
-
self.models: list[ModelEnumValue] = [
|
83
|
-
RegionalDataMartModelEnum.get_model_enum_value(model) for model in models
|
84
|
-
]
|
84
|
+
self.models: list[ModelEnumValue] = [RegionalDataMartModelEnum.get_model_enum_value(model) for model in models]
|
85
85
|
|
86
86
|
self.logs_period_started_at = logs_period_started_at
|
87
87
|
self.logs_period_ended_at = logs_period_ended_at
|
@@ -94,9 +94,7 @@ class BaseCollectModelsData(BaseOperationData):
|
|
94
94
|
|
95
95
|
@property
|
96
96
|
def _log_file_path(self) -> str:
|
97
|
-
"""
|
98
|
-
Путь до лог файла.
|
99
|
-
"""
|
97
|
+
"""Путь до лог файла."""
|
100
98
|
return os.path.join(settings.MEDIA_ROOT, settings.RDM_COLLECT_LOG_DIR, f'{self.command_id}.log')
|
101
99
|
|
102
100
|
def _has_stage_created_or_in_progress(self, manager_id: str, model: str) -> bool:
|
@@ -107,9 +105,7 @@ class BaseCollectModelsData(BaseOperationData):
|
|
107
105
|
return False
|
108
106
|
|
109
107
|
def _find_collecting_models_data_managers(self):
|
110
|
-
"""
|
111
|
-
Поиск менеджеров Функций, которые должны быть запущены для сбора данных моделей РВД.
|
112
|
-
"""
|
108
|
+
"""Поиск менеджеров Функций, которые должны быть запущены для сбора данных моделей РВД."""
|
113
109
|
logger.info('collecting models data managers..')
|
114
110
|
|
115
111
|
entity_storage = RegionalDataMartEntityStorage()
|
@@ -130,9 +126,7 @@ class BaseCollectModelsData(BaseOperationData):
|
|
130
126
|
logger.info('collecting models data managers finished')
|
131
127
|
|
132
128
|
def _collect_models_data(self, *args, logs: Optional[dict[str, list['AuditLog']]] = None, **kwargs):
|
133
|
-
"""
|
134
|
-
Запуск Функций по формированию данных моделей РВД из логов.
|
135
|
-
"""
|
129
|
+
"""Запуск Функций по формированию данных моделей РВД из логов."""
|
136
130
|
logger.info('collect models data..')
|
137
131
|
|
138
132
|
kwargs['logs_period_started_at'] = self.logs_period_started_at
|
@@ -153,9 +147,7 @@ class BaseCollectModelsData(BaseOperationData):
|
|
153
147
|
logger.info('collecting models data finished.')
|
154
148
|
|
155
149
|
def _collect(self):
|
156
|
-
"""
|
157
|
-
Собирает данные моделей РВД.
|
158
|
-
"""
|
150
|
+
"""Собирает данные моделей РВД."""
|
159
151
|
logger.info(f'start collecting data of models - {", ".join([model.key for model in self.models])}..')
|
160
152
|
|
161
153
|
self._find_collecting_models_data_managers()
|
@@ -164,9 +156,7 @@ class BaseCollectModelsData(BaseOperationData):
|
|
164
156
|
logger.info('collecting data of models is finished.')
|
165
157
|
|
166
158
|
def collect(self):
|
167
|
-
"""
|
168
|
-
Запускает сбор данных.
|
169
|
-
"""
|
159
|
+
"""Запускает сбор данных."""
|
170
160
|
try:
|
171
161
|
self._collect()
|
172
162
|
except Exception as err:
|
@@ -224,9 +214,7 @@ class BaseCollectModelsDataByGeneratingLogs(BaseCollectModelsData):
|
|
224
214
|
return [(temp_logs, self.logs_period_started_at, self.logs_period_ended_at)]
|
225
215
|
|
226
216
|
def _collect(self):
|
227
|
-
"""
|
228
|
-
Собирает данные моделей РВД.
|
229
|
-
"""
|
217
|
+
"""Собирает данные моделей РВД."""
|
230
218
|
logger.info(f'start collecting data of models - {", ".join([model.key for model in self.models])}..')
|
231
219
|
self._find_collecting_models_data_managers()
|
232
220
|
|
@@ -242,11 +230,9 @@ class BaseCollectModelsDataByGeneratingLogs(BaseCollectModelsData):
|
|
242
230
|
|
243
231
|
|
244
232
|
class BaseCollectLatestModelsData(BaseCollectModelsData):
|
245
|
-
"""
|
246
|
-
Сбор данных моделей РВД на основе логов за период с последней сборки до указанной даты.
|
247
|
-
"""
|
233
|
+
"""Сбор данных моделей РВД на основе логов за период с последней сборки до указанной даты."""
|
248
234
|
|
249
|
-
def __init__(self, *args,
|
235
|
+
def __init__(self, *args, use_times_limit: bool = False, **kwargs):
|
250
236
|
super().__init__(*args, **kwargs)
|
251
237
|
|
252
238
|
# Если этот параметр не указан - то высчитываем временные рамки по менеджеру, не учитывая переданные
|
@@ -266,9 +252,7 @@ class BaseCollectLatestModelsData(BaseCollectModelsData):
|
|
266
252
|
return stage_created_or_in_progress
|
267
253
|
|
268
254
|
def _collect_models_data(self, *args, logs: Optional[dict[str, list['AuditLog']]] = None, **kwargs) -> None:
|
269
|
-
"""
|
270
|
-
Запуск Функций по формированию данных из логов для дальнейшей выгрузки.
|
271
|
-
"""
|
255
|
+
"""Запуск Функций по формированию данных из логов для дальнейшей выгрузки."""
|
272
256
|
logger.info('collect models data..')
|
273
257
|
|
274
258
|
managers_last_period_ended_at = get_collecting_managers_max_period_ended_dates(
|
@@ -279,8 +263,11 @@ class BaseCollectLatestModelsData(BaseCollectModelsData):
|
|
279
263
|
model_logs = logs.get(model_key) if logs else None
|
280
264
|
manager_last_period_ended_at = managers_last_period_ended_at.get(manager_class.uuid)
|
281
265
|
|
282
|
-
kwargs['logs_period_started_at'] =
|
283
|
-
|
266
|
+
kwargs['logs_period_started_at'] = (
|
267
|
+
self.logs_period_started_at
|
268
|
+
if self.use_times_limit
|
269
|
+
else (manager_last_period_ended_at or get_today_min_datetime())
|
270
|
+
)
|
284
271
|
kwargs['logs_period_ended_at'] = self.logs_period_ended_at if self.use_times_limit else timezone.now()
|
285
272
|
|
286
273
|
manager = manager_class(*args, logs=model_logs, **kwargs)
|
File without changes
|
@@ -30,31 +30,31 @@ from educommon.utils.ui import (
|
|
30
30
|
DatetimeFilterCreator,
|
31
31
|
)
|
32
32
|
|
33
|
-
from edu_rdm_integration.
|
33
|
+
from edu_rdm_integration.core.enums import (
|
34
|
+
CommandType,
|
35
|
+
)
|
36
|
+
from edu_rdm_integration.core.helpers import (
|
37
|
+
make_download_link,
|
38
|
+
)
|
39
|
+
from edu_rdm_integration.core.registry.actions import (
|
34
40
|
BaseCommandProgressPack,
|
35
41
|
BaseStartTaskAction,
|
36
42
|
)
|
37
|
-
from edu_rdm_integration.
|
38
|
-
|
43
|
+
from edu_rdm_integration.rdm_models.models import (
|
44
|
+
RegionalDataMartModelEnum,
|
39
45
|
)
|
40
|
-
from edu_rdm_integration.collect_data.generators import (
|
46
|
+
from edu_rdm_integration.stages.collect_data.generators import (
|
41
47
|
FirstCollectModelsDataCommandsGenerator,
|
42
48
|
)
|
43
|
-
from edu_rdm_integration.collect_data.
|
44
|
-
CreateCollectCommandWindow,
|
45
|
-
DetailCollectCommandWindow,
|
46
|
-
)
|
47
|
-
from edu_rdm_integration.enums import (
|
48
|
-
CommandType,
|
49
|
-
)
|
50
|
-
from edu_rdm_integration.helpers import (
|
51
|
-
make_download_link,
|
52
|
-
)
|
53
|
-
from edu_rdm_integration.models import (
|
49
|
+
from edu_rdm_integration.stages.collect_data.models import (
|
54
50
|
CollectingDataStageStatus,
|
55
51
|
CollectingDataSubStageStatus,
|
56
52
|
CollectingExportedDataSubStage,
|
57
|
-
|
53
|
+
EduRdmCollectDataCommandProgress,
|
54
|
+
)
|
55
|
+
from edu_rdm_integration.stages.collect_data.registry.ui import (
|
56
|
+
CreateCollectCommandWindow,
|
57
|
+
DetailCollectCommandWindow,
|
58
58
|
)
|
59
59
|
|
60
60
|
|
@@ -173,7 +173,6 @@ class BaseCollectingDataProgressPack(BaseCommandProgressPack):
|
|
173
173
|
|
174
174
|
def get_list_window_params(self, params, request, context):
|
175
175
|
"""Получает параметры окна списка."""
|
176
|
-
|
177
176
|
params = super().get_list_window_params(params, request, context)
|
178
177
|
|
179
178
|
params['start_task_url'] = self.start_task_action.get_absolute_url()
|
@@ -183,7 +182,6 @@ class BaseCollectingDataProgressPack(BaseCommandProgressPack):
|
|
183
182
|
|
184
183
|
def declare_context(self, action):
|
185
184
|
"""Объявление контекста."""
|
186
|
-
|
187
185
|
context = super().declare_context(action)
|
188
186
|
|
189
187
|
if action is self.save_action:
|
@@ -231,8 +229,7 @@ class BaseCollectingDataProgressPack(BaseCommandProgressPack):
|
|
231
229
|
|
232
230
|
@atomic
|
233
231
|
def save_row(self, obj, create_new, request, context, *args, **kwargs):
|
234
|
-
"""
|
235
|
-
Сохраняет объект.
|
232
|
+
"""Сохраняет объект.
|
236
233
|
|
237
234
|
Переопределено, т.к. на основе полученных параметров от клиента,
|
238
235
|
необходимо сформировать команды на сбор и их сохранить в модели.
|
@@ -0,0 +1,11 @@
|
|
1
|
+
from django.apps import (
|
2
|
+
AppConfig,
|
3
|
+
)
|
4
|
+
|
5
|
+
|
6
|
+
class RDMCollectDataRegistryAppConfig(AppConfig):
|
7
|
+
"""Приложение для организации сбора данных моделей РВД из интерфейса."""
|
8
|
+
|
9
|
+
name = 'edu_rdm_integration.stages.collect_data.registry'
|
10
|
+
label = 'edu_rdm_integration_collect_data_registry'
|
11
|
+
verbose_name = 'Сбор данных моделей РВД из интерфейса'
|
@@ -14,9 +14,6 @@ from m3_ext.ui.fields.simple import (
|
|
14
14
|
from m3_ext.ui.misc import (
|
15
15
|
ExtDataStore,
|
16
16
|
)
|
17
|
-
from objectpack.ui import (
|
18
|
-
allow_blank,
|
19
|
-
)
|
20
17
|
|
21
18
|
from educommon.objectpack.ui import (
|
22
19
|
BaseEditWindow,
|
@@ -25,18 +22,18 @@ from educommon.utils.date import (
|
|
25
22
|
DatesSplitter,
|
26
23
|
)
|
27
24
|
|
28
|
-
from edu_rdm_integration.
|
29
|
-
BaseCreateCommandWindow,
|
30
|
-
)
|
31
|
-
from edu_rdm_integration.collect_data.const import (
|
32
|
-
ALL_UNITS_IN_COMMAND,
|
33
|
-
)
|
34
|
-
from edu_rdm_integration.consts import (
|
25
|
+
from edu_rdm_integration.core.consts import (
|
35
26
|
BATCH_SIZE,
|
36
27
|
)
|
37
|
-
from edu_rdm_integration.
|
28
|
+
from edu_rdm_integration.core.registry.ui import (
|
29
|
+
BaseCreateCommandWindow,
|
30
|
+
)
|
31
|
+
from edu_rdm_integration.rdm_models.models import (
|
38
32
|
RegionalDataMartModelEnum,
|
39
33
|
)
|
34
|
+
from edu_rdm_integration.stages.collect_data.consts import (
|
35
|
+
ALL_UNITS_IN_COMMAND,
|
36
|
+
)
|
40
37
|
|
41
38
|
|
42
39
|
class CreateCollectCommandWindow(BaseCreateCommandWindow):
|
@@ -44,7 +41,6 @@ class CreateCollectCommandWindow(BaseCreateCommandWindow):
|
|
44
41
|
|
45
42
|
def _init_components(self):
|
46
43
|
"""Инициализация компонентов."""
|
47
|
-
|
48
44
|
super()._init_components()
|
49
45
|
|
50
46
|
model = ExtComboBox(
|
@@ -163,7 +159,6 @@ class DetailCollectCommandWindow(BaseEditWindow):
|
|
163
159
|
|
164
160
|
def set_params(self, params: Dict[str, Any]) -> None:
|
165
161
|
"""Устанавливает параметры окна."""
|
166
|
-
|
167
162
|
super().set_params(params)
|
168
163
|
|
169
164
|
self.height = 'auto'
|
@@ -171,7 +166,6 @@ class DetailCollectCommandWindow(BaseEditWindow):
|
|
171
166
|
|
172
167
|
def _init_components(self) -> None:
|
173
168
|
"""Инициализирует компоненты окна."""
|
174
|
-
|
175
169
|
super()._init_components()
|
176
170
|
|
177
171
|
self.model_field = ExtStringField(
|
@@ -227,7 +221,6 @@ class DetailCollectCommandWindow(BaseEditWindow):
|
|
227
221
|
|
228
222
|
def _do_layout(self) -> None:
|
229
223
|
"""Располагает компоненты окна."""
|
230
|
-
|
231
224
|
super()._do_layout()
|
232
225
|
|
233
226
|
self.form.items.extend(
|
@@ -38,10 +38,10 @@ from function_tools.models import (
|
|
38
38
|
EntityType,
|
39
39
|
)
|
40
40
|
|
41
|
-
from edu_rdm_integration.consts import (
|
41
|
+
from edu_rdm_integration.core.consts import (
|
42
42
|
REGIONAL_DATA_MART_INTEGRATION_COLLECTING_DATA,
|
43
43
|
)
|
44
|
-
from edu_rdm_integration.models import (
|
44
|
+
from edu_rdm_integration.stages.collect_data.models import (
|
45
45
|
CollectingExportedDataStage,
|
46
46
|
CollectingExportedDataSubStage,
|
47
47
|
)
|
File without changes
|
@@ -0,0 +1,11 @@
|
|
1
|
+
from django.apps import (
|
2
|
+
AppConfig,
|
3
|
+
)
|
4
|
+
|
5
|
+
|
6
|
+
class RDMExportDataStageAppConfig(AppConfig):
|
7
|
+
"""Приложение для организации этапа выгрузки собранных данных в файлы."""
|
8
|
+
|
9
|
+
name = 'edu_rdm_integration.stages.export_data'
|
10
|
+
label = 'edu_rdm_integration_export_data_stage'
|
11
|
+
verbose_name = 'Этап выгрузки данных в файлы'
|
File without changes
|
@@ -3,10 +3,10 @@ from typing import (
|
|
3
3
|
Optional,
|
4
4
|
)
|
5
5
|
|
6
|
-
from edu_rdm_integration.consts import (
|
6
|
+
from edu_rdm_integration.core.consts import (
|
7
7
|
REGIONAL_DATA_MART_INTEGRATION_EXPORTING_DATA,
|
8
8
|
)
|
9
|
-
from edu_rdm_integration.models import (
|
9
|
+
from edu_rdm_integration.rdm_entities.models import (
|
10
10
|
RegionalDataMartEntityEnum,
|
11
11
|
)
|
12
12
|
|
@@ -4,10 +4,10 @@ from typing import (
|
|
4
4
|
Optional,
|
5
5
|
)
|
6
6
|
|
7
|
-
from edu_rdm_integration.consts import (
|
7
|
+
from edu_rdm_integration.core.consts import (
|
8
8
|
REGIONAL_DATA_MART_INTEGRATION_EXPORTING_DATA,
|
9
9
|
)
|
10
|
-
from edu_rdm_integration.models import (
|
10
|
+
from edu_rdm_integration.rdm_models.models import (
|
11
11
|
RegionalDataMartModelEnum,
|
12
12
|
)
|
13
13
|
|
@@ -13,10 +13,10 @@ from function_tools.general import (
|
|
13
13
|
RunnableObject,
|
14
14
|
)
|
15
15
|
|
16
|
-
from edu_rdm_integration.consts import (
|
16
|
+
from edu_rdm_integration.core.consts import (
|
17
17
|
REGIONAL_DATA_MART_INTEGRATION_EXPORTING_DATA,
|
18
18
|
)
|
19
|
-
from edu_rdm_integration.models import (
|
19
|
+
from edu_rdm_integration.rdm_models.models import (
|
20
20
|
RegionalDataMartModelEnum,
|
21
21
|
)
|
22
22
|
|
File without changes
|
File without changes
|
@@ -9,19 +9,14 @@ from edu_rdm_integration.adapters.caches import (
|
|
9
9
|
|
10
10
|
|
11
11
|
class BaseExportDataRunnerCacheStorage(WebEduRunnerCacheStorage):
|
12
|
-
"""
|
13
|
-
Базовый кеш помощников ранеров функций выгрузки данных для интеграции с "Региональная витрина данных".
|
14
|
-
"""
|
12
|
+
"""Базовый кеш помощников ранеров функций выгрузки данных для интеграции с "Региональная витрина данных"."""
|
15
13
|
|
16
14
|
|
17
15
|
class BaseExportDataFunctionCacheStorage(WebEduFunctionCacheStorage):
|
18
|
-
"""
|
19
|
-
Базовый кеш помощников функций выгрузки данных для интеграции с "Региональная витрина данных".
|
20
|
-
"""
|
16
|
+
"""Базовый кеш помощников функций выгрузки данных для интеграции с "Региональная витрина данных"."""
|
21
17
|
|
22
18
|
def _prepare_entity_instances(self, model_ids, *args, **kwargs) -> list[BaseEntity]:
|
23
|
-
"""
|
24
|
-
Формирование списка объектов сущностей для дальнейшей выгрузки.
|
19
|
+
"""Формирование списка объектов сущностей для дальнейшей выгрузки.
|
25
20
|
|
26
21
|
Необходимо переопределить логику формирования объектов у потомков.
|
27
22
|
"""
|
@@ -28,31 +28,31 @@ from educommon.integration_entities.mixins import (
|
|
28
28
|
from edu_rdm_integration.adapters.functions import (
|
29
29
|
WebEduLazySavingPredefinedQueueGlobalHelperFunction,
|
30
30
|
)
|
31
|
-
from edu_rdm_integration.consts import (
|
31
|
+
from edu_rdm_integration.core.consts import (
|
32
32
|
LOGS_DELIMITER,
|
33
33
|
)
|
34
|
-
from edu_rdm_integration.export_data.
|
34
|
+
from edu_rdm_integration.stages.export_data.consts import (
|
35
|
+
DELIMITER,
|
36
|
+
)
|
37
|
+
from edu_rdm_integration.stages.export_data.functions.base.helpers import (
|
35
38
|
BaseExportDataFunctionHelper,
|
36
39
|
)
|
37
|
-
from edu_rdm_integration.export_data.base.results import (
|
40
|
+
from edu_rdm_integration.stages.export_data.functions.base.results import (
|
38
41
|
BaseExportDataFunctionResult,
|
39
42
|
)
|
40
|
-
from edu_rdm_integration.export_data.base.validators import (
|
43
|
+
from edu_rdm_integration.stages.export_data.functions.base.validators import (
|
41
44
|
BaseExportDataFunctionValidator,
|
42
45
|
)
|
43
|
-
from edu_rdm_integration.export_data.
|
44
|
-
|
46
|
+
from edu_rdm_integration.stages.export_data.helpers import (
|
47
|
+
get_exporting_data_stage_attachment_path,
|
45
48
|
)
|
46
|
-
from edu_rdm_integration.models import (
|
49
|
+
from edu_rdm_integration.stages.export_data.models import (
|
47
50
|
ExportingDataStage,
|
48
51
|
ExportingDataSubStage,
|
49
52
|
ExportingDataSubStageAttachment,
|
50
53
|
ExportingDataSubStageEntity,
|
51
54
|
ExportingDataSubStageStatus,
|
52
55
|
)
|
53
|
-
from edu_rdm_integration.utils import (
|
54
|
-
get_exporting_data_stage_attachment_path,
|
55
|
-
)
|
56
56
|
|
57
57
|
|
58
58
|
class BaseExportDataFunction(
|
@@ -60,9 +60,7 @@ class BaseExportDataFunction(
|
|
60
60
|
WebEduLazySavingPredefinedQueueGlobalHelperFunction,
|
61
61
|
metaclass=ABCMeta,
|
62
62
|
):
|
63
|
-
"""
|
64
|
-
Базовый класс функций выгрузки данных для интеграции с "Региональная витрина данных".
|
65
|
-
"""
|
63
|
+
"""Базовый класс функций выгрузки данных для интеграции с "Региональная витрина данных"."""
|
66
64
|
|
67
65
|
def __init__(self, *args, stage: ExportingDataStage, model_ids: list[Union[int, str]], **kwargs):
|
68
66
|
super().__init__(*args, entities=self.entities, model_ids=model_ids, **kwargs)
|
@@ -72,8 +70,7 @@ class BaseExportDataFunction(
|
|
72
70
|
function_id=self.uuid,
|
73
71
|
)
|
74
72
|
ExportingDataSubStageEntity.objects.create(
|
75
|
-
exporting_data_sub_stage=self._sub_stage,
|
76
|
-
entity_id=self.first_entity.key
|
73
|
+
exporting_data_sub_stage=self._sub_stage, entity_id=self.first_entity.key
|
77
74
|
)
|
78
75
|
# Проставление подэтапа выгрузки
|
79
76
|
self.entities[0].main_model_enum.model.objects.filter(pk__in=model_ids).update(
|
@@ -95,36 +92,26 @@ class BaseExportDataFunction(
|
|
95
92
|
self.has_data = False
|
96
93
|
|
97
94
|
def _prepare_helper_class(self) -> type[BaseExportDataFunctionHelper]:
|
98
|
-
"""
|
99
|
-
Возвращает класс помощника функции.
|
100
|
-
"""
|
95
|
+
"""Возвращает класс помощника функции."""
|
101
96
|
return BaseExportDataFunctionHelper
|
102
97
|
|
103
98
|
def _prepare_validator_class(self) -> type[BaseExportDataFunctionValidator]:
|
104
|
-
"""
|
105
|
-
Возвращает класс валидатора функции.
|
106
|
-
"""
|
99
|
+
"""Возвращает класс валидатора функции."""
|
107
100
|
return BaseExportDataFunctionValidator
|
108
101
|
|
109
102
|
def _prepare_result_class(self) -> type[BaseExportDataFunctionResult]:
|
110
|
-
"""
|
111
|
-
Возвращает класс результата функции.
|
112
|
-
"""
|
103
|
+
"""Возвращает класс результата функции."""
|
113
104
|
return BaseExportDataFunctionResult
|
114
105
|
|
115
106
|
def _before_prepare(self, *args, **kwargs):
|
116
|
-
"""
|
117
|
-
Выполнение действий функций системы.
|
118
|
-
"""
|
107
|
+
"""Выполнение действий функций системы."""
|
119
108
|
self._sub_stage.status_id = ExportingDataSubStageStatus.IN_PROGRESS.key
|
120
109
|
self._sub_stage.save()
|
121
110
|
|
122
111
|
logger.info(f'{LOGS_DELIMITER * 3}change status {repr(self._sub_stage)}')
|
123
112
|
|
124
113
|
def _prepare_record(self, entity_instance) -> list[str]:
|
125
|
-
"""
|
126
|
-
Формирование списка строковых значений полей.
|
127
|
-
"""
|
114
|
+
"""Формирование списка строковых значений полей."""
|
128
115
|
ordered_fields = self.first_entity.entity.get_ordered_fields()
|
129
116
|
primary_key_fields = set(self.first_entity.entity.get_primary_key_fields())
|
130
117
|
foreign_key_fields = set(self.first_entity.entity.get_foreign_key_fields())
|
@@ -145,9 +132,7 @@ class BaseExportDataFunction(
|
|
145
132
|
return field_values
|
146
133
|
|
147
134
|
def _prepare_data(self):
|
148
|
-
"""
|
149
|
-
Преобразование собранных данных в удобный для выгрузки вид.
|
150
|
-
"""
|
135
|
+
"""Преобразование собранных данных в удобный для выгрузки вид."""
|
151
136
|
logger.info(f'{LOGS_DELIMITER * 3}{self.__class__.__name__} prepare data..')
|
152
137
|
|
153
138
|
for entity_instance in self.helper.cache.entity_instances:
|
@@ -169,29 +154,18 @@ class BaseExportDataFunction(
|
|
169
154
|
)
|
170
155
|
|
171
156
|
def _prepare_files(self):
|
172
|
-
"""
|
173
|
-
Формирование файлов для дальнейшей выгрузки.
|
174
|
-
"""
|
157
|
+
"""Формирование файлов для дальнейшей выгрузки."""
|
175
158
|
logger.info(f'{LOGS_DELIMITER * 3}{self.__class__.__name__} prepare files..')
|
176
159
|
has_record = False
|
177
160
|
|
178
161
|
for operation in EntityLogOperation.values.keys():
|
179
|
-
|
180
162
|
records = self._data[operation]
|
181
163
|
if records:
|
182
|
-
title_record = (
|
183
|
-
|
184
|
-
field.lower()
|
185
|
-
for field in self.first_entity.entity.get_ordered_fields()
|
186
|
-
])
|
164
|
+
title_record = f'{DELIMITER}'.join(
|
165
|
+
[field.lower() for field in self.first_entity.entity.get_ordered_fields()]
|
187
166
|
)
|
188
167
|
|
189
|
-
joined_records = (
|
190
|
-
'\n'.join([
|
191
|
-
title_record,
|
192
|
-
*[f'{DELIMITER}'.join(record) for record in records]]
|
193
|
-
)
|
194
|
-
)
|
168
|
+
joined_records = '\n'.join([title_record, *[f'{DELIMITER}'.join(record) for record in records]])
|
195
169
|
|
196
170
|
sub_stage_attachment = ExportingDataSubStageAttachment(
|
197
171
|
exporting_data_sub_stage=self._sub_stage,
|
@@ -212,9 +186,7 @@ class BaseExportDataFunction(
|
|
212
186
|
self.has_data = has_record
|
213
187
|
|
214
188
|
def _prepare(self, *args, **kwargs):
|
215
|
-
"""
|
216
|
-
Выполнение действий функции.
|
217
|
-
"""
|
189
|
+
"""Выполнение действий функции."""
|
218
190
|
if self.result.has_not_errors:
|
219
191
|
if self.helper.cache.entity_instances:
|
220
192
|
self._prepare_data()
|
@@ -223,9 +195,7 @@ class BaseExportDataFunction(
|
|
223
195
|
logger.info(f'{LOGS_DELIMITER * 3} no data for preparing.')
|
224
196
|
|
225
197
|
def before_run(self, *args, **kwargs):
|
226
|
-
"""
|
227
|
-
Действия перед запуском.
|
228
|
-
"""
|
198
|
+
"""Действия перед запуском."""
|
229
199
|
super().before_run(*args, **kwargs)
|
230
200
|
|
231
201
|
logger.info(
|
@@ -233,19 +203,18 @@ class BaseExportDataFunction(
|
|
233
203
|
delimiter=LOGS_DELIMITER * 2,
|
234
204
|
force_run='force ' if kwargs.get('is_force_run', False) else '',
|
235
205
|
runner_name=self.__class__.__name__,
|
236
|
-
log_chunks=f' with logs chunk {self._chunk_index}' if self._chunk_index else ''
|
206
|
+
log_chunks=f' with logs chunk {self._chunk_index}' if self._chunk_index else '',
|
237
207
|
)
|
238
208
|
)
|
239
209
|
|
240
210
|
def run(self, *args, **kwargs):
|
241
|
-
"""
|
242
|
-
Выполнение действий функции с дальнейшим сохранением объектов в базу при отсутствии ошибок.
|
243
|
-
"""
|
211
|
+
"""Выполнение действий функции с дальнейшим сохранением объектов в базу при отсутствии ошибок."""
|
244
212
|
super().run(*args, **kwargs)
|
245
213
|
|
246
214
|
if self.result.has_not_errors:
|
247
215
|
self._sub_stage.status_id = (
|
248
|
-
ExportingDataSubStageStatus.FINISHED.key
|
216
|
+
ExportingDataSubStageStatus.FINISHED.key
|
217
|
+
if not self.has_data
|
249
218
|
else ExportingDataSubStageStatus.READY_FOR_EXPORT.key
|
250
219
|
)
|
251
220
|
else:
|