edu-rdm-integration 3.9.2__py3-none-any.whl → 3.10.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. edu_rdm_integration/__init__.py +0 -1
  2. edu_rdm_integration/adapters/apps.py +15 -2
  3. edu_rdm_integration/adapters/caches.py +25 -12
  4. edu_rdm_integration/adapters/errors.py +13 -2
  5. edu_rdm_integration/adapters/functions.py +53 -14
  6. edu_rdm_integration/adapters/helpers.py +34 -8
  7. edu_rdm_integration/adapters/managers.py +41 -5
  8. edu_rdm_integration/adapters/presenters.py +26 -2
  9. edu_rdm_integration/adapters/receivers.py +16 -2
  10. edu_rdm_integration/adapters/results.py +50 -4
  11. edu_rdm_integration/adapters/runners.py +79 -20
  12. edu_rdm_integration/adapters/strategies.py +56 -54
  13. edu_rdm_integration/adapters/validators.py +43 -4
  14. edu_rdm_integration/apps.py +3 -23
  15. edu_rdm_integration/collect_and_export_data/__init__.py +1 -1
  16. edu_rdm_integration/collect_and_export_data/apps.py +1 -0
  17. edu_rdm_integration/collect_and_export_data/migrations/0001_initial.py +107 -17
  18. edu_rdm_integration/collect_and_export_data/migrations/0002_auto_20250204_1413.py +4 -2
  19. edu_rdm_integration/{consts.py → core/consts.py} +0 -11
  20. edu_rdm_integration/{enums.py → core/enums.py} +7 -54
  21. edu_rdm_integration/core/helpers.py +331 -0
  22. edu_rdm_integration/core/operations.py +71 -0
  23. edu_rdm_integration/core/redis_cache.py +20 -0
  24. edu_rdm_integration/{collect_and_export_data → core/registry}/actions.py +6 -12
  25. edu_rdm_integration/core/registry/apps.py +11 -0
  26. edu_rdm_integration/{collect_and_export_data → core/registry}/ui.py +1 -1
  27. edu_rdm_integration/{storages.py → core/storages.py} +8 -17
  28. edu_rdm_integration/{utils.py → core/utils.py} +29 -91
  29. edu_rdm_integration/migrations/0001_initial.py +294 -44
  30. edu_rdm_integration/migrations/0002_init_data_uploadstatus.py +1 -3
  31. edu_rdm_integration/migrations/0003_create_index_file_upload_status.py +0 -1
  32. edu_rdm_integration/migrations/0004_uploaderclientlog.py +1 -2
  33. edu_rdm_integration/migrations/0005_auto_20231204_1224.py +16 -4
  34. edu_rdm_integration/migrations/0006_request_status_data.py +60 -58
  35. edu_rdm_integration/migrations/0007_delete_upload_status.py +0 -1
  36. edu_rdm_integration/migrations/0009_auto_20240522_1619.py +1 -5
  37. edu_rdm_integration/migrations/0010_transferredentity_export_enabled.py +0 -1
  38. edu_rdm_integration/migrations/0011_exportingdatasubstageentity.py +16 -3
  39. edu_rdm_integration/migrations/0012_exportingdatasubstageattachment_attachment_size.py +0 -1
  40. edu_rdm_integration/migrations/0013_set_attachment_size.py +8 -12
  41. edu_rdm_integration/migrations/0014_uploaddatacommand.py +33 -6
  42. edu_rdm_integration/migrations/0015_set_exporting_sub_stage_status.py +1 -5
  43. edu_rdm_integration/migrations/0016_transferredentity_queue_level.py +2 -2
  44. edu_rdm_integration/migrations/0017_delete_uploaddatacommand.py +3 -2
  45. edu_rdm_integration/migrations/__init__.py +1 -0
  46. edu_rdm_integration/{registry → pipelines/transfer}/actions.py +13 -26
  47. edu_rdm_integration/pipelines/transfer/app_meta.py +18 -0
  48. edu_rdm_integration/pipelines/transfer/apps.py +19 -0
  49. edu_rdm_integration/pipelines/transfer/enums.py +34 -0
  50. edu_rdm_integration/pipelines/transfer/migrations/0001_initial.py +57 -0
  51. edu_rdm_integration/{base.py → pipelines/transfer/mixins.py} +29 -53
  52. edu_rdm_integration/pipelines/transfer/models.py +48 -0
  53. edu_rdm_integration/{tasks.py → pipelines/transfer/tasks.py} +51 -150
  54. edu_rdm_integration/{registry → pipelines/transfer}/ui.py +4 -10
  55. edu_rdm_integration/rdm_entities/apps.py +11 -0
  56. edu_rdm_integration/{entities.py → rdm_entities/entities.py} +67 -57
  57. edu_rdm_integration/rdm_entities/migrations/0001_initial.py +44 -0
  58. edu_rdm_integration/{enum_register → rdm_entities}/mixins.py +8 -59
  59. edu_rdm_integration/rdm_entities/models.py +63 -0
  60. edu_rdm_integration/rdm_entities/utils.py +33 -0
  61. edu_rdm_integration/rdm_models/apps.py +16 -0
  62. edu_rdm_integration/rdm_models/migrations/0001_initial.py +40 -0
  63. edu_rdm_integration/rdm_models/mixins.py +67 -0
  64. edu_rdm_integration/rdm_models/models.py +73 -0
  65. edu_rdm_integration/rdm_models/utils.py +23 -0
  66. edu_rdm_integration/stages/collect_data/apps.py +11 -0
  67. edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/functions.py-tpl +2 -2
  68. edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/managers.py-tpl +1 -1
  69. edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/runners.py-tpl +1 -1
  70. edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/tests.py-tpl +2 -1
  71. edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/caches.py +2 -2
  72. edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/functions.py +15 -18
  73. edu_rdm_integration/stages/collect_data/functions/base/helpers.py +20 -0
  74. edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/managers.py +20 -27
  75. edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/mixins.py +38 -55
  76. edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/runners.py +2 -5
  77. edu_rdm_integration/stages/collect_data/functions/calculated/base/__init__.py +0 -0
  78. edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/caches.py +3 -7
  79. edu_rdm_integration/stages/collect_data/functions/calculated/base/errors.py +7 -0
  80. edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/functions.py +8 -16
  81. edu_rdm_integration/stages/collect_data/functions/calculated/base/helpers.py +24 -0
  82. edu_rdm_integration/stages/collect_data/functions/calculated/base/managers.py +19 -0
  83. edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/presenters.py +1 -3
  84. edu_rdm_integration/stages/collect_data/functions/calculated/base/results.py +12 -0
  85. edu_rdm_integration/stages/collect_data/functions/calculated/base/runners.py +28 -0
  86. edu_rdm_integration/stages/collect_data/functions/calculated/base/validators.py +20 -0
  87. edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/strategies.py +32 -70
  88. edu_rdm_integration/stages/collect_data/functions/non_calculated/__init__.py +0 -0
  89. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/__init__.py +0 -0
  90. edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/caches.py +13 -22
  91. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/errors.py +7 -0
  92. edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/functions.py +8 -16
  93. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/helpers.py +24 -0
  94. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/managers.py +19 -0
  95. edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/presenters.py +1 -3
  96. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/results.py +12 -0
  97. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/runners.py +28 -0
  98. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/validators.py +20 -0
  99. edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/strategies.py +32 -70
  100. edu_rdm_integration/{collect_data → stages/collect_data}/generators.py +9 -14
  101. edu_rdm_integration/stages/collect_data/helpers.py +154 -0
  102. edu_rdm_integration/stages/collect_data/management/__init__.py +0 -0
  103. edu_rdm_integration/stages/collect_data/management/base.py +100 -0
  104. edu_rdm_integration/stages/collect_data/management/commands/__init__.py +0 -0
  105. edu_rdm_integration/{management → stages/collect_data/management}/commands/collect_latest_models_data.py +5 -7
  106. edu_rdm_integration/{management → stages/collect_data/management}/commands/collect_models_data.py +5 -7
  107. edu_rdm_integration/stages/collect_data/migrations/0001_initial.py +187 -0
  108. edu_rdm_integration/stages/collect_data/migrations/0002_edurdmcollectdatacommandprogress.py +105 -0
  109. edu_rdm_integration/stages/collect_data/migrations/__init__.py +0 -0
  110. edu_rdm_integration/stages/collect_data/mixins.py +56 -0
  111. edu_rdm_integration/stages/collect_data/models.py +318 -0
  112. edu_rdm_integration/{collect_data/collect.py → stages/collect_data/operations.py} +30 -43
  113. edu_rdm_integration/stages/collect_data/registry/__init__.py +0 -0
  114. edu_rdm_integration/{collect_data → stages/collect_data/registry}/actions.py +17 -20
  115. edu_rdm_integration/stages/collect_data/registry/apps.py +11 -0
  116. edu_rdm_integration/{collect_data → stages/collect_data/registry}/ui.py +8 -15
  117. edu_rdm_integration/{collect_data → stages/collect_data}/tests.py +2 -2
  118. edu_rdm_integration/stages/export_data/__init__.py +0 -0
  119. edu_rdm_integration/stages/export_data/apps.py +11 -0
  120. edu_rdm_integration/stages/export_data/function_templates/__init__.py +0 -0
  121. edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/functions.py-tpl +2 -2
  122. edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/managers.py-tpl +2 -2
  123. edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/runners.py-tpl +2 -2
  124. edu_rdm_integration/stages/export_data/functions/__init__.py +0 -0
  125. edu_rdm_integration/stages/export_data/functions/base/__init__.py +0 -0
  126. edu_rdm_integration/{export_data → stages/export_data/functions}/base/caches.py +3 -8
  127. edu_rdm_integration/stages/export_data/functions/base/errors.py +7 -0
  128. edu_rdm_integration/{export_data → stages/export_data/functions}/base/functions.py +28 -59
  129. edu_rdm_integration/{export_data → stages/export_data/functions}/base/helpers.py +7 -17
  130. edu_rdm_integration/{export_data → stages/export_data/functions}/base/managers.py +19 -28
  131. edu_rdm_integration/stages/export_data/functions/base/presenters.py +11 -0
  132. edu_rdm_integration/{export_data → stages/export_data/functions}/base/requests.py +13 -40
  133. edu_rdm_integration/stages/export_data/functions/base/results.py +12 -0
  134. edu_rdm_integration/{export_data → stages/export_data/functions}/base/runners.py +9 -21
  135. edu_rdm_integration/stages/export_data/functions/base/validators.py +20 -0
  136. edu_rdm_integration/{export_data → stages/export_data}/generators.py +7 -6
  137. edu_rdm_integration/stages/export_data/helpers.py +203 -0
  138. edu_rdm_integration/stages/export_data/management/__init__.py +0 -0
  139. edu_rdm_integration/stages/export_data/management/base.py +101 -0
  140. edu_rdm_integration/stages/export_data/management/commands/__init__.py +0 -0
  141. edu_rdm_integration/{management → stages/export_data/management}/commands/export_entities_data.py +5 -7
  142. edu_rdm_integration/{management → stages/export_data/management}/commands/export_latest_entities_data.py +5 -7
  143. edu_rdm_integration/stages/export_data/migrations/0001_initial.py +324 -0
  144. edu_rdm_integration/stages/export_data/migrations/__init__.py +0 -0
  145. edu_rdm_integration/stages/export_data/mixins.py +50 -0
  146. edu_rdm_integration/stages/export_data/models.py +362 -0
  147. edu_rdm_integration/{export_data/export.py → stages/export_data/operations.py} +13 -152
  148. edu_rdm_integration/stages/export_data/registry/__init__.py +0 -0
  149. edu_rdm_integration/{export_data → stages/export_data/registry}/actions.py +18 -18
  150. edu_rdm_integration/stages/export_data/registry/apps.py +11 -0
  151. edu_rdm_integration/{export_data → stages/export_data/registry}/ui.py +5 -7
  152. edu_rdm_integration/{export_data → stages/export_data}/strategies.py +30 -68
  153. edu_rdm_integration/stages/service/__init__.py +0 -0
  154. edu_rdm_integration/stages/service/apps.py +19 -0
  155. edu_rdm_integration/stages/service/tasks.py +63 -0
  156. edu_rdm_integration/stages/upload_data/__init__.py +0 -0
  157. edu_rdm_integration/stages/upload_data/apps.py +19 -0
  158. edu_rdm_integration/stages/upload_data/consts.py +10 -0
  159. edu_rdm_integration/{export_data → stages/upload_data}/dataclasses.py +1 -0
  160. edu_rdm_integration/stages/upload_data/enums.py +17 -0
  161. edu_rdm_integration/{export_data/export_manager.py → stages/upload_data/export_managers.py} +73 -68
  162. edu_rdm_integration/stages/upload_data/helpers.py +164 -0
  163. edu_rdm_integration/stages/upload_data/management/__init__.py +0 -0
  164. edu_rdm_integration/stages/upload_data/management/base.py +134 -0
  165. edu_rdm_integration/stages/upload_data/management/commands/__init__.py +0 -0
  166. edu_rdm_integration/{management → stages/upload_data/management}/commands/async_fix_attachment_size.py +32 -54
  167. edu_rdm_integration/{management → stages/upload_data/management}/commands/check_upload_status.py +7 -6
  168. edu_rdm_integration/{management → stages/upload_data/management}/commands/datamart_status.py +3 -3
  169. edu_rdm_integration/{management → stages/upload_data/management}/commands/datamart_upload.py +4 -4
  170. edu_rdm_integration/stages/upload_data/migrations/0001_initial.py +161 -0
  171. edu_rdm_integration/stages/upload_data/migrations/__init__.py +0 -0
  172. edu_rdm_integration/stages/upload_data/models.py +175 -0
  173. edu_rdm_integration/stages/upload_data/operations.py +156 -0
  174. edu_rdm_integration/{export_data/queue.py → stages/upload_data/queues.py} +10 -8
  175. edu_rdm_integration/stages/upload_data/tasks.py +103 -0
  176. edu_rdm_integration/stages/upload_data/uploader_log/__init__.py +0 -0
  177. edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/actions.py +14 -16
  178. edu_rdm_integration/stages/upload_data/uploader_log/apps.py +11 -0
  179. edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/managers.py +15 -30
  180. edu_rdm_integration/stages/upload_data/uploader_log/migrations/0001_initial.py +31 -0
  181. edu_rdm_integration/stages/upload_data/uploader_log/migrations/__init__.py +0 -0
  182. edu_rdm_integration/stages/upload_data/uploader_log/models.py +86 -0
  183. edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/ui.py +8 -6
  184. {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.0.dist-info}/METADATA +238 -238
  185. edu_rdm_integration-3.10.0.dist-info/RECORD +255 -0
  186. edu_rdm_integration/app_meta.py +0 -16
  187. edu_rdm_integration/app_settings.py +0 -77
  188. edu_rdm_integration/collect_and_export_data/models.py +0 -67
  189. edu_rdm_integration/collect_and_export_data/utils.py +0 -224
  190. edu_rdm_integration/collect_data/base/helpers.py +0 -26
  191. edu_rdm_integration/collect_data/calculated/base/errors.py +0 -9
  192. edu_rdm_integration/collect_data/calculated/base/helpers.py +0 -32
  193. edu_rdm_integration/collect_data/calculated/base/managers.py +0 -23
  194. edu_rdm_integration/collect_data/calculated/base/results.py +0 -16
  195. edu_rdm_integration/collect_data/calculated/base/runners.py +0 -36
  196. edu_rdm_integration/collect_data/calculated/base/validators.py +0 -28
  197. edu_rdm_integration/collect_data/helpers.py +0 -92
  198. edu_rdm_integration/collect_data/non_calculated/base/errors.py +0 -9
  199. edu_rdm_integration/collect_data/non_calculated/base/helpers.py +0 -32
  200. edu_rdm_integration/collect_data/non_calculated/base/managers.py +0 -23
  201. edu_rdm_integration/collect_data/non_calculated/base/results.py +0 -16
  202. edu_rdm_integration/collect_data/non_calculated/base/runners.py +0 -36
  203. edu_rdm_integration/collect_data/non_calculated/base/validators.py +0 -28
  204. edu_rdm_integration/enum_register/register.py +0 -79
  205. edu_rdm_integration/export_data/base/errors.py +0 -9
  206. edu_rdm_integration/export_data/base/presenters.py +0 -13
  207. edu_rdm_integration/export_data/base/results.py +0 -16
  208. edu_rdm_integration/export_data/base/validators.py +0 -28
  209. edu_rdm_integration/export_data/helpers.py +0 -92
  210. edu_rdm_integration/helpers.py +0 -412
  211. edu_rdm_integration/management/general.py +0 -327
  212. edu_rdm_integration/models.py +0 -982
  213. edu_rdm_integration/redis_cache.py +0 -51
  214. edu_rdm_integration/uploader_log/apps.py +0 -10
  215. edu_rdm_integration-3.9.2.dist-info/RECORD +0 -198
  216. /edu_rdm_integration/{collect_and_export_data/migrations → core}/__init__.py +0 -0
  217. /edu_rdm_integration/{mapping.py → core/mapping.py} +0 -0
  218. /edu_rdm_integration/{collect_data → core/registry}/__init__.py +0 -0
  219. /edu_rdm_integration/{templates → core/registry/templates}/ui-js/start-task.js +0 -0
  220. /edu_rdm_integration/{signals.py → core/signals.py} +0 -0
  221. /edu_rdm_integration/{typing.py → core/typing.py} +0 -0
  222. /edu_rdm_integration/{collect_data/base → pipelines}/__init__.py +0 -0
  223. /edu_rdm_integration/{collect_data/calculated → pipelines/transfer}/__init__.py +0 -0
  224. /edu_rdm_integration/{collect_data/calculated/base → pipelines/transfer/migrations}/__init__.py +0 -0
  225. /edu_rdm_integration/{templates → pipelines/transfer/templates}/ui-js/transferred-entity-list.js +0 -0
  226. /edu_rdm_integration/{collect_data/non_calculated → rdm_entities}/__init__.py +0 -0
  227. /edu_rdm_integration/{collect_data/non_calculated/base → rdm_entities/migrations}/__init__.py +0 -0
  228. /edu_rdm_integration/{enum_register → rdm_models}/__init__.py +0 -0
  229. /edu_rdm_integration/{export_data → rdm_models/migrations}/__init__.py +0 -0
  230. /edu_rdm_integration/{export_data/base → stages}/__init__.py +0 -0
  231. /edu_rdm_integration/{function_templates → stages/collect_data}/__init__.py +0 -0
  232. /edu_rdm_integration/{collect_data/const.py → stages/collect_data/consts.py} +0 -0
  233. /edu_rdm_integration/{management → stages/collect_data/function_templates}/__init__.py +0 -0
  234. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/__init__.py-tpl +0 -0
  235. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/apps.py-tpl +0 -0
  236. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/caches.py-tpl +0 -0
  237. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/consts.py-tpl +0 -0
  238. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/enums.py-tpl +0 -0
  239. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/errors.py-tpl +0 -0
  240. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/helpers.py-tpl +0 -0
  241. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/presenters.py-tpl +0 -0
  242. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/results.py-tpl +0 -0
  243. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/strings.py-tpl +0 -0
  244. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/validators.py-tpl +0 -0
  245. /edu_rdm_integration/{management/commands → stages/collect_data/functions}/__init__.py +0 -0
  246. /edu_rdm_integration/{registry → stages/collect_data/functions/base}/__init__.py +0 -0
  247. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/consts.py +0 -0
  248. /edu_rdm_integration/{uploader_log → stages/collect_data/functions/calculated}/__init__.py +0 -0
  249. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/consts.py +0 -0
  250. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/enums.py +0 -0
  251. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/strings.py +0 -0
  252. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/tests.py +0 -0
  253. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/consts.py +0 -0
  254. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/enums.py +0 -0
  255. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/strings.py +0 -0
  256. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/tests.py +0 -0
  257. /edu_rdm_integration/{export_data → stages/export_data}/consts.py +0 -0
  258. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/__init__.py-tpl +0 -0
  259. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/apps.py-tpl +0 -0
  260. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/caches.py-tpl +0 -0
  261. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/consts.py-tpl +0 -0
  262. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/enums.py-tpl +0 -0
  263. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/errors.py-tpl +0 -0
  264. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/helpers.py-tpl +0 -0
  265. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/presenters.py-tpl +0 -0
  266. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/results.py-tpl +0 -0
  267. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/strings.py-tpl +0 -0
  268. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/tests.py-tpl +0 -0
  269. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/validators.py-tpl +0 -0
  270. /edu_rdm_integration/{export_data → stages/export_data/functions}/base/consts.py +0 -0
  271. /edu_rdm_integration/{export_data → stages/export_data/functions}/base/enums.py +0 -0
  272. /edu_rdm_integration/{export_data → stages/export_data/functions}/base/strings.py +0 -0
  273. /edu_rdm_integration/{export_data → stages/export_data/functions}/base/tests.py +0 -0
  274. /edu_rdm_integration/{templates → stages/export_data/registry/templates}/ui-js/stage_for_export.js +0 -0
  275. /edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/enums.py +0 -0
  276. /edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/templates/ui-js/object-grid-buttons.js +0 -0
  277. {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.0.dist-info}/WHEEL +0 -0
  278. {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.0.dist-info}/licenses/LICENSE +0 -0
  279. {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.0.dist-info}/top_level.txt +0 -0
@@ -12,62 +12,65 @@ def init_request_statuses(apps, schema_editor):
12
12
  """Заполнение первоначальными данными DataMartRequestStatus."""
13
13
  DataMartRequestStatus = apps.get_model('edu_rdm_integration', 'DataMartRequestStatus') # noqa: N806
14
14
 
15
- DataMartRequestStatus.objects.bulk_create([
16
- DataMartRequestStatus(
17
- key='UPLOAD_TO_BUFFER',
18
- value=-1,
19
- title='Загрузка данных в буффер',
20
- order_number=DEFAULT_ORDER_NUMBER,
21
- ),
22
- DataMartRequestStatus(
23
- key='BUFFERED',
24
- value=0,
25
- title='Запрос буфферизирован',
26
- order_number=DEFAULT_ORDER_NUMBER,
27
- ),
28
- DataMartRequestStatus(
29
- key='WAIT_FOR_OPEN_DELTA',
30
- value=1,
31
- title='Ожидает открытия дельты',
32
- order_number=DEFAULT_ORDER_NUMBER,
33
- ),
34
- DataMartRequestStatus(
35
- key='IN_PROCESSING',
36
- value=2,
37
- title='В обработке',
38
- order_number=DEFAULT_ORDER_NUMBER,
39
- ),
40
- DataMartRequestStatus(
41
- key='SUCCESSFULLY_PROCESSED',
42
- value=3,
43
- title='Успешно обработан',
44
- order_number=DEFAULT_ORDER_NUMBER,
45
- ),
46
- DataMartRequestStatus(
47
- key='FAILED_PROCESSING',
48
- value=4,
49
- title='Ошибка обработки запроса',
50
- order_number=DEFAULT_ORDER_NUMBER,
51
- ),
52
- DataMartRequestStatus(
53
- key='REQUEST_ID_NOT_FOUND',
54
- value=5,
55
- title='Идентификатор запроса не обнаружен',
56
- order_number=DEFAULT_ORDER_NUMBER,
57
- ),
58
- DataMartRequestStatus(
59
- key='FORMAT_LOGICAL_CONTROL',
60
- value=6,
61
- title='Форматно-логический контроль',
62
- order_number=DEFAULT_ORDER_NUMBER,
63
- ),
64
- DataMartRequestStatus(
65
- key='FLC_ERROR',
66
- value=7,
67
- title='Ошибки ФЛК',
68
- order_number=DEFAULT_ORDER_NUMBER,
69
- ),
70
- ], ignore_conflicts=True)
15
+ DataMartRequestStatus.objects.bulk_create(
16
+ [
17
+ DataMartRequestStatus(
18
+ key='UPLOAD_TO_BUFFER',
19
+ value=-1,
20
+ title='Загрузка данных в буффер',
21
+ order_number=DEFAULT_ORDER_NUMBER,
22
+ ),
23
+ DataMartRequestStatus(
24
+ key='BUFFERED',
25
+ value=0,
26
+ title='Запрос буфферизирован',
27
+ order_number=DEFAULT_ORDER_NUMBER,
28
+ ),
29
+ DataMartRequestStatus(
30
+ key='WAIT_FOR_OPEN_DELTA',
31
+ value=1,
32
+ title='Ожидает открытия дельты',
33
+ order_number=DEFAULT_ORDER_NUMBER,
34
+ ),
35
+ DataMartRequestStatus(
36
+ key='IN_PROCESSING',
37
+ value=2,
38
+ title='В обработке',
39
+ order_number=DEFAULT_ORDER_NUMBER,
40
+ ),
41
+ DataMartRequestStatus(
42
+ key='SUCCESSFULLY_PROCESSED',
43
+ value=3,
44
+ title='Успешно обработан',
45
+ order_number=DEFAULT_ORDER_NUMBER,
46
+ ),
47
+ DataMartRequestStatus(
48
+ key='FAILED_PROCESSING',
49
+ value=4,
50
+ title='Ошибка обработки запроса',
51
+ order_number=DEFAULT_ORDER_NUMBER,
52
+ ),
53
+ DataMartRequestStatus(
54
+ key='REQUEST_ID_NOT_FOUND',
55
+ value=5,
56
+ title='Идентификатор запроса не обнаружен',
57
+ order_number=DEFAULT_ORDER_NUMBER,
58
+ ),
59
+ DataMartRequestStatus(
60
+ key='FORMAT_LOGICAL_CONTROL',
61
+ value=6,
62
+ title='Форматно-логический контроль',
63
+ order_number=DEFAULT_ORDER_NUMBER,
64
+ ),
65
+ DataMartRequestStatus(
66
+ key='FLC_ERROR',
67
+ value=7,
68
+ title='Ошибки ФЛК',
69
+ order_number=DEFAULT_ORDER_NUMBER,
70
+ ),
71
+ ],
72
+ ignore_conflicts=True,
73
+ )
71
74
 
72
75
 
73
76
  def migrate_upload_status_to_request_status(apps, schema_editor):
@@ -86,12 +89,11 @@ def migrate_upload_status_to_request_status(apps, schema_editor):
86
89
 
87
90
 
88
91
  class Migration(migrations.Migration):
89
-
90
92
  dependencies = [
91
93
  ('edu_rdm_integration', '0005_auto_20231204_1224'),
92
94
  ]
93
95
 
94
96
  operations = [
95
97
  migrations.RunPython(init_request_statuses, reverse_code=migrations.RunPython.noop),
96
- migrations.RunPython(migrate_upload_status_to_request_status, reverse_code=migrations.RunPython.noop)
98
+ migrations.RunPython(migrate_upload_status_to_request_status, reverse_code=migrations.RunPython.noop),
97
99
  ]
@@ -6,7 +6,6 @@ from django.db import (
6
6
 
7
7
 
8
8
  class Migration(migrations.Migration):
9
-
10
9
  dependencies = [
11
10
  ('edu_rdm_integration', '0006_request_status_data'),
12
11
  ]
@@ -8,14 +8,10 @@ from django.db import (
8
8
  def add_exporting_data_sub_stage_status(apps, schema_editor):
9
9
  """Добавление нового статуса этапу выгрузки данных."""
10
10
  ExportingDataSubStageStatus = apps.get_model('edu_rdm_integration', 'ExportingDataSubStageStatus') # noqa: N806
11
- ExportingDataSubStageStatus.objects.get_or_create(
12
- key='READY_FOR_EXPORT',
13
- title='Готов к выгрузке'
14
- )
11
+ ExportingDataSubStageStatus.objects.get_or_create(key='READY_FOR_EXPORT', title='Готов к выгрузке')
15
12
 
16
13
 
17
14
  class Migration(migrations.Migration):
18
-
19
15
  dependencies = [
20
16
  ('edu_rdm_integration', '0008_transferredentity'),
21
17
  ]
@@ -7,7 +7,6 @@ from django.db import (
7
7
 
8
8
 
9
9
  class Migration(migrations.Migration):
10
-
11
10
  dependencies = [
12
11
  ('edu_rdm_integration', '0009_auto_20240522_1619'),
13
12
  ]
@@ -8,7 +8,6 @@ from django.db import (
8
8
 
9
9
 
10
10
  class Migration(migrations.Migration):
11
-
12
11
  dependencies = [
13
12
  ('edu_rdm_integration', '0010_transferredentity_export_enabled'),
14
13
  ]
@@ -18,8 +17,22 @@ class Migration(migrations.Migration):
18
17
  name='ExportingDataSubStageEntity',
19
18
  fields=[
20
19
  ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
21
- ('entity', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='edu_rdm_integration.regionaldatamartentityenum', verbose_name='Сущность РВД')),
22
- ('exporting_data_sub_stage', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='edu_rdm_integration.exportingdatasubstage', verbose_name='Подэтап выгрузки данных')),
20
+ (
21
+ 'entity',
22
+ models.ForeignKey(
23
+ on_delete=django.db.models.deletion.PROTECT,
24
+ to='edu_rdm_integration.regionaldatamartentityenum',
25
+ verbose_name='Сущность РВД',
26
+ ),
27
+ ),
28
+ (
29
+ 'exporting_data_sub_stage',
30
+ models.ForeignKey(
31
+ on_delete=django.db.models.deletion.CASCADE,
32
+ to='edu_rdm_integration.exportingdatasubstage',
33
+ verbose_name='Подэтап выгрузки данных',
34
+ ),
35
+ ),
23
36
  ],
24
37
  options={
25
38
  'verbose_name': 'Связь сущности и подэтапа выгрузки',
@@ -7,7 +7,6 @@ from django.db import (
7
7
 
8
8
 
9
9
  class Migration(migrations.Migration):
10
-
11
10
  dependencies = [
12
11
  ('edu_rdm_integration', '0011_exportingdatasubstageentity'),
13
12
  ]
@@ -8,7 +8,7 @@ from educommon.utils.seqtools import (
8
8
  make_chunks,
9
9
  )
10
10
 
11
- from edu_rdm_integration.enums import (
11
+ from edu_rdm_integration.stages.upload_data.enums import (
12
12
  FileUploadStatusEnum,
13
13
  )
14
14
 
@@ -20,16 +20,16 @@ CHUNK_SIZE = 500
20
20
 
21
21
  def set_attachment_size(apps, schema_editor):
22
22
  """Установка размера файла по умолчанию."""
23
- ExportingDataSubStageAttachment = apps.get_model(
24
- 'edu_rdm_integration', 'ExportingDataSubStageAttachment'
25
- ) # noqa: N806
23
+ ExportingDataSubStageAttachment = apps.get_model('edu_rdm_integration', 'ExportingDataSubStageAttachment') # noqa: N806
26
24
  ExportingDataSubStageUploaderClientLog = apps.get_model(
27
25
  'edu_rdm_integration', 'ExportingDataSubStageUploaderClientLog'
28
26
  ) # noqa: N806
29
27
 
30
- attachment_ids = ExportingDataSubStageUploaderClientLog.objects.filter(
31
- file_upload_status=FileUploadStatusEnum.IN_PROGRESS
32
- ).values_list('attachment_id', flat=True).iterator()
28
+ attachment_ids = (
29
+ ExportingDataSubStageUploaderClientLog.objects.filter(file_upload_status=FileUploadStatusEnum.IN_PROGRESS)
30
+ .values_list('attachment_id', flat=True)
31
+ .iterator()
32
+ )
33
33
 
34
34
  sub_stage_with_deleted_attachments = []
35
35
  for chunked_attachment_ids in make_chunks(attachment_ids, CHUNK_SIZE):
@@ -47,12 +47,8 @@ def set_attachment_size(apps, schema_editor):
47
47
 
48
48
 
49
49
  class Migration(migrations.Migration):
50
-
51
50
  dependencies = [
52
51
  ('edu_rdm_integration', '0012_exportingdatasubstageattachment_attachment_size'),
53
52
  ]
54
53
 
55
- operations = [
56
- migrations.RunPython(set_attachment_size, reverse_code=migrations.RunPython.noop)
57
- ]
58
-
54
+ operations = [migrations.RunPython(set_attachment_size, reverse_code=migrations.RunPython.noop)]
@@ -11,11 +11,10 @@ from django.db import (
11
11
 
12
12
  import educommon.django.db.mixins
13
13
 
14
- import edu_rdm_integration.utils
14
+ import edu_rdm_integration.core.utils
15
15
 
16
16
 
17
17
  class Migration(migrations.Migration):
18
-
19
18
  dependencies = [
20
19
  ('async_task', '0002_task_type_and_status_data'),
21
20
  ('edu_rdm_integration', '0013_set_attachment_size'),
@@ -26,12 +25,40 @@ class Migration(migrations.Migration):
26
25
  name='UploadDataCommand',
27
26
  fields=[
28
27
  ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
29
- ('logs_link', models.FileField(max_length=255, upload_to=edu_rdm_integration.utils.get_data_command_progress_attachment_path, verbose_name='Ссылка на файл логов')),
30
- ('type', models.PositiveSmallIntegerField(choices=[(1, 'Автоматический'), (2, 'Ручной')], verbose_name='Тип команды')),
28
+ (
29
+ 'logs_link',
30
+ models.FileField(
31
+ max_length=255,
32
+ upload_to=edu_rdm_integration.core.utils.get_data_command_progress_attachment_path,
33
+ verbose_name='Ссылка на файл логов',
34
+ ),
35
+ ),
36
+ (
37
+ 'type',
38
+ models.PositiveSmallIntegerField(
39
+ choices=[(1, 'Автоматический'), (2, 'Ручной')], verbose_name='Тип команды'
40
+ ),
41
+ ),
31
42
  ('created', models.DateTimeField(default=django.utils.timezone.now, verbose_name='Дата создания')),
32
43
  ('generation_id', models.UUIDField(default=uuid.uuid4, verbose_name='Идентификатор генерации')),
33
- ('entity', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='edu_rdm_integration.regionaldatamartentityenum', verbose_name='Сущность РВД')),
34
- ('task', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='async_task.runningtask', verbose_name='Асинхронная задача')),
44
+ (
45
+ 'entity',
46
+ models.ForeignKey(
47
+ on_delete=django.db.models.deletion.PROTECT,
48
+ to='edu_rdm_integration.regionaldatamartentityenum',
49
+ verbose_name='Сущность РВД',
50
+ ),
51
+ ),
52
+ (
53
+ 'task',
54
+ models.ForeignKey(
55
+ blank=True,
56
+ null=True,
57
+ on_delete=django.db.models.deletion.SET_NULL,
58
+ to='async_task.runningtask',
59
+ verbose_name='Асинхронная задача',
60
+ ),
61
+ ),
35
62
  ],
36
63
  options={
37
64
  'verbose_name': 'Команда отправки данных в витрину',
@@ -8,14 +8,10 @@ from django.db import (
8
8
  def add_exporting_data_sub_stage_status(apps, schema_editor):
9
9
  """Добавление нового статуса этапу выгрузки данных."""
10
10
  ExportingDataSubStageStatus = apps.get_model('edu_rdm_integration', 'ExportingDataSubStageStatus') # noqa: N806
11
- ExportingDataSubStageStatus.objects.get_or_create(
12
- key='PROCESS_ERROR',
13
- title='Ошибка обработки витриной'
14
- )
11
+ ExportingDataSubStageStatus.objects.get_or_create(key='PROCESS_ERROR', title='Ошибка обработки витриной')
15
12
 
16
13
 
17
14
  class Migration(migrations.Migration):
18
-
19
15
  dependencies = [
20
16
  ('edu_rdm_integration', '0014_uploaddatacommand'),
21
17
  ]
@@ -7,7 +7,6 @@ from django.db import (
7
7
 
8
8
 
9
9
  class Migration(migrations.Migration):
10
-
11
10
  dependencies = [
12
11
  ('edu_rdm_integration', '0015_set_exporting_sub_stage_status'),
13
12
  ]
@@ -17,6 +16,7 @@ class Migration(migrations.Migration):
17
16
  model_name='transferredentity',
18
17
  name='queue_level',
19
18
  field=models.PositiveIntegerField(
20
- choices=[(1, 'Быстрая'), (2, 'Основная'), (3, 'Долгая')], default=2, verbose_name='Уровень очереди'),
19
+ choices=[(1, 'Быстрая'), (2, 'Основная'), (3, 'Долгая')], default=2, verbose_name='Уровень очереди'
20
+ ),
21
21
  ),
22
22
  ]
@@ -1,10 +1,11 @@
1
1
  # Generated by Django 3.2.24 on 2025-05-07 19:50
2
2
 
3
- from django.db import migrations
3
+ from django.db import (
4
+ migrations,
5
+ )
4
6
 
5
7
 
6
8
  class Migration(migrations.Migration):
7
-
8
9
  dependencies = [
9
10
  ('edu_rdm_integration', '0016_transferredentity_queue_level'),
10
11
  ]
@@ -0,0 +1 @@
1
+ # TODO EDUDEVOPS-95 будет удалено в будущих версиях
@@ -16,14 +16,16 @@ from objectpack.actions import (
16
16
  SelectorWindowAction,
17
17
  )
18
18
 
19
- from edu_rdm_integration.models import (
20
- RegionalDataMartEntityEnum,
19
+ from edu_rdm_integration.pipelines.transfer.models import (
21
20
  TransferredEntity,
22
21
  )
23
- from edu_rdm_integration.registry.ui import (
22
+ from edu_rdm_integration.pipelines.transfer.ui import (
24
23
  TransferredEntityEditWindow,
25
24
  TransferredEntityListWindow,
26
25
  )
26
+ from edu_rdm_integration.rdm_entities.models import (
27
+ RegionalDataMartEntityEnum,
28
+ )
27
29
 
28
30
 
29
31
  class EntitySelectPack(ObjectPack):
@@ -33,7 +35,7 @@ class EntitySelectPack(ObjectPack):
33
35
  model = RegionalDataMartEntityEnum
34
36
  _is_primary_for_model = False
35
37
 
36
- list_sort_order = ('order_number', )
38
+ list_sort_order = ('order_number',)
37
39
 
38
40
  columns = [
39
41
  {
@@ -77,16 +79,11 @@ class TransferredEntityExportChangeAction(BaseAction):
77
79
 
78
80
  def context_declaration(self):
79
81
  """Объявляет контекст экшна."""
80
- return {
81
- 'ids': {'type': 'int_list', 'default': []},
82
- 'export_enabled': {'type': 'boolean', 'default': True}
83
- }
82
+ return {'ids': {'type': 'int_list', 'default': []}, 'export_enabled': {'type': 'boolean', 'default': True}}
84
83
 
85
84
  def run(self, request, context):
86
85
  """Обеспечивает выполнение запроса."""
87
- self.parent.model.objects.filter(
88
- id__in=context.ids
89
- ).update(export_enabled=context.export_enabled)
86
+ self.parent.model.objects.filter(id__in=context.ids).update(export_enabled=context.export_enabled)
90
87
 
91
88
  return OperationResult(success=True)
92
89
 
@@ -96,10 +93,7 @@ class TransferredEntitySaveAction(BaseAction):
96
93
 
97
94
  def context_declaration(self):
98
95
  """Объявляет контекст экшна."""
99
- return {
100
- 'id': {'type': 'str_list', 'default': []},
101
- self.parent.id_param_name: {'type': 'int'}
102
- }
96
+ return {'id': {'type': 'str_list', 'default': []}, self.parent.id_param_name: {'type': 'int'}}
103
97
 
104
98
  def run(self, request, context):
105
99
  """Обеспечивает выполнение запроса."""
@@ -107,18 +101,11 @@ class TransferredEntitySaveAction(BaseAction):
107
101
  if obj_id:
108
102
  queue_level = getattr(context, 'queue_level', None)
109
103
  if queue_level:
110
- self.parent.model.objects.filter(
111
- id=obj_id
112
- ).exclude(
113
- queue_level=queue_level
114
- ).update(
104
+ self.parent.model.objects.filter(id=obj_id).exclude(queue_level=queue_level).update(
115
105
  queue_level=queue_level
116
106
  )
117
107
  else:
118
- self.parent.model.objects.bulk_create([
119
- self.parent.model(entity_id=key)
120
- for key in context.id
121
- ])
108
+ self.parent.model.objects.bulk_create([self.parent.model(entity_id=key) for key in context.id])
122
109
 
123
110
  return OperationResult(success=True)
124
111
 
@@ -131,7 +118,7 @@ class TransferredEntityPack(ObjectPack):
131
118
 
132
119
  can_delete = True
133
120
 
134
- list_sort_order = ('entity__order_number', )
121
+ list_sort_order = ('entity__order_number',)
135
122
 
136
123
  need_check_permission = True
137
124
  list_window = TransferredEntityListWindow
@@ -153,7 +140,7 @@ class TransferredEntityPack(ObjectPack):
153
140
  {
154
141
  'data_index': 'queue_level',
155
142
  'header': 'Уровень очереди',
156
- }
143
+ },
157
144
  ]
158
145
 
159
146
  def __init__(self):
@@ -0,0 +1,18 @@
1
+ from educommon import (
2
+ ioc,
3
+ )
4
+
5
+ from edu_rdm_integration.pipelines.transfer.actions import (
6
+ EntitySelectPack,
7
+ TransferredEntityPack,
8
+ )
9
+
10
+
11
+ def register_actions():
12
+ """Регистрирует паки и экшны."""
13
+ ioc.get('main_controller').packs.extend(
14
+ (
15
+ TransferredEntityPack(),
16
+ EntitySelectPack(),
17
+ )
18
+ )
@@ -0,0 +1,19 @@
1
+ from django.apps import (
2
+ AppConfig,
3
+ )
4
+
5
+
6
+ class RDMTransferPipelineAppConfig(AppConfig):
7
+ """Приложение для организации процесса сбора, экспорта в файлы и отправки файлов в витрину."""
8
+
9
+ name = 'edu_rdm_integration.pipelines.transfer'
10
+ label = 'edu_rdm_integration_transfer_pipeline'
11
+ verbose_name = 'Приложение для организации процесса сбора, экспорта в файлы и отправки файлов в витрину.'
12
+
13
+ def ready(self):
14
+ """Готовность приложения."""
15
+ if self.name == 'edu_rdm_integration.pipelines.transfer':
16
+ # ruff: noqa: F401
17
+ from . import (
18
+ tasks,
19
+ )
@@ -0,0 +1,34 @@
1
+ from typing import (
2
+ Optional,
3
+ )
4
+
5
+ from m3.db import (
6
+ BaseEnumerate,
7
+ )
8
+
9
+ from edu_rdm_integration.core.consts import (
10
+ FAST_TRANSFER_TASK_QUEUE_NAME,
11
+ LONG_TRANSFER_TASK_QUEUE_NAME,
12
+ TASK_QUEUE_NAME,
13
+ )
14
+
15
+
16
+ class EntityLevelQueueTypeEnum(BaseEnumerate):
17
+ """Тип уровня очереди сущности."""
18
+
19
+ FAST = 1
20
+ BASE = 2
21
+ LONG = 3
22
+
23
+ values = {FAST: 'Быстрая', BASE: 'Основная', LONG: 'Долгая'}
24
+
25
+ celery_queue_maps = {
26
+ FAST: FAST_TRANSFER_TASK_QUEUE_NAME,
27
+ BASE: TASK_QUEUE_NAME,
28
+ LONG: LONG_TRANSFER_TASK_QUEUE_NAME,
29
+ }
30
+
31
+ @classmethod
32
+ def get_queue_name(cls, level: int) -> Optional[str]:
33
+ """Возвращает очередь."""
34
+ return cls.celery_queue_maps.get(level)
@@ -0,0 +1,57 @@
1
+ # Generated by Django 3.2.24 on 2025-06-28 16:04
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
+ initial = True
12
+
13
+ dependencies = [
14
+ ('edu_rdm_integration_entities', '0001_initial'),
15
+ ]
16
+
17
+ operations = [
18
+ migrations.SeparateDatabaseAndState(
19
+ state_operations=[
20
+ migrations.CreateModel(
21
+ name='TransferredEntity',
22
+ fields=[
23
+ (
24
+ 'id',
25
+ models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
26
+ ),
27
+ (
28
+ 'export_enabled',
29
+ models.BooleanField(default=True, verbose_name='Включение экспорта для сущности'),
30
+ ),
31
+ (
32
+ 'queue_level',
33
+ models.PositiveIntegerField(
34
+ choices=[(1, 'Быстрая'), (2, 'Основная'), (3, 'Долгая')],
35
+ default=2,
36
+ verbose_name='Уровень очереди',
37
+ ),
38
+ ),
39
+ (
40
+ 'entity',
41
+ models.OneToOneField(
42
+ on_delete=django.db.models.deletion.CASCADE,
43
+ to='edu_rdm_integration_entities.regionaldatamartentityenum',
44
+ verbose_name='Сущность',
45
+ ),
46
+ ),
47
+ ],
48
+ options={
49
+ 'verbose_name': 'Сущность, по которой должен быть произведен сбор и экспорт данных',
50
+ 'verbose_name_plural': 'Сущности, по которым должен быть произведен сбор и экспорт данных',
51
+ 'db_table': 'rdm_transferred_entity',
52
+ },
53
+ ),
54
+ ],
55
+ database_operations=[],
56
+ ),
57
+ ]