edu-rdm-integration 3.9.2__py3-none-any.whl → 3.10.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/collect_and_export_data/models.py +1 -67
- 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/__init__.py +0 -0
- 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.1.dist-info}/METADATA +238 -238
- edu_rdm_integration-3.10.1.dist-info/RECORD +257 -0
- edu_rdm_integration/app_meta.py +0 -16
- edu_rdm_integration/app_settings.py +0 -77
- 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_data → core}/__init__.py +0 -0
- /edu_rdm_integration/{mapping.py → core/mapping.py} +0 -0
- /edu_rdm_integration/{collect_data/base → 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/calculated → pipelines}/__init__.py +0 -0
- /edu_rdm_integration/{collect_data/calculated/base → pipelines/transfer}/__init__.py +0 -0
- /edu_rdm_integration/{collect_data/non_calculated → 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/base → rdm_entities}/__init__.py +0 -0
- /edu_rdm_integration/{enum_register → rdm_entities/migrations}/__init__.py +0 -0
- /edu_rdm_integration/{export_data → rdm_models}/__init__.py +0 -0
- /edu_rdm_integration/{export_data/base → rdm_models/migrations}/__init__.py +0 -0
- /edu_rdm_integration/{function_templates → stages}/__init__.py +0 -0
- /edu_rdm_integration/{management → 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/commands → 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/{registry → stages/collect_data/functions}/__init__.py +0 -0
- /edu_rdm_integration/{uploader_log → 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/{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.1.dist-info}/WHEEL +0 -0
- {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.1.dist-info}/licenses/LICENSE +0 -0
- {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.1.dist-info}/top_level.txt +0 -0
@@ -1,3 +1,10 @@
|
|
1
|
+
"""Стратегии реализации функций для интеграции с продуктами Образования.
|
2
|
+
|
3
|
+
Этот модуль содержит классы стратегий, определяющие способы реализации функций
|
4
|
+
для работы с продуктами Образования. Стратегии определяют конфигурацию классов
|
5
|
+
для различных компонентов системы: менеджеров, исполнителей, валидаторов и т.д.
|
6
|
+
"""
|
7
|
+
|
1
8
|
from abc import (
|
2
9
|
ABCMeta,
|
3
10
|
)
|
@@ -44,106 +51,100 @@ from edu_rdm_integration.adapters.validators import (
|
|
44
51
|
|
45
52
|
|
46
53
|
class WebEduFunctionImplementationStrategy(FunctionImplementationStrategy, metaclass=ABCMeta):
|
47
|
-
"""
|
48
|
-
|
54
|
+
"""Базовая стратегия реализации функций для продуктов Образования.
|
55
|
+
|
56
|
+
Определяет основную конфигурацию классов для всех компонентов системы:
|
57
|
+
- Менеджеры для управления выполнением функций
|
58
|
+
- Исполнители (runners) для запуска функций
|
59
|
+
- Помощники (helpers) для вспомогательных операций
|
60
|
+
- Валидаторы для проверки данных
|
61
|
+
- Кэши для хранения промежуточных результатов
|
62
|
+
- Обработчики ошибок и результатов
|
63
|
+
|
64
|
+
Все методы в этом классе отвечают за установку конкретных реализаций
|
65
|
+
различных компонентов системы.
|
49
66
|
"""
|
50
67
|
|
51
68
|
def _prepare_manager_class(self):
|
52
|
-
"""
|
53
|
-
Устанавливает класс менеджера.
|
54
|
-
"""
|
69
|
+
"""Устанавливает класс менеджера для управления выполнением функций."""
|
55
70
|
self._manager_class = WebEduRunnerManager
|
56
71
|
|
57
72
|
def _prepare_runner_class(self):
|
58
|
-
"""
|
59
|
-
Устанавливает класс ранера.
|
60
|
-
"""
|
73
|
+
"""Устанавливает класс исполнителя для запуска функций."""
|
61
74
|
self._runner_class = WebEduRunner
|
62
75
|
|
63
76
|
def _prepare_function_class(self):
|
64
|
-
"""
|
65
|
-
Устанавливает класс Функции.
|
66
|
-
"""
|
77
|
+
"""Устанавливает базовый класс функции для обработки данных."""
|
67
78
|
self._function_class = WebEduFunction
|
68
79
|
|
69
80
|
def _prepare_runner_helper_class(self):
|
70
|
-
"""
|
71
|
-
Устанавливает класс помощника ранера.
|
72
|
-
"""
|
81
|
+
"""Устанавливает класс помощника для исполнителя функций."""
|
73
82
|
self._runner_helper_class = WebEduRunnerHelper
|
74
83
|
|
75
84
|
def _prepare_function_helper_class(self):
|
76
|
-
"""
|
77
|
-
Устанавливает класс помощника функции.
|
78
|
-
"""
|
85
|
+
"""Устанавливает класс помощника для функций обработки данных."""
|
79
86
|
self._function_helper_class = WebEduFunctionHelper
|
80
87
|
|
81
88
|
def _prepare_runner_validator_class(self):
|
82
|
-
"""
|
83
|
-
Устанавливает класс валидатора ранера.
|
84
|
-
"""
|
89
|
+
"""Устанавливает класс валидатора для проверки параметров исполнителя."""
|
85
90
|
self._runner_validator_class = WebEduRunnerValidator
|
86
91
|
|
87
92
|
def _prepare_function_validator_class(self):
|
88
|
-
"""
|
89
|
-
Устанавливает класс валидатора Функции.
|
90
|
-
"""
|
93
|
+
"""Устанавливает класс валидатора для проверки данных функции."""
|
91
94
|
self._function_validator_class = WebEduFunctionValidator
|
92
95
|
|
93
96
|
def _prepare_runner_cache_storage_class(self):
|
94
|
-
"""
|
95
|
-
Устанавливает класс хранилища кешей ранера.
|
96
|
-
"""
|
97
|
+
"""Устанавливает класс хранилища кэша для исполнителя."""
|
97
98
|
self._runner_cache_storage_class = WebEduRunnerCacheStorage
|
98
99
|
|
99
100
|
def _prepare_function_cache_storage_class(self):
|
100
|
-
"""
|
101
|
-
Устанавливает класс хранилища кешей Функции.
|
102
|
-
"""
|
101
|
+
"""Устанавливает класс хранилища кэша для функции."""
|
103
102
|
self._function_cache_storage_class = WebEduFunctionCacheStorage
|
104
103
|
|
105
104
|
def _prepare_error_class(self):
|
106
|
-
"""
|
107
|
-
Устанавливает класс ошибки.
|
108
|
-
"""
|
105
|
+
"""Устанавливает класс для обработки ошибок."""
|
109
106
|
self._error_class = WebEduError
|
110
107
|
|
111
108
|
def _prepare_runner_result_class(self):
|
112
|
-
"""
|
113
|
-
Устанавливает класс результата.
|
114
|
-
"""
|
109
|
+
"""Устанавливает класс для хранения результатов работы исполнителя."""
|
115
110
|
self._runner_result_class = WebEduRunnerResult
|
116
111
|
|
117
112
|
def _prepare_function_result_class(self):
|
118
|
-
"""
|
119
|
-
Устанавливает класс результата.
|
120
|
-
"""
|
113
|
+
"""Устанавливает класс для хранения результатов работы функции."""
|
121
114
|
self._function_result_class = WebEduFunctionResult
|
122
115
|
|
123
116
|
def _prepare_result_presenter_class(self):
|
124
|
-
"""
|
125
|
-
Устанавливает класс презентера результата.
|
126
|
-
"""
|
117
|
+
"""Устанавливает класс для представления результатов."""
|
127
118
|
self._result_presenter_class = WebEduResultPresenter
|
128
119
|
|
129
120
|
|
130
121
|
class WebEduSyncBaseRunnerLazySavingPredefinedQueueFunctionImplementationStrategy(
|
131
|
-
WebEduFunctionImplementationStrategy,
|
132
|
-
metaclass=ABCMeta
|
122
|
+
WebEduFunctionImplementationStrategy, metaclass=ABCMeta
|
133
123
|
):
|
134
|
-
"""
|
135
|
-
|
124
|
+
"""Стратегия создания функции с отложенным сохранением и предустановленной очередью.
|
125
|
+
|
126
|
+
Расширяет базовую стратегию, добавляя специфическую логику для:
|
127
|
+
- Отложенного сохранения данных (lazy saving)
|
128
|
+
- Работы с предустановленной очередью объектов
|
129
|
+
- Синхронного выполнения операций
|
130
|
+
|
131
|
+
Сохранение данных производится только после успешного выполнения всех операций
|
132
|
+
функции, что обеспечивает целостность данных и атомарность операций.
|
136
133
|
"""
|
137
134
|
|
138
135
|
def _prepare_key(self) -> str:
|
139
|
-
"""
|
140
|
-
|
136
|
+
"""Возвращает уникальный идентификатор стратегии.
|
137
|
+
|
138
|
+
Returns:
|
139
|
+
str: Ключ для идентификации стратегии в системе
|
141
140
|
"""
|
142
141
|
return 'WEB_EDU_SYNC_LAZY_SAVING_FUNCTION'
|
143
142
|
|
144
143
|
def _prepare_title(self) -> str:
|
145
|
-
"""
|
146
|
-
|
144
|
+
"""Возвращает название стратегии.
|
145
|
+
|
146
|
+
Returns:
|
147
|
+
str: Человекочитаемое описание стратегии
|
147
148
|
"""
|
148
149
|
return (
|
149
150
|
'Стратегия создания функции с отложенным сохранением и предустановленной очередью объектов на сохранение '
|
@@ -152,13 +153,14 @@ class WebEduSyncBaseRunnerLazySavingPredefinedQueueFunctionImplementationStrateg
|
|
152
153
|
|
153
154
|
@classmethod
|
154
155
|
def _prepare_function_template_name(cls) -> Optional[str]:
|
155
|
-
"""
|
156
|
-
|
156
|
+
"""Формирование названия шаблона создания функции.
|
157
|
+
|
158
|
+
Returns:
|
159
|
+
Optional[str]: Имя шаблона для создания функции или None,
|
160
|
+
если шаблон не требуется
|
157
161
|
"""
|
158
162
|
return 'function_sync_template'
|
159
163
|
|
160
164
|
def _prepare_function_class(self):
|
161
|
-
"""
|
162
|
-
Устанавливает класс Функции.
|
163
|
-
"""
|
165
|
+
"""Устанавливает класс функции с поддержкой отложенного сохранения."""
|
164
166
|
self._function_class = WebEduLazySavingPredefinedQueueFunction
|
@@ -1,3 +1,13 @@
|
|
1
|
+
"""Классы для валидации данных в системе интеграции.
|
2
|
+
|
3
|
+
Этот модуль содержит базовые классы валидаторов, которые обеспечивают
|
4
|
+
проверку корректности данных на разных уровнях системы:
|
5
|
+
- Валидация входных параметров функций
|
6
|
+
- Проверка состояния исполнителей
|
7
|
+
- Валидация результатов обработки
|
8
|
+
- Проверка бизнес-правил
|
9
|
+
"""
|
10
|
+
|
1
11
|
from abc import (
|
2
12
|
ABCMeta,
|
3
13
|
)
|
@@ -8,12 +18,41 @@ from function_tools.validators import (
|
|
8
18
|
|
9
19
|
|
10
20
|
class WebEduRunnerValidator(BaseValidator, metaclass=ABCMeta):
|
11
|
-
"""
|
12
|
-
|
21
|
+
"""Базовый класс для валидации исполнителей функций.
|
22
|
+
|
23
|
+
Предоставляет механизмы проверки:
|
24
|
+
- Корректности конфигурации исполнителя
|
25
|
+
- Доступности необходимых ресурсов
|
26
|
+
- Состояния исполнителя перед запуском
|
27
|
+
- Валидности результатов выполнения
|
28
|
+
|
29
|
+
Note:
|
30
|
+
Конкретные реализации должны определить специфичные
|
31
|
+
правила валидации для каждого типа исполнителя.
|
32
|
+
|
33
|
+
Attributes:
|
34
|
+
errors (list): Список обнаруженных ошибок
|
35
|
+
warnings (list): Список предупреждений
|
13
36
|
"""
|
14
37
|
|
15
38
|
|
16
39
|
class WebEduFunctionValidator(BaseValidator, metaclass=ABCMeta):
|
17
|
-
"""
|
18
|
-
|
40
|
+
"""Базовый класс для валидации функций обработки данных.
|
41
|
+
|
42
|
+
Предоставляет механизмы проверки:
|
43
|
+
- Входных параметров функции
|
44
|
+
- Формата данных
|
45
|
+
- Бизнес-правил
|
46
|
+
- Результатов обработки
|
47
|
+
|
48
|
+
Note:
|
49
|
+
При реализации валидаторов для конкретных функций следует:
|
50
|
+
- Определить специфичные правила проверки
|
51
|
+
- Добавить проверку бизнес-ограничений
|
52
|
+
- Реализовать валидацию форматов данных
|
53
|
+
|
54
|
+
Attributes:
|
55
|
+
errors (list): Список обнаруженных ошибок
|
56
|
+
warnings (list): Список предупреждений
|
57
|
+
context (dict): Контекст валидации
|
19
58
|
"""
|
edu_rdm_integration/apps.py
CHANGED
@@ -12,33 +12,16 @@ class EduRDMIntegrationConfig(AppConfig):
|
|
12
12
|
name = 'edu_rdm_integration'
|
13
13
|
label = 'edu_rdm_integration'
|
14
14
|
|
15
|
-
def __set_default_settings(self):
|
16
|
-
"""Установка дефолтных значений настроек приложения."""
|
17
|
-
from django.conf import (
|
18
|
-
settings,
|
19
|
-
)
|
20
|
-
|
21
|
-
from edu_rdm_integration import (
|
22
|
-
app_settings as defaults,
|
23
|
-
)
|
24
|
-
|
25
|
-
for name in dir(defaults):
|
26
|
-
if name.isupper() and not hasattr(settings, name):
|
27
|
-
setattr(settings, name, getattr(defaults, name))
|
28
|
-
|
29
15
|
def __setup_uploader_client(self):
|
30
|
-
"""
|
31
|
-
Инициализация клиента для взаимодействия с Региональной витриной данных.
|
32
|
-
"""
|
33
|
-
|
16
|
+
"""Инициализация клиента для взаимодействия с Региональной витриной данных."""
|
34
17
|
import uploader_client
|
35
18
|
from django.core.cache import (
|
36
19
|
DEFAULT_CACHE_ALIAS,
|
37
20
|
caches,
|
38
21
|
)
|
39
22
|
from uploader_client.contrib.rdm.interfaces.configurations import (
|
40
|
-
RegionalDataMartUploaderConfig,
|
41
23
|
RegionalDataMartEmulationUploaderConfig,
|
24
|
+
RegionalDataMartUploaderConfig,
|
42
25
|
)
|
43
26
|
|
44
27
|
if settings.RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATION:
|
@@ -49,7 +32,7 @@ class EduRDMIntegrationConfig(AppConfig):
|
|
49
32
|
datamart_name=settings.RDM_UPLOADER_CLIENT_DATAMART_NAME,
|
50
33
|
timeout=1,
|
51
34
|
request_retries=1,
|
52
|
-
file_status=settings.RDM_RESPONSE_FILE_STATUS
|
35
|
+
file_status=settings.RDM_RESPONSE_FILE_STATUS,
|
53
36
|
)
|
54
37
|
)
|
55
38
|
elif settings.RDM_UPLOADER_CLIENT_USE_PROXY_API:
|
@@ -84,6 +67,3 @@ class EduRDMIntegrationConfig(AppConfig):
|
|
84
67
|
|
85
68
|
# Инициализация клиента загрузчика данных в Витрину
|
86
69
|
self.__setup_uploader_client()
|
87
|
-
|
88
|
-
# Установка дефолтных значений в settings.py
|
89
|
-
self.__set_default_settings()
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
# TODO EDUDEVOPS-95 Будет удалено в будущих версиях
|
@@ -12,11 +12,10 @@ from django.db import (
|
|
12
12
|
|
13
13
|
import educommon.django.db.mixins
|
14
14
|
|
15
|
-
import edu_rdm_integration.utils
|
15
|
+
import edu_rdm_integration.core.utils
|
16
16
|
|
17
17
|
|
18
18
|
class Migration(migrations.Migration):
|
19
|
-
|
20
19
|
initial = True
|
21
20
|
|
22
21
|
dependencies = [
|
@@ -30,14 +29,57 @@ class Migration(migrations.Migration):
|
|
30
29
|
fields=[
|
31
30
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
32
31
|
('created', models.DateTimeField(default=django.utils.timezone.now, verbose_name='Дата создания')),
|
33
|
-
(
|
34
|
-
|
32
|
+
(
|
33
|
+
'period_started_at',
|
34
|
+
models.DateTimeField(verbose_name='Левая граница периода выборки данных для выгрузки'),
|
35
|
+
),
|
36
|
+
(
|
37
|
+
'period_ended_at',
|
38
|
+
models.DateTimeField(verbose_name='Правая граница периода выборки данных для выгрузки'),
|
39
|
+
),
|
35
40
|
('generation_id', models.UUIDField(default=uuid.uuid4, verbose_name='Идентификатор генерации')),
|
36
|
-
(
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
+
(
|
42
|
+
'logs_link',
|
43
|
+
models.FileField(
|
44
|
+
max_length=255,
|
45
|
+
upload_to=edu_rdm_integration.core.utils.get_data_command_progress_attachment_path,
|
46
|
+
verbose_name='Файл лога',
|
47
|
+
),
|
48
|
+
),
|
49
|
+
(
|
50
|
+
'type',
|
51
|
+
models.PositiveSmallIntegerField(
|
52
|
+
choices=[(1, 'Автоматический'), (2, 'Ручной')], verbose_name='Тип команды'
|
53
|
+
),
|
54
|
+
),
|
55
|
+
(
|
56
|
+
'entity',
|
57
|
+
models.ForeignKey(
|
58
|
+
on_delete=django.db.models.deletion.PROTECT,
|
59
|
+
to='edu_rdm_integration.RegionalDataMartEntityEnum',
|
60
|
+
verbose_name='Сущность РВД',
|
61
|
+
),
|
62
|
+
),
|
63
|
+
(
|
64
|
+
'stage',
|
65
|
+
models.ForeignKey(
|
66
|
+
blank=True,
|
67
|
+
null=True,
|
68
|
+
on_delete=django.db.models.deletion.SET_NULL,
|
69
|
+
to='edu_rdm_integration.ExportingDataStage',
|
70
|
+
verbose_name='Этап выгрузки данных',
|
71
|
+
),
|
72
|
+
),
|
73
|
+
(
|
74
|
+
'task',
|
75
|
+
models.ForeignKey(
|
76
|
+
blank=True,
|
77
|
+
null=True,
|
78
|
+
on_delete=django.db.models.deletion.SET_NULL,
|
79
|
+
to='async_task.RunningTask',
|
80
|
+
verbose_name='Асинхронная задача',
|
81
|
+
),
|
82
|
+
),
|
41
83
|
],
|
42
84
|
options={
|
43
85
|
'db_table': 'edu_rdm_exporting_data_command_progress',
|
@@ -49,15 +91,63 @@ class Migration(migrations.Migration):
|
|
49
91
|
fields=[
|
50
92
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
51
93
|
('created', models.DateTimeField(default=django.utils.timezone.now, verbose_name='Дата создания')),
|
52
|
-
(
|
53
|
-
|
94
|
+
(
|
95
|
+
'logs_period_started_at',
|
96
|
+
models.DateTimeField(verbose_name='Левая граница периода обрабатываемых логов'),
|
97
|
+
),
|
98
|
+
(
|
99
|
+
'logs_period_ended_at',
|
100
|
+
models.DateTimeField(verbose_name='Правая граница периода обрабатываемых логов'),
|
101
|
+
),
|
54
102
|
('generation_id', models.UUIDField(default=uuid.uuid4, verbose_name='Идентификатор генерации')),
|
55
|
-
(
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
103
|
+
(
|
104
|
+
'institute_ids',
|
105
|
+
django.contrib.postgres.fields.jsonb.JSONField(
|
106
|
+
blank=True, default=list, null=True, verbose_name='id учебного заведения'
|
107
|
+
),
|
108
|
+
),
|
109
|
+
(
|
110
|
+
'logs_link',
|
111
|
+
models.FileField(
|
112
|
+
max_length=255,
|
113
|
+
upload_to=edu_rdm_integration.core.utils.get_data_command_progress_attachment_path,
|
114
|
+
verbose_name='Ссылка на файл логов',
|
115
|
+
),
|
116
|
+
),
|
117
|
+
(
|
118
|
+
'type',
|
119
|
+
models.PositiveSmallIntegerField(
|
120
|
+
choices=[(1, 'Автоматический'), (2, 'Ручной')], verbose_name='Тип команды'
|
121
|
+
),
|
122
|
+
),
|
123
|
+
(
|
124
|
+
'model',
|
125
|
+
models.ForeignKey(
|
126
|
+
on_delete=django.db.models.deletion.PROTECT,
|
127
|
+
to='edu_rdm_integration.RegionalDataMartModelEnum',
|
128
|
+
verbose_name='Модель РВД',
|
129
|
+
),
|
130
|
+
),
|
131
|
+
(
|
132
|
+
'stage',
|
133
|
+
models.ForeignKey(
|
134
|
+
blank=True,
|
135
|
+
null=True,
|
136
|
+
on_delete=django.db.models.deletion.SET_NULL,
|
137
|
+
to='edu_rdm_integration.CollectingExportedDataStage',
|
138
|
+
verbose_name='Этап формирования данных для выгрузки',
|
139
|
+
),
|
140
|
+
),
|
141
|
+
(
|
142
|
+
'task',
|
143
|
+
models.ForeignKey(
|
144
|
+
blank=True,
|
145
|
+
null=True,
|
146
|
+
on_delete=django.db.models.deletion.SET_NULL,
|
147
|
+
to='async_task.RunningTask',
|
148
|
+
verbose_name='Асинхронная задача',
|
149
|
+
),
|
150
|
+
),
|
61
151
|
],
|
62
152
|
options={
|
63
153
|
'db_table': 'edu_rdm_collecting_data_command_progress',
|
@@ -1,10 +1,12 @@
|
|
1
1
|
# Generated by Django 3.2.23 on 2025-02-04 14:13
|
2
2
|
|
3
|
-
from django.db import
|
3
|
+
from django.db import (
|
4
|
+
migrations,
|
5
|
+
models,
|
6
|
+
)
|
4
7
|
|
5
8
|
|
6
9
|
class Migration(migrations.Migration):
|
7
|
-
|
8
10
|
dependencies = [
|
9
11
|
('rdm_collect_and_export_data', '0001_initial'),
|
10
12
|
]
|
@@ -1,67 +1 @@
|
|
1
|
-
|
2
|
-
SET_NULL,
|
3
|
-
FileField,
|
4
|
-
ForeignKey,
|
5
|
-
PositiveSmallIntegerField,
|
6
|
-
)
|
7
|
-
|
8
|
-
from edu_rdm_integration.enums import (
|
9
|
-
CommandType,
|
10
|
-
)
|
11
|
-
from edu_rdm_integration.models import (
|
12
|
-
AbstractCollectDataCommandProgress,
|
13
|
-
AbstractExportDataCommandProgress,
|
14
|
-
)
|
15
|
-
from edu_rdm_integration.utils import (
|
16
|
-
get_data_command_progress_attachment_path,
|
17
|
-
)
|
18
|
-
|
19
|
-
|
20
|
-
class EduRdmCollectDataCommandProgress(AbstractCollectDataCommandProgress):
|
21
|
-
"""
|
22
|
-
Модель, хранящая данные для формирования и отслеживания асинхронных задач по сбору данных.
|
23
|
-
"""
|
24
|
-
|
25
|
-
task = ForeignKey(
|
26
|
-
to='async_task.RunningTask',
|
27
|
-
verbose_name='Асинхронная задача',
|
28
|
-
blank=True,
|
29
|
-
null=True,
|
30
|
-
on_delete=SET_NULL,
|
31
|
-
)
|
32
|
-
logs_link = FileField(
|
33
|
-
upload_to=get_data_command_progress_attachment_path,
|
34
|
-
max_length=255,
|
35
|
-
verbose_name='Ссылка на файл логов',
|
36
|
-
)
|
37
|
-
type = PositiveSmallIntegerField( # noqa: A003
|
38
|
-
verbose_name='Тип команды',
|
39
|
-
choices=CommandType.get_choices(),
|
40
|
-
)
|
41
|
-
|
42
|
-
class Meta(AbstractCollectDataCommandProgress.Meta):
|
43
|
-
db_table = 'edu_rdm_collecting_data_command_progress'
|
44
|
-
|
45
|
-
|
46
|
-
class EduRdmExportDataCommandProgress(AbstractExportDataCommandProgress):
|
47
|
-
"""Команда экспорта данных."""
|
48
|
-
|
49
|
-
task = ForeignKey(
|
50
|
-
to='async_task.RunningTask',
|
51
|
-
verbose_name='Асинхронная задача',
|
52
|
-
null=True,
|
53
|
-
blank=True,
|
54
|
-
on_delete=SET_NULL,
|
55
|
-
)
|
56
|
-
logs_link = FileField(
|
57
|
-
upload_to=get_data_command_progress_attachment_path,
|
58
|
-
max_length=255,
|
59
|
-
verbose_name='Файл лога',
|
60
|
-
)
|
61
|
-
type = PositiveSmallIntegerField( # noqa: A003
|
62
|
-
verbose_name='Тип команды',
|
63
|
-
choices=CommandType.get_choices(),
|
64
|
-
)
|
65
|
-
|
66
|
-
class Meta(AbstractExportDataCommandProgress.Meta):
|
67
|
-
db_table = 'edu_rdm_exporting_data_command_progress'
|
1
|
+
# Оставлено для совместимости
|
@@ -1,8 +1,3 @@
|
|
1
|
-
from educommon.integration_entities.enums import (
|
2
|
-
EntityLogOperation,
|
3
|
-
)
|
4
|
-
|
5
|
-
|
6
1
|
REGIONAL_DATA_MART_INTEGRATION_COLLECTING_DATA = 'regional_data_mart_integration_collecting_data'
|
7
2
|
REGIONAL_DATA_MART_INTEGRATION_EXPORTING_DATA = 'regional_data_mart_integration_exporting_data'
|
8
3
|
|
@@ -31,9 +26,3 @@ ACADEMIC_YEAR = {
|
|
31
26
|
TASK_QUEUE_NAME = 'RDM'
|
32
27
|
FAST_TRANSFER_TASK_QUEUE_NAME = 'RDM_FAST'
|
33
28
|
LONG_TRANSFER_TASK_QUEUE_NAME = 'RDM_LONG'
|
34
|
-
|
35
|
-
|
36
|
-
# Кортеж операций для обновления данных
|
37
|
-
UPDATED_OPERATIONS = (EntityLogOperation.CREATE, EntityLogOperation.UPDATE)
|
38
|
-
ALL_OPERATIONS = UPDATED_OPERATIONS + (EntityLogOperation.DELETE, )
|
39
|
-
|
@@ -6,17 +6,9 @@ from m3.db import (
|
|
6
6
|
BaseEnumerate,
|
7
7
|
)
|
8
8
|
|
9
|
-
from edu_rdm_integration.consts import (
|
10
|
-
FAST_TRANSFER_TASK_QUEUE_NAME,
|
11
|
-
LONG_TRANSFER_TASK_QUEUE_NAME,
|
12
|
-
TASK_QUEUE_NAME,
|
13
|
-
)
|
14
|
-
|
15
9
|
|
16
10
|
class ValueCodeEnumerate(BaseEnumerate):
|
17
|
-
"""
|
18
|
-
Добавляет к перечислению метод возвращающий наименование кода по константе.
|
19
|
-
"""
|
11
|
+
"""Добавляет к перечислению метод возвращающий наименование кода по константе."""
|
20
12
|
|
21
13
|
_codes_cache = None
|
22
14
|
_values_cache = None
|
@@ -56,17 +48,15 @@ class EntityStatusEnum(ValueCodeEnumerate):
|
|
56
48
|
}
|
57
49
|
|
58
50
|
|
59
|
-
class
|
60
|
-
"""
|
51
|
+
class CommandType(BaseEnumerate):
|
52
|
+
"""Тип команды."""
|
61
53
|
|
62
|
-
|
63
|
-
|
64
|
-
ERROR = 3
|
54
|
+
AUTO = 1
|
55
|
+
MANUAL = 2
|
65
56
|
|
66
57
|
values = {
|
67
|
-
|
68
|
-
|
69
|
-
ERROR: 'Ошибка загрузки в витрину',
|
58
|
+
AUTO: 'Автоматический',
|
59
|
+
MANUAL: 'Ручной',
|
70
60
|
}
|
71
61
|
|
72
62
|
|
@@ -160,40 +150,3 @@ class EntityRetiredStatusEnum(ValueCodeEnumerate):
|
|
160
150
|
RETIRED: 'Прекращена',
|
161
151
|
ENTERED_IN_ERROR: 'Создана по ошибке',
|
162
152
|
}
|
163
|
-
|
164
|
-
|
165
|
-
class CommandType(BaseEnumerate):
|
166
|
-
"""Тип команды."""
|
167
|
-
|
168
|
-
AUTO = 1
|
169
|
-
MANUAL = 2
|
170
|
-
|
171
|
-
values = {
|
172
|
-
AUTO: 'Автоматический',
|
173
|
-
MANUAL: 'Ручной',
|
174
|
-
}
|
175
|
-
|
176
|
-
|
177
|
-
class EntityLevelQueueTypeEnum(BaseEnumerate):
|
178
|
-
"""Тип уровня очереди сущности."""
|
179
|
-
|
180
|
-
FAST = 1
|
181
|
-
BASE = 2
|
182
|
-
LONG = 3
|
183
|
-
|
184
|
-
values = {
|
185
|
-
FAST: 'Быстрая',
|
186
|
-
BASE: 'Основная',
|
187
|
-
LONG: 'Долгая'
|
188
|
-
}
|
189
|
-
|
190
|
-
celery_queue_maps = {
|
191
|
-
FAST: FAST_TRANSFER_TASK_QUEUE_NAME,
|
192
|
-
BASE: TASK_QUEUE_NAME,
|
193
|
-
LONG: LONG_TRANSFER_TASK_QUEUE_NAME
|
194
|
-
}
|
195
|
-
|
196
|
-
@classmethod
|
197
|
-
def get_queue_name(cls, level: int) -> Optional[str]:
|
198
|
-
"""Возвращает очередь."""
|
199
|
-
return cls.celery_queue_maps.get(level)
|