edu-rdm-integration 3.20.0__tar.gz → 3.22.0__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.

Potentially problematic release.


This version of edu-rdm-integration might be problematic. Click here for more details.

Files changed (282) hide show
  1. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/CHANGELOG.md +117 -2
  2. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/PKG-INFO +12 -2
  3. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/README.md +10 -0
  4. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/pyproject.toml +1 -1
  5. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/cleanup_outdated_data/management/commands/rdm_cleanup_outdated_data.py +32 -1
  6. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_entities/mixins.py +1 -1
  7. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_models/mixins.py +1 -1
  8. edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/collect_data/migrations/0005_alter_rdmcollectingdatasubstage_previous.py +22 -0
  9. edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/collect_data/migrations/0006_fix_fk_constraints.py +59 -0
  10. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/registry/actions.py +1 -1
  11. edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/export_data/migrations/0003_fix_fk_constraints.py +76 -0
  12. edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/service/service_outdated_data/cleaners/base.py +214 -0
  13. edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/service/service_outdated_data/cleaners/collect_data.py +126 -0
  14. edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/service/service_outdated_data/cleaners/consts.py +12 -0
  15. edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/service/service_outdated_data/cleaners/export_data.py +154 -0
  16. edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/service/service_outdated_data/cleaners/upload_data.py +64 -0
  17. edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/service/service_outdated_data/managers.py +80 -0
  18. edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/upload_data/migrations/0003_auto_20251006_1417.py +28 -0
  19. edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/upload_data/migrations/0004_fix_fk_constraints.py +79 -0
  20. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/models.py +5 -2
  21. edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/upload_data/uploader_log/migrations/__init__.py +0 -0
  22. edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/utils.py +49 -0
  23. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration.egg-info/PKG-INFO +12 -2
  24. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration.egg-info/SOURCES.txt +13 -0
  25. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration.egg-info/requires.txt +1 -1
  26. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/CONDUCT.md +0 -0
  27. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/LICENSE +0 -0
  28. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/MANIFEST.in +0 -0
  29. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/setup.cfg +0 -0
  30. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/__init__.py +0 -0
  31. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/apps.py +0 -0
  32. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/collect_and_export_data/__init__.py +0 -0
  33. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/collect_and_export_data/apps.py +0 -0
  34. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/collect_and_export_data/migrations/0001_initial.py +0 -0
  35. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/collect_and_export_data/migrations/0002_auto_20250204_1413.py +0 -0
  36. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/collect_and_export_data/migrations/0003_auto_20250704_0725.py +0 -0
  37. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/collect_and_export_data/migrations/__init__.py +0 -0
  38. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/collect_and_export_data/models.py +0 -0
  39. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/core/__init__.py +0 -0
  40. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/core/consts.py +0 -0
  41. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/core/enums.py +0 -0
  42. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/core/helpers.py +0 -0
  43. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/core/mapping.py +0 -0
  44. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/core/operations.py +0 -0
  45. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/core/redis_cache.py +0 -0
  46. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/core/registry/__init__.py +0 -0
  47. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/core/registry/actions.py +0 -0
  48. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/core/registry/apps.py +0 -0
  49. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/core/registry/templates/ui-js/start-task.js +0 -0
  50. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/core/registry/ui.py +0 -0
  51. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/core/signals.py +0 -0
  52. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/core/storages.py +0 -0
  53. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/core/typing.py +0 -0
  54. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/core/utils.py +0 -0
  55. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0001_initial.py +0 -0
  56. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0002_init_data_uploadstatus.py +0 -0
  57. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0003_create_index_file_upload_status.py +0 -0
  58. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0004_uploaderclientlog.py +0 -0
  59. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0005_auto_20231204_1224.py +0 -0
  60. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0006_request_status_data.py +0 -0
  61. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0007_delete_upload_status.py +0 -0
  62. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0008_transferredentity.py +0 -0
  63. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0009_auto_20240522_1619.py +0 -0
  64. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0010_transferredentity_export_enabled.py +0 -0
  65. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0011_exportingdatasubstageentity.py +0 -0
  66. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0012_exportingdatasubstageattachment_attachment_size.py +0 -0
  67. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0013_set_attachment_size.py +0 -0
  68. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0014_uploaddatacommand.py +0 -0
  69. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0015_set_exporting_sub_stage_status.py +0 -0
  70. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0016_transferredentity_queue_level.py +0 -0
  71. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0017_delete_uploaddatacommand.py +0 -0
  72. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/0018_auto_20250704_0725.py +0 -0
  73. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/migrations/__init__.py +0 -0
  74. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/models.py +0 -0
  75. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/__init__.py +0 -0
  76. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/cleanup_outdated_data/__init__.py +0 -0
  77. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/cleanup_outdated_data/apps.py +0 -0
  78. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/cleanup_outdated_data/management/__init__.py +0 -0
  79. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/cleanup_outdated_data/management/commands/__init__.py +0 -0
  80. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/transfer/__init__.py +0 -0
  81. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/transfer/actions.py +0 -0
  82. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/transfer/app_meta.py +0 -0
  83. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/transfer/apps.py +0 -0
  84. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/transfer/enums.py +0 -0
  85. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/transfer/migrations/0001_initial.py +0 -0
  86. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/transfer/migrations/__init__.py +0 -0
  87. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/transfer/mixins.py +0 -0
  88. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/transfer/models.py +0 -0
  89. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/transfer/tasks.py +0 -0
  90. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/transfer/templates/ui-js/transferred-entity-list.js +0 -0
  91. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/pipelines/transfer/ui.py +0 -0
  92. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_entities/__init__.py +0 -0
  93. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_entities/apps.py +0 -0
  94. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_entities/entities.py +0 -0
  95. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_entities/migrations/0001_initial.py +0 -0
  96. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_entities/migrations/0002_rename_regionaldatamartentityenum_rdmentityenum.py +0 -0
  97. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_entities/migrations/__init__.py +0 -0
  98. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_entities/models.py +0 -0
  99. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_entities/utils.py +0 -0
  100. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_models/__init__.py +0 -0
  101. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_models/apps.py +0 -0
  102. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_models/migrations/0001_initial.py +0 -0
  103. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_models/migrations/0002_rename_regionaldatamartmodelenum_rdmmodelenum.py +0 -0
  104. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_models/migrations/__init__.py +0 -0
  105. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_models/models.py +0 -0
  106. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/rdm_models/utils.py +0 -0
  107. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/__init__.py +0 -0
  108. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/__init__.py +0 -0
  109. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/apps.py +0 -0
  110. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/consts.py +0 -0
  111. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/function_templates/__init__.py +0 -0
  112. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/__init__.py-tpl +0 -0
  113. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/apps.py-tpl +0 -0
  114. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/caches.py-tpl +0 -0
  115. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/consts.py-tpl +0 -0
  116. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/enums.py-tpl +0 -0
  117. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/errors.py-tpl +0 -0
  118. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/functions.py-tpl +0 -0
  119. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/helpers.py-tpl +0 -0
  120. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/managers.py-tpl +0 -0
  121. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/presenters.py-tpl +0 -0
  122. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/results.py-tpl +0 -0
  123. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/runners.py-tpl +0 -0
  124. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/strings.py-tpl +0 -0
  125. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/tests.py-tpl +0 -0
  126. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/validators.py-tpl +0 -0
  127. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/__init__.py +0 -0
  128. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/base/__init__.py +0 -0
  129. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/base/caches.py +0 -0
  130. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/base/consts.py +0 -0
  131. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/base/functions.py +0 -0
  132. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/base/helpers.py +0 -0
  133. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/base/managers.py +0 -0
  134. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/base/mixins.py +0 -0
  135. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/base/runners.py +0 -0
  136. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/__init__.py +0 -0
  137. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/__init__.py +0 -0
  138. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/caches.py +0 -0
  139. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/consts.py +0 -0
  140. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/enums.py +0 -0
  141. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/errors.py +0 -0
  142. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/functions.py +0 -0
  143. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/helpers.py +0 -0
  144. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/managers.py +0 -0
  145. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/presenters.py +0 -0
  146. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/results.py +0 -0
  147. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/runners.py +0 -0
  148. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/strings.py +0 -0
  149. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/tests.py +0 -0
  150. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/validators.py +0 -0
  151. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/strategies.py +0 -0
  152. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/__init__.py +0 -0
  153. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/__init__.py +0 -0
  154. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/caches.py +0 -0
  155. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/consts.py +0 -0
  156. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/enums.py +0 -0
  157. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/errors.py +0 -0
  158. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/functions.py +0 -0
  159. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/helpers.py +0 -0
  160. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/managers.py +0 -0
  161. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/presenters.py +0 -0
  162. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/results.py +0 -0
  163. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/runners.py +0 -0
  164. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/strings.py +0 -0
  165. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/tests.py +0 -0
  166. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/validators.py +0 -0
  167. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/strategies.py +0 -0
  168. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/generators.py +0 -0
  169. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/helpers.py +0 -0
  170. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/management/__init__.py +0 -0
  171. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/management/base.py +0 -0
  172. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/management/commands/__init__.py +0 -0
  173. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/management/commands/collect_latest_models_data.py +0 -0
  174. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/management/commands/collect_models_data.py +0 -0
  175. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/migrations/0001_initial.py +0 -0
  176. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/migrations/0002_edurdmcollectdatacommandprogress.py +0 -0
  177. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/migrations/0003_auto_20250704_0810.py +0 -0
  178. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/migrations/0004_auto_20250704_0825.py +0 -0
  179. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/migrations/__init__.py +0 -0
  180. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/mixins.py +0 -0
  181. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/models.py +0 -0
  182. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/operations.py +0 -0
  183. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/registry/__init__.py +0 -0
  184. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/registry/apps.py +0 -0
  185. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/registry/templates/ui-js/collect-command-window.js +0 -0
  186. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/registry/templates/ui-js/validators.js +0 -0
  187. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/registry/ui.py +0 -0
  188. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/collect_data/tests.py +0 -0
  189. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/__init__.py +0 -0
  190. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/apps.py +0 -0
  191. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/consts.py +0 -0
  192. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/function_templates/__init__.py +0 -0
  193. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/__init__.py-tpl +0 -0
  194. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/apps.py-tpl +0 -0
  195. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/caches.py-tpl +0 -0
  196. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/consts.py-tpl +0 -0
  197. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/enums.py-tpl +0 -0
  198. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/errors.py-tpl +0 -0
  199. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/functions.py-tpl +0 -0
  200. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/helpers.py-tpl +0 -0
  201. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/managers.py-tpl +0 -0
  202. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/presenters.py-tpl +0 -0
  203. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/results.py-tpl +0 -0
  204. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/runners.py-tpl +0 -0
  205. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/strings.py-tpl +0 -0
  206. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/tests.py-tpl +0 -0
  207. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/validators.py-tpl +0 -0
  208. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/functions/__init__.py +0 -0
  209. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/functions/base/__init__.py +0 -0
  210. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/functions/base/caches.py +0 -0
  211. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/functions/base/consts.py +0 -0
  212. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/functions/base/enums.py +0 -0
  213. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/functions/base/errors.py +0 -0
  214. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/functions/base/functions.py +0 -0
  215. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/functions/base/helpers.py +0 -0
  216. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/functions/base/managers.py +0 -0
  217. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/functions/base/presenters.py +0 -0
  218. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/functions/base/requests.py +0 -0
  219. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/functions/base/results.py +0 -0
  220. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/functions/base/runners.py +0 -0
  221. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/functions/base/strings.py +0 -0
  222. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/functions/base/tests.py +0 -0
  223. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/functions/base/validators.py +0 -0
  224. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/generators.py +0 -0
  225. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/helpers.py +0 -0
  226. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/management/__init__.py +0 -0
  227. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/management/base.py +0 -0
  228. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/management/commands/__init__.py +0 -0
  229. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/management/commands/export_entities_data.py +0 -0
  230. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/management/commands/export_latest_entities_data.py +0 -0
  231. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/migrations/0001_initial.py +0 -0
  232. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/migrations/0002_auto_20250704_0810.py +0 -0
  233. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/migrations/__init__.py +0 -0
  234. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/mixins.py +0 -0
  235. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/models.py +0 -0
  236. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/operations.py +0 -0
  237. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/registry/__init__.py +0 -0
  238. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/registry/actions.py +0 -0
  239. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/registry/apps.py +0 -0
  240. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/registry/templates/ui-js/create-export-command-win.js +0 -0
  241. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/registry/templates/ui-js/stage_for_export.js +0 -0
  242. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/registry/ui.py +0 -0
  243. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/export_data/strategies.py +0 -0
  244. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/service/__init__.py +0 -0
  245. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/service/apps.py +0 -0
  246. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/service/model_outdated_data/__init__.py +0 -0
  247. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/service/model_outdated_data/cleaners.py +0 -0
  248. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/service/model_outdated_data/managers.py +0 -0
  249. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/service/service_outdated_data/__init__.py +0 -0
  250. {edu_rdm_integration-3.20.0/src/edu_rdm_integration/stages/upload_data → edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/service/service_outdated_data/cleaners}/__init__.py +0 -0
  251. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/service/tasks.py +0 -0
  252. {edu_rdm_integration-3.20.0/src/edu_rdm_integration/stages/upload_data/management → edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/upload_data}/__init__.py +0 -0
  253. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/apps.py +0 -0
  254. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/consts.py +0 -0
  255. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/dataclasses.py +0 -0
  256. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/enums.py +0 -0
  257. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/export_managers.py +0 -0
  258. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/helpers.py +0 -0
  259. {edu_rdm_integration-3.20.0/src/edu_rdm_integration/stages/upload_data/management/commands → edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/upload_data/management}/__init__.py +0 -0
  260. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/management/base.py +0 -0
  261. {edu_rdm_integration-3.20.0/src/edu_rdm_integration/stages/upload_data/migrations → edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/upload_data/management/commands}/__init__.py +0 -0
  262. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/management/commands/async_fix_attachment_size.py +0 -0
  263. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/management/commands/check_upload_status.py +0 -0
  264. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/management/commands/datamart_status.py +0 -0
  265. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/management/commands/datamart_upload.py +0 -0
  266. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/migrations/0001_initial.py +0 -0
  267. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/migrations/0002_auto_20250704_0810.py +0 -0
  268. {edu_rdm_integration-3.20.0/src/edu_rdm_integration/stages/upload_data/uploader_log → edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/upload_data/migrations}/__init__.py +0 -0
  269. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/operations.py +0 -0
  270. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/queues.py +0 -0
  271. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/tasks.py +0 -0
  272. {edu_rdm_integration-3.20.0/src/edu_rdm_integration/stages/upload_data/uploader_log/migrations → edu_rdm_integration-3.22.0/src/edu_rdm_integration/stages/upload_data/uploader_log}/__init__.py +0 -0
  273. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/actions.py +0 -0
  274. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/apps.py +0 -0
  275. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/enums.py +0 -0
  276. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/managers.py +0 -0
  277. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/migrations/0001_initial.py +0 -0
  278. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/models.py +0 -0
  279. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/templates/ui-js/object-grid-buttons.js +0 -0
  280. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/ui.py +0 -0
  281. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration.egg-info/dependency_links.txt +0 -0
  282. {edu_rdm_integration-3.20.0 → edu_rdm_integration-3.22.0}/src/edu_rdm_integration.egg-info/top_level.txt +0 -0
@@ -29,6 +29,67 @@
29
29
  ### Удалено
30
30
 
31
31
 
32
+ ## [3.22.0] - 2025-10-08
33
+
34
+ Добавлена возможность зачистки устаревших данных сервисных моделей РВД.
35
+
36
+ Переименована настройка `COLLECT_PROGRESS_BATCH_SIZE` в `RDM_COLLECT_PROGRESS_BATCH_SIZE`,
37
+ для корректного использования.
38
+
39
+ ### Добавлено
40
+
41
+ - [EDUDEVOPS-98](https://jira.bars.group/browse/EDUDEVOPS-98)
42
+ MINOR Добавлена возможность зачистки устаревших данных сервисных моделей РВД
43
+ в команду/ночной скрипт rdm_cleanup_outdated_data`.
44
+
45
+ ### Исправлено
46
+
47
+ - [EDUDEVOPS-101](https://jira.bars.group/browse/EDUDEVOPS-101)
48
+ PATCH Переименована настройка `COLLECT_PROGRESS_BATCH_SIZE` в `RDM_COLLECT_PROGRESS_BATCH_SIZE`.
49
+
50
+ Добавлены новые настройки
51
+
52
+ | Название настройки в settings | Описание | Значение по умолчанию |
53
+ |---------------------------------------|------------------------------------------------------------|-----------------------|
54
+ | ENABLE_CLEANUP_SERVICE_OUTDATED_DATA | Включение зачистки устаревших данных сервисных моделей РВД | False |
55
+
56
+ В settings.py:
57
+
58
+ - Добавить значение по умолчанию:
59
+ ```
60
+ PROJECT_DEFAULT_CONFIG.update({
61
+ ...
62
+ ('rdm_cleanup_outdated_data', 'ENABLE_CLEANUP_SERVICE_OUTDATED_DATA'): False,
63
+ ...
64
+ })
65
+ ```
66
+
67
+ - Получить значение настройки из конфигурационного файла:
68
+ ```
69
+ # Включить зачистку устаревших данных сервисных моделей РВД
70
+ RDM_ENABLE_CLEANUP_SERVICE_OUTDATED_DATA = conf.get_bool('rdm_cleanup_outdated_data', 'ENABLE_CLEANUP_SERVICE_OUTDATED_DATA')
71
+ ```
72
+
73
+ В дефолтный конфиг проекта необходимо добавить:
74
+
75
+ ```
76
+ # Настройка зачистки устаревших данных
77
+ [rdm_cleanup_outdated_data]
78
+ # Включить зачистку устаревших данных сервисных моделей РВД
79
+ ENABLE_CLEANUP_SERVICE_OUTDATED_DATA = False
80
+ ```
81
+
82
+
83
+ ## [3.21.0] - 2025-10-08
84
+
85
+ Переименование m3-django-compat в m3-django-compatibility.
86
+
87
+ ### Изменено
88
+
89
+ - [PYTD-20](https://jira.bars.group/browse/PYTD-20)
90
+ MINOR Переименование m3-django-compat в m3-django-compatibility.
91
+
92
+
32
93
  ## [3.20.0] - 2025-10-06
33
94
 
34
95
  Проверка записей моделей РВД на устаревание чанками при помощи asyncio. Добавление настроек для работы.
@@ -313,7 +374,7 @@ settings.py в установленные приложения.
313
374
  - Получить значение настройки из конфигурационного файла:
314
375
  ```
315
376
  # Размер батча для bulk_create операций при сборе данных РВД.
316
- COLLECT_PROGRESS_BATCH_SIZE = conf.get_int('rmd_general', 'COLLECT_PROGRESS_BATCH_SIZE')
377
+ RDM_COLLECT_PROGRESS_BATCH_SIZE = conf.get_int('rmd_general', 'COLLECT_PROGRESS_BATCH_SIZE')
317
378
  ```
318
379
 
319
380
  - В дефолтный конфиг проекта необходимо добавить:
@@ -334,6 +395,60 @@ settings.py в установленные приложения.
334
395
  MINOR Поднять версию Django до 4.2.23
335
396
 
336
397
 
398
+ ## [3.15.4] - 2025-01-27
399
+
400
+ Улучшена валидация полей формы сбора данных, добавлена логика взаимозависимости полей batch_size и split_by,
401
+ оптимизирована производительность bulk_create операций.
402
+
403
+ ### Добавлено
404
+
405
+ - Добавлен файл validators.js с валидаторами для полей формы
406
+ - Добавлен валидатор instituteIdsValidator для поля institute_ids
407
+ - Добавлен валидатор instituteCountValidator для поля institute_count
408
+ - Добавлен файл collect-command-window.js с JavaScript логикой для формы
409
+ - Добавлена логика взаимозависимости полей batch_size и split_by
410
+ - Добавлен параметр RDM_COLLECT_PROGRESS_BATCH_SIZE для настройки размера батча
411
+
412
+ ### Изменено
413
+
414
+ - Поле institute_ids: добавлены label, max_length и client_id
415
+ - Поле institute_count: подключен валидатор instituteCountValidator
416
+ - Поле split_by: установлено editable=False для ограничения ввода только из списка
417
+ - Метод save_row в actions.py: заменена логика сохранения на bulk_create с настраиваемым batch_size
418
+ - Добавлена JavaScript логика для корректной проверки обязательности взаимозависимых полей
419
+
420
+ ### Добавлены новые настройки
421
+
422
+ | Название настройки в settings | Описание | Значение по умолчанию |
423
+ |-----------------------------------|-----------------------------------------------------------------------------------------|-----------------------|
424
+ | RDM_COLLECT_PROGRESS_BATCH_SIZE | Размер батча для bulk_create операций при сборе данных РВД. | 10000 |
425
+
426
+ В settings.py:
427
+
428
+ - Добавить значение по умолчанию:
429
+ ```
430
+ PROJECT_DEFAULT_CONFIG.update({
431
+ ...
432
+ ('rmd_general', 'COLLECT_PROGRESS_BATCH_SIZE'): 10000,
433
+ ...
434
+ })
435
+ ```
436
+
437
+ - Получить значение настройки из конфигурационного файла:
438
+ ```
439
+ # Размер батча для bulk_create операций при сборе данных РВД.
440
+ RDM_COLLECT_PROGRESS_BATCH_SIZE = conf.get_int('rmd_general', 'COLLECT_PROGRESS_BATCH_SIZE')
441
+ ```
442
+
443
+ В дефолтный конфиг проекта необходимо добавить:
444
+
445
+ ```
446
+ [rmd_general]
447
+ # Размер батча для bulk_create операций при сборе данных РВД.
448
+ COLLECT_PROGRESS_BATCH_SIZE = 10000
449
+ ```
450
+
451
+
337
452
  ## [3.15.3] - 2025-08-12
338
453
 
339
454
  ### Добавлено
@@ -465,7 +580,7 @@ settings.py в установленные приложения.
465
580
  - Получить значение настройки из конфигурационного файла:
466
581
  ```
467
582
  # Размер батча для bulk_create операций при сборе данных РВД.
468
- COLLECT_PROGRESS_BATCH_SIZE = conf.get_int('rmd_general', 'COLLECT_PROGRESS_BATCH_SIZE')
583
+ RDM_COLLECT_PROGRESS_BATCH_SIZE = conf.get_int('rmd_general', 'COLLECT_PROGRESS_BATCH_SIZE')
469
584
  ```
470
585
 
471
586
  - В дефолтный конфиг проекта необходимо добавить:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: edu-rdm-integration
3
- Version: 3.20.0
3
+ Version: 3.22.0
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
@@ -30,7 +30,7 @@ Requires-Dist: asyncpg==0.23.0
30
30
  Requires-Dist: educommon<4,>=3.25.0
31
31
  Requires-Dist: edu-function-tools<1,>=0.2.0
32
32
  Requires-Dist: m3-db-utils<1,>=0.7.0
33
- Requires-Dist: m3-django-compat<2,>=1.10.2
33
+ Requires-Dist: m3-django-compatibility<2,>=1.12.0
34
34
  Requires-Dist: m3-ui<2.3,>=2.2.122
35
35
  Requires-Dist: uploader-client<1,>=0.3.0
36
36
  Provides-Extra: dev
@@ -153,6 +153,7 @@ INSTALLED_APPS = (
153
153
  ('rdm_general', 'EXPORT_CHUNK_SIZE'): 500,
154
154
  ('rdm_general', 'UPLOAD_QUEUE_MAX_SIZE'): 500_000_000,
155
155
  ('rdm_general', 'RDM_MENU_ITEM'): False,
156
+ ('rdm_general', 'COLLECT_PROGRESS_BATCH_SIZE'): 10000,
156
157
  ('rdm_transfer_task', 'MINUTE'): '0',
157
158
  ('rdm_transfer_task', 'HOUR'): '*/4',
158
159
  ('rdm_transfer_task', 'DAY_OF_WEEK'): '*',
@@ -230,6 +231,9 @@ INSTALLED_APPS = (
230
231
  # Пункт меню "Региональная витрина данных" - Спрятать (False) / Отображать (True)
231
232
  RDM_MENU_ITEM = conf.get_bool('rdm_general', 'RDM_MENU_ITEM')
232
233
 
234
+ # Размер батча для bulk_create операций при сборе данных РВД.
235
+ RDM_COLLECT_PROGRESS_BATCH_SIZE = conf.get_int('rmd_general', 'COLLECT_PROGRESS_BATCH_SIZE')
236
+
233
237
  # Настройка запуска периодической задачи выгрузки данных:
234
238
  RDM_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task', 'MINUTE')
235
239
  RDM_TRANSFER_TASK_HOUR = conf.get('rdm_transfer_task', 'HOUR')
@@ -315,6 +319,8 @@ INSTALLED_APPS = (
315
319
 
316
320
  # Включить зачистку устаревших данных моделей РВД
317
321
  RDM_ENABLE_CLEANUP_MODELS_OUTDATED_DATA = conf.get_bool('rdm_cleanup_outdated_data', 'ENABLE_CLEANUP_MODELS_OUTDATED_DATA')
322
+ # Включить зачистку устаревших данных сервисных моделей РВД
323
+ RDM_ENABLE_CLEANUP_SERVICE_OUTDATED_DATA = conf.get_bool('rdm_cleanup_outdated_data', 'ENABLE_CLEANUP_MODELS_OUTDATED_DATA')
318
324
  # Размер чанка записей зачистки устаревших данных моделей РВД
319
325
  RDM_CLEANUP_MODELS_OUTDATED_DATA_CHUNK_SIZE = conf.get_int('rdm_cleanup_outdated_data', 'CLEANUP_MODELS_OUTDATED_DATA_CHUNK_SIZE')
320
326
  # Количество подключений к БД для зачистки устаревших данных моделей РВД
@@ -332,6 +338,7 @@ INSTALLED_APPS = (
332
338
  | RDM_UPDATE_NON_EXPORTED_CHUNK_SIZE | # Количество не экспортированных записей моделей обрабатываемых за одну итерацию обновления поля modified | 5000 |
333
339
  | RDM_UPLOAD_QUEUE_MAX_SIZE | Объем очереди файлов в витрину (в байтах). | 500_000_000 |
334
340
  | RDM_MENU_ITEM | Отображение пункта меню Пункт меню "Региональная витрина данных" | False |
341
+ | RDM_COLLECT_PROGRESS_BATCH_SIZE | Размер батча для сохранений записей в базу при сборе данных РВД | 10000 |
335
342
  | RDM_TRANSFER_TASK_MINUTE | Настройка запуска периодической задачи выгрузки данных. Минута | '0' |
336
343
  | RDM_TRANSFER_TASK_HOUR | Настройка запуска периодической задачи выгрузки данных. Час | '*/4' |
337
344
  | RDM_TRANSFER_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи выгрузки данных. День недели | '*' |
@@ -379,6 +386,7 @@ INSTALLED_APPS = (
379
386
  | RDM_EXPORT_LOG_DIR | Директория логов экспорта данных, доступных для скачивания | |
380
387
  | RDM_UPLOAD_LOG_DIR | Директория логов отправки данных в витрину, доступных для скачивания | |
381
388
  | RDM_ENABLE_CLEANUP_MODELS_OUTDATED_DATA | Включение зачистки устаревших данных моделей РВД | False |
389
+ | RDM_ENABLE_CLEANUP_SERVICE_OUTDATED_DATA | Включение зачистки устаревших данных сервисных моделей РВД | False |
382
390
  | RDM_CLEANUP_MODELS_OUTDATED_DATA_CHUNK_SIZE | Размер чанка записей зачистки устаревших данных моделей РВД | 10000 |
383
391
  | RDM_CLEANUP_MODELS_OUTDATED_DATA_POOL_SIZE | Количество подключений к БД для зачистки устаревших данных моделей РВД | 10 |
384
392
 
@@ -395,6 +403,8 @@ INSTALLED_APPS = (
395
403
  EXPORT_CHUNK_SIZE = 500
396
404
  # Количество записей моделей ЭШ обрабатываемых за одну итерацию сбора данных
397
405
  COLLECT_CHUNK_SIZE = 500
406
+ # Размер батча для bulk_create операций при сборе данных РВД
407
+ COLLECT_PROGRESS_BATCH_SIZE = 10000
398
408
  # Количество не экспортированных записей моделей обрабатываемых за одну итерацию обновления поля modified
399
409
  UPDATE_NON_EXPORTED_CHUNK_SIZE = 5000
400
410
  # Объем очереди файлов в витрину (в байтах) - по умолчанию 512 Мбайт.
@@ -105,6 +105,7 @@ INSTALLED_APPS = (
105
105
  ('rdm_general', 'EXPORT_CHUNK_SIZE'): 500,
106
106
  ('rdm_general', 'UPLOAD_QUEUE_MAX_SIZE'): 500_000_000,
107
107
  ('rdm_general', 'RDM_MENU_ITEM'): False,
108
+ ('rdm_general', 'COLLECT_PROGRESS_BATCH_SIZE'): 10000,
108
109
  ('rdm_transfer_task', 'MINUTE'): '0',
109
110
  ('rdm_transfer_task', 'HOUR'): '*/4',
110
111
  ('rdm_transfer_task', 'DAY_OF_WEEK'): '*',
@@ -182,6 +183,9 @@ INSTALLED_APPS = (
182
183
  # Пункт меню "Региональная витрина данных" - Спрятать (False) / Отображать (True)
183
184
  RDM_MENU_ITEM = conf.get_bool('rdm_general', 'RDM_MENU_ITEM')
184
185
 
186
+ # Размер батча для bulk_create операций при сборе данных РВД.
187
+ RDM_COLLECT_PROGRESS_BATCH_SIZE = conf.get_int('rmd_general', 'COLLECT_PROGRESS_BATCH_SIZE')
188
+
185
189
  # Настройка запуска периодической задачи выгрузки данных:
186
190
  RDM_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task', 'MINUTE')
187
191
  RDM_TRANSFER_TASK_HOUR = conf.get('rdm_transfer_task', 'HOUR')
@@ -267,6 +271,8 @@ INSTALLED_APPS = (
267
271
 
268
272
  # Включить зачистку устаревших данных моделей РВД
269
273
  RDM_ENABLE_CLEANUP_MODELS_OUTDATED_DATA = conf.get_bool('rdm_cleanup_outdated_data', 'ENABLE_CLEANUP_MODELS_OUTDATED_DATA')
274
+ # Включить зачистку устаревших данных сервисных моделей РВД
275
+ RDM_ENABLE_CLEANUP_SERVICE_OUTDATED_DATA = conf.get_bool('rdm_cleanup_outdated_data', 'ENABLE_CLEANUP_MODELS_OUTDATED_DATA')
270
276
  # Размер чанка записей зачистки устаревших данных моделей РВД
271
277
  RDM_CLEANUP_MODELS_OUTDATED_DATA_CHUNK_SIZE = conf.get_int('rdm_cleanup_outdated_data', 'CLEANUP_MODELS_OUTDATED_DATA_CHUNK_SIZE')
272
278
  # Количество подключений к БД для зачистки устаревших данных моделей РВД
@@ -284,6 +290,7 @@ INSTALLED_APPS = (
284
290
  | RDM_UPDATE_NON_EXPORTED_CHUNK_SIZE | # Количество не экспортированных записей моделей обрабатываемых за одну итерацию обновления поля modified | 5000 |
285
291
  | RDM_UPLOAD_QUEUE_MAX_SIZE | Объем очереди файлов в витрину (в байтах). | 500_000_000 |
286
292
  | RDM_MENU_ITEM | Отображение пункта меню Пункт меню "Региональная витрина данных" | False |
293
+ | RDM_COLLECT_PROGRESS_BATCH_SIZE | Размер батча для сохранений записей в базу при сборе данных РВД | 10000 |
287
294
  | RDM_TRANSFER_TASK_MINUTE | Настройка запуска периодической задачи выгрузки данных. Минута | '0' |
288
295
  | RDM_TRANSFER_TASK_HOUR | Настройка запуска периодической задачи выгрузки данных. Час | '*/4' |
289
296
  | RDM_TRANSFER_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи выгрузки данных. День недели | '*' |
@@ -331,6 +338,7 @@ INSTALLED_APPS = (
331
338
  | RDM_EXPORT_LOG_DIR | Директория логов экспорта данных, доступных для скачивания | |
332
339
  | RDM_UPLOAD_LOG_DIR | Директория логов отправки данных в витрину, доступных для скачивания | |
333
340
  | RDM_ENABLE_CLEANUP_MODELS_OUTDATED_DATA | Включение зачистки устаревших данных моделей РВД | False |
341
+ | RDM_ENABLE_CLEANUP_SERVICE_OUTDATED_DATA | Включение зачистки устаревших данных сервисных моделей РВД | False |
334
342
  | RDM_CLEANUP_MODELS_OUTDATED_DATA_CHUNK_SIZE | Размер чанка записей зачистки устаревших данных моделей РВД | 10000 |
335
343
  | RDM_CLEANUP_MODELS_OUTDATED_DATA_POOL_SIZE | Количество подключений к БД для зачистки устаревших данных моделей РВД | 10 |
336
344
 
@@ -347,6 +355,8 @@ INSTALLED_APPS = (
347
355
  EXPORT_CHUNK_SIZE = 500
348
356
  # Количество записей моделей ЭШ обрабатываемых за одну итерацию сбора данных
349
357
  COLLECT_CHUNK_SIZE = 500
358
+ # Размер батча для bulk_create операций при сборе данных РВД
359
+ COLLECT_PROGRESS_BATCH_SIZE = 10000
350
360
  # Количество не экспортированных записей моделей обрабатываемых за одну итерацию обновления поля modified
351
361
  UPDATE_NON_EXPORTED_CHUNK_SIZE = 5000
352
362
  # Объем очереди файлов в витрину (в байтах) - по умолчанию 512 Мбайт.
@@ -25,7 +25,7 @@ dependencies = [
25
25
  'educommon>=3.25.0,<4',
26
26
  'edu-function-tools>=0.2.0,<1',
27
27
  'm3-db-utils>=0.7.0,<1',
28
- 'm3-django-compat>=1.10.2,<2',
28
+ 'm3-django-compatibility>=1.12.0,<2',
29
29
  'm3-ui>=2.2.122,<2.3',
30
30
  'uploader-client>=0.3.0,<1',
31
31
  ]
@@ -11,6 +11,9 @@ from edu_rdm_integration.rdm_models.models import (
11
11
  from edu_rdm_integration.stages.service.model_outdated_data.managers import (
12
12
  ModelOutdatedDataCleanerManager,
13
13
  )
14
+ from edu_rdm_integration.stages.service.service_outdated_data.managers import (
15
+ ServiceOutdatedDataCleanerManager,
16
+ )
14
17
 
15
18
 
16
19
  class Command(BaseCommand):
@@ -33,10 +36,26 @@ class Command(BaseCommand):
33
36
  '--models',
34
37
  action='store',
35
38
  dest='models',
36
- type=lambda ml: [m.strip().upper() for m in ml.strip().split(',')] if ml else None,
39
+ type=lambda ml: [m.strip().upper() for m in ml.split(',')] if ml else None,
37
40
  help=models_help_text,
38
41
  )
39
42
 
43
+ # Аргумент для сервисных стадий
44
+ stages_help_text = (
45
+ 'Значением параметра является перечисление стадий сервисных данных, '
46
+ 'для которых должна быть произведена зачистка устаревших данных. '
47
+ 'Перечисление этапов: collect, export, upload. '
48
+ 'Если стадии не указываются, то зачистка будет произведена для всех стадий. '
49
+ 'Стадии перечисляются через запятую без пробелов.'
50
+ )
51
+ parser.add_argument(
52
+ '--stages',
53
+ action='store',
54
+ dest='stages',
55
+ type=lambda st: [s.strip().lower() for s in st.split(',')] if st else None,
56
+ help=stages_help_text,
57
+ )
58
+
40
59
  parser.add_argument(
41
60
  '--safe',
42
61
  action='store_true',
@@ -62,7 +81,19 @@ class Command(BaseCommand):
62
81
  )
63
82
  model_data_cleaner_manager.run()
64
83
 
84
+ def _cleanup_service_outdated_data(self, options):
85
+ """Очистка устаревших данных сервисных моделей РВД."""
86
+ service_data_cleaner_manager = ServiceOutdatedDataCleanerManager(
87
+ stages=options['stages'],
88
+ safe=options['safe'],
89
+ log_sql=options['log_sql'],
90
+ )
91
+ service_data_cleaner_manager.run()
92
+
65
93
  def handle(self, *args, **options):
66
94
  """Запуск очистки устаревших данных РВД."""
67
95
  if settings.RDM_ENABLE_CLEANUP_MODELS_OUTDATED_DATA:
68
96
  self._cleanup_model_outdated_data(options)
97
+
98
+ if settings.RDM_ENABLE_CLEANUP_SERVICE_OUTDATED_DATA:
99
+ self._cleanup_service_outdated_data(options)
@@ -9,7 +9,7 @@ from m3_db_utils.mixins import (
9
9
  from m3_db_utils.models import (
10
10
  ModelEnumValue,
11
11
  )
12
- from m3_django_compat import (
12
+ from m3_django_compatibility import (
13
13
  classproperty,
14
14
  )
15
15
 
@@ -10,7 +10,7 @@ from django.db import (
10
10
  from m3_db_utils.mixins import (
11
11
  BaseEnumRegisterMixin,
12
12
  )
13
- from m3_django_compat import (
13
+ from m3_django_compatibility import (
14
14
  classproperty,
15
15
  )
16
16
 
@@ -0,0 +1,22 @@
1
+ # Generated by Django 3.2.24 on 2025-10-08 14:17
2
+
3
+ import django.db.models.deletion
4
+ from django.db import (
5
+ migrations,
6
+ models,
7
+ )
8
+
9
+
10
+ class Migration(migrations.Migration):
11
+
12
+ dependencies = [
13
+ ('edu_rdm_integration_collect_data_stage', '0004_auto_20250704_0825'),
14
+ ]
15
+
16
+ operations = [
17
+ migrations.AlterField(
18
+ model_name='rdmcollectingdatasubstage',
19
+ name='previous',
20
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='edu_rdm_integration_collect_data_stage.rdmcollectingdatasubstage', verbose_name='Предыдущий сбор данных'),
21
+ ),
22
+ ]
@@ -0,0 +1,59 @@
1
+ # Generated by Django 3.2.24 on 2025-10-08 14:43
2
+
3
+ from django.db import (
4
+ migrations,
5
+ )
6
+
7
+ from edu_rdm_integration.stages.utils import (
8
+ update_foreign_key_constraint,
9
+ )
10
+
11
+
12
+ def apply_fk_updates(apps, schema_editor):
13
+ """
14
+ Применяет обновления внешних ключей для конкретных моделей.
15
+
16
+ Здесь задаются таблицы и поведение при удалении записей,
17
+ чтобы синхронизировать фактическое состояние БД с логикой моделей.
18
+ """
19
+ RDMCollectingDataSubStage = apps.get_model('edu_rdm_integration_collect_data_stage', 'RDMCollectingDataSubStage')
20
+ RDMCollectingDataStage = apps.get_model('edu_rdm_integration_collect_data_stage', 'RDMCollectingDataStage')
21
+
22
+ # Модель: RDMCollectingDataSubStage
23
+ # Поле previous_id должно иметь ON DELETE SET NULL
24
+ update_foreign_key_constraint(
25
+ table_name=RDMCollectingDataSubStage._meta.db_table,
26
+ field_name="previous_id",
27
+ target_table=RDMCollectingDataSubStage._meta.db_table,
28
+ on_delete="SET NULL",
29
+ )
30
+
31
+ RDMCollectingDataCommandProgress = apps.get_model('edu_rdm_integration_collect_data_stage', 'RDMCollectingDataCommandProgress')
32
+ # Модель: RDMCollectingDataCommandProgress
33
+ # Поле stage_id должно иметь ON DELETE SET NULL
34
+ update_foreign_key_constraint(
35
+ table_name=RDMCollectingDataCommandProgress._meta.db_table,
36
+ field_name="stage_id",
37
+ target_table=RDMCollectingDataStage._meta.db_table,
38
+ on_delete="SET NULL",
39
+ )
40
+
41
+ # Таблица: rdm_collecting_data_command_progress
42
+ # Поле stage_id должно иметь ON DELETE SET NULL
43
+ update_foreign_key_constraint(
44
+ table_name='rdm_collecting_data_command_progress',
45
+ field_name="stage_id",
46
+ target_table=RDMCollectingDataStage._meta.db_table,
47
+ on_delete="SET NULL",
48
+ )
49
+
50
+
51
+ class Migration(migrations.Migration):
52
+
53
+ dependencies = [
54
+ ('edu_rdm_integration_collect_data_stage', '0005_alter_rdmcollectingdatasubstage_previous'),
55
+ ]
56
+
57
+ operations = [
58
+ migrations.RunPython(apply_fk_updates, reverse_code=migrations.RunPython.noop),
59
+ ]
@@ -278,4 +278,4 @@ class BaseCollectingDataProgressPack(BaseCommandProgressPack):
278
278
  )
279
279
  for command in commands_to_save
280
280
  ]
281
- self.model.objects.bulk_create(objs, batch_size=settings.COLLECT_PROGRESS_BATCH_SIZE)
281
+ self.model.objects.bulk_create(objs, batch_size=settings.RDM_COLLECT_PROGRESS_BATCH_SIZE)
@@ -0,0 +1,76 @@
1
+ # Generated by Django 3.2.24 on 2025-10-08 14:44
2
+
3
+ from django.db import (
4
+ migrations,
5
+ )
6
+
7
+ from edu_rdm_integration.stages.utils import (
8
+ update_foreign_key_constraint,
9
+ )
10
+
11
+
12
+ def apply_fk_updates(apps, schema_editor):
13
+ """
14
+ Применяет обновления внешних ключей для конкретных моделей.
15
+
16
+ Здесь задаются таблицы и поведение при удалении записей,
17
+ чтобы синхронизировать фактическое состояние БД с логикой моделей.
18
+ """
19
+ RDMExportingDataSubStage = apps.get_model('edu_rdm_integration_export_data_stage', 'RDMExportingDataSubStage')
20
+ RDMExportingDataStage = apps.get_model('edu_rdm_integration_export_data_stage', 'RDMExportingDataStage')
21
+
22
+ RDMExportingDataSubStageAttachment = apps.get_model(
23
+ 'edu_rdm_integration_export_data_stage', 'RDMExportingDataSubStageAttachment'
24
+ )
25
+ # Модель: RDMExportingDataSubStageAttachment
26
+ # Поле exporting_data_sub_stage_id должно иметь ON DELETE CASCADE
27
+ update_foreign_key_constraint(
28
+ table_name=RDMExportingDataSubStageAttachment._meta.db_table,
29
+ field_name='exporting_data_sub_stage_id',
30
+ target_table=RDMExportingDataSubStage._meta.db_table,
31
+ on_delete='CASCADE',
32
+ )
33
+
34
+ RDMExportingDataSubStageEntity = apps.get_model(
35
+ 'edu_rdm_integration_export_data_stage', 'RDMExportingDataSubStageEntity'
36
+ )
37
+ # Модель: CollectDataCommandProgress
38
+ # Поле exporting_data_sub_stage_id должно иметь ON DELETE CASCADE
39
+ update_foreign_key_constraint(
40
+ table_name=RDMExportingDataSubStageEntity._meta.db_table,
41
+ field_name='exporting_data_sub_stage_id',
42
+ target_table=RDMExportingDataSubStage._meta.db_table,
43
+ on_delete='CASCADE',
44
+ )
45
+
46
+ RDMExportingDataCommandProgress = apps.get_model(
47
+ 'edu_rdm_integration_export_data_stage', 'RDMExportingDataCommandProgress'
48
+ )
49
+ # Модель: RDMExportingDataCommandProgress
50
+ # Поле stage_id должно иметь ON DELETE SET NULL
51
+ update_foreign_key_constraint(
52
+ table_name=RDMExportingDataCommandProgress._meta.db_table,
53
+ field_name='stage_id',
54
+ target_table=RDMExportingDataStage._meta.db_table,
55
+ on_delete='SET NULL',
56
+ )
57
+
58
+ # Таблица: rdm_exporting_data_command_progress
59
+ # Поле stage_id должно иметь ON DELETE SET NULL
60
+ update_foreign_key_constraint(
61
+ table_name='rdm_exporting_data_command_progress',
62
+ field_name="stage_id",
63
+ target_table=RDMExportingDataStage._meta.db_table,
64
+ on_delete="SET NULL",
65
+ )
66
+
67
+
68
+ class Migration(migrations.Migration):
69
+
70
+ dependencies = [
71
+ ('edu_rdm_integration_export_data_stage', '0002_auto_20250704_0810'),
72
+ ]
73
+
74
+ operations = [
75
+ migrations.RunPython(apply_fk_updates, reverse_code=migrations.RunPython.noop),
76
+ ]