educommon 3.12.0__tar.gz → 3.13.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.
Files changed (379) hide show
  1. {educommon-3.12.0/src/educommon.egg-info → educommon-3.13.0}/PKG-INFO +2 -4
  2. {educommon-3.12.0 → educommon-3.13.0}/setup.py +0 -2
  3. educommon-3.13.0/src/educommon/django/db/signals.py +152 -0
  4. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/version.conf +5 -5
  5. {educommon-3.12.0 → educommon-3.13.0/src/educommon.egg-info}/PKG-INFO +2 -4
  6. educommon-3.12.0/src/educommon/django/db/signals.py +0 -7
  7. {educommon-3.12.0 → educommon-3.13.0}/MANIFEST.in +0 -0
  8. {educommon-3.12.0 → educommon-3.13.0}/README.rst +0 -0
  9. {educommon-3.12.0 → educommon-3.13.0}/UPGRADE.rst +0 -0
  10. {educommon-3.12.0 → educommon-3.13.0}/setup.cfg +0 -0
  11. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/__init__.py +0 -0
  12. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/README.rst +0 -0
  13. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/__init__.py +0 -0
  14. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/apps.py +0 -0
  15. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/static/edu_about/barsgroup.png +0 -0
  16. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/ui/__init__.py +0 -0
  17. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/ui/about-window.js +0 -0
  18. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/ui/actions.py +0 -0
  19. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/ui/common-tab.html +0 -0
  20. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/ui/packages-tab.js +0 -0
  21. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/ui/postgresql-extensions-tab.js +0 -0
  22. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/ui/ui.py +0 -0
  23. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/utils.py +0 -0
  24. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/__init__.py +0 -0
  25. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/actions.py +0 -0
  26. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/apps.py +0 -0
  27. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/consts.py +0 -0
  28. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/exceptions.py +0 -0
  29. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/helpers.py +0 -0
  30. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/locker.py +0 -0
  31. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/migrations/0001_initial.py +0 -0
  32. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/migrations/0002_task_type_and_status_data.py +0 -0
  33. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/migrations/0003_alter_runningtask_options.py +0 -0
  34. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/migrations/__init__.py +0 -0
  35. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/models.py +0 -0
  36. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/tasks.py +0 -0
  37. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/templates/ui-js/async-task-list-win.js +0 -0
  38. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/templates/ui-js/async-task-revoke.js +0 -0
  39. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/templates/ui-js/async-task-view-win.js +0 -0
  40. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/ui.py +0 -0
  41. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/__init__.py +0 -0
  42. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/apps.py +0 -0
  43. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/exceptions.py +0 -0
  44. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/fixtures/initial_data.json +0 -0
  45. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/locks.py +0 -0
  46. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/migrations/0001_initial.py +0 -0
  47. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/migrations/0002_load_initial_data.py +0 -0
  48. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/migrations/__init__.py +0 -0
  49. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/models.py +0 -0
  50. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/statuses.py +0 -0
  51. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/tasks.py +0 -0
  52. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/__init__.py +0 -0
  53. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/actions.py +0 -0
  54. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/app_meta.py +0 -0
  55. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/apps.py +0 -0
  56. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/constants.py +0 -0
  57. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/error_log/__init__.py +0 -0
  58. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/error_log/actions.py +0 -0
  59. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/helpers.py +0 -0
  60. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/management/__init__.py +0 -0
  61. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/management/commands/__init__.py +0 -0
  62. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/management/commands/reinstall_audit_log.py +0 -0
  63. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/middleware.py +0 -0
  64. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0001_initial.py +0 -0
  65. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0002_install_audit_log.py +0 -0
  66. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0003_logproxy.py +0 -0
  67. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0004_reinstall_audit_log.py +0 -0
  68. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0005_postgresql_error.py +0 -0
  69. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0006_auto_20200806_1707.py +0 -0
  70. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0007_create_selective_tables_function.py +0 -0
  71. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0008_table_logged.py +0 -0
  72. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0009_reinstall_audit_log.py +0 -0
  73. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/__init__.py +0 -0
  74. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/models.py +0 -0
  75. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/permissions.py +0 -0
  76. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/proxies.py +0 -0
  77. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/routers.py +0 -0
  78. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/sql/configure_audit_log.sql +0 -0
  79. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/sql/install_audit_log.sql +0 -0
  80. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/ui.py +0 -0
  81. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/utils/__init__.py +0 -0
  82. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/utils/operations.py +0 -0
  83. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/__init__.py +0 -0
  84. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/__init__.py +0 -0
  85. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/actions.py +0 -0
  86. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/app_meta.py +0 -0
  87. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/backends/__init__.py +0 -0
  88. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/backends/base.py +0 -0
  89. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/backends/caching.py +0 -0
  90. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/backends/simple.py +0 -0
  91. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/checker.py +0 -0
  92. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/config.py +0 -0
  93. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/constants.py +0 -0
  94. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/management/__init__.py +0 -0
  95. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/management/commands/__init__.py +0 -0
  96. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/management/commands/rbac.py +0 -0
  97. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/manager.py +0 -0
  98. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/migrations/0001_initial.py +0 -0
  99. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/migrations/0002_model_modifier_metaclass_fix.py +0 -0
  100. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/migrations/0003_permission_hidden.py +0 -0
  101. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/migrations/0004_auto_20171024_1245.py +0 -0
  102. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/migrations/__init__.py +0 -0
  103. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/models.py +0 -0
  104. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/permissions.py +0 -0
  105. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/templates/rbac/role-add-window.js +0 -0
  106. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/templates/rbac/role-edit-window.js +0 -0
  107. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/templates/rbac/roles-list-window.js +0 -0
  108. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/templates/rbac/roles-view-list-window.js +0 -0
  109. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/ui.py +0 -0
  110. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/utils.py +0 -0
  111. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/validators.py +0 -0
  112. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/__init__.py +0 -0
  113. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/actions.py +0 -0
  114. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/app_meta.py +0 -0
  115. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/checkers.py +0 -0
  116. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/const.py +0 -0
  117. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/migrations/0001_initial.py +0 -0
  118. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/migrations/__init__.py +0 -0
  119. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/models.py +0 -0
  120. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/static/simple_auth/simple_auth.css +0 -0
  121. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/templates/simple_auth/change_reset_password_page.html +0 -0
  122. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/templates/simple_auth/email/reset_password.html +0 -0
  123. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/templates/simple_auth/login_page.html +0 -0
  124. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/templates/simple_auth/reset_password_page.html +0 -0
  125. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/ui.py +0 -0
  126. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/validators.py +0 -0
  127. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/__init__.py +0 -0
  128. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/actions.py +0 -0
  129. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/app_meta.py +0 -0
  130. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/base.py +0 -0
  131. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/catalogs.py +0 -0
  132. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/__init__.py +0 -0
  133. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/actions.py +0 -0
  134. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/apps.py +0 -0
  135. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/migrations/0001_initial.py +0 -0
  136. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/migrations/0002_add_contingent_model_deleted.py +0 -0
  137. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/migrations/__init__.py +0 -0
  138. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/model_views.py +0 -0
  139. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/models.py +0 -0
  140. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/observer.py +0 -0
  141. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/plugin_meta.py +0 -0
  142. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/storage.py +0 -0
  143. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/utils.py +0 -0
  144. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/json_data/icao.json +0 -0
  145. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/json_data/okogu.json +0 -0
  146. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/json_data/oksm.json +0 -0
  147. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/__init__.py +0 -0
  148. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/__init__.py +0 -0
  149. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/fields.py +0 -0
  150. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/migration/__init__.py +0 -0
  151. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/migration/operations.py +0 -0
  152. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/mixins/__init__.py +0 -0
  153. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/mixins/date_interval.py +0 -0
  154. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/mixins/validation.py +0 -0
  155. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/model_view/__init__.py +0 -0
  156. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/model_view/table-view.html +0 -0
  157. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/models.py +0 -0
  158. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/observer.py +0 -0
  159. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/README.md +0 -0
  160. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/__init__.py +0 -0
  161. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/const.py +0 -0
  162. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/management/__init__.py +0 -0
  163. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/management/commands/__init__.py +0 -0
  164. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/management/commands/apply_partitioning.py +0 -0
  165. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/management/commands/clear_table.py +0 -0
  166. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/management/commands/split_table.py +0 -0
  167. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/partitioning.sql +0 -0
  168. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/partitioning_set_search_path.sql +0 -0
  169. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/triggers.sql +0 -0
  170. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/routers.py +0 -0
  171. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/utils.py +0 -0
  172. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/validators/__init__.py +0 -0
  173. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/validators/simple.py +0 -0
  174. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/__init__.py +0 -0
  175. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/README.rst +0 -0
  176. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/__init__.py +0 -0
  177. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/api.py +0 -0
  178. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/app_meta.py +0 -0
  179. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/exceptions.py +0 -0
  180. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/management/__init__.py +0 -0
  181. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/management/commands/__init__.py +0 -0
  182. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/management/commands/atcfs_migrate.py +0 -0
  183. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/models.py +0 -0
  184. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/monkey_patching.py +0 -0
  185. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/settings.py +0 -0
  186. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/storage.py +0 -0
  187. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/templates/atcfs_unavailable.html +0 -0
  188. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/extjs/__init__.py +0 -0
  189. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/extjs/fields/__init__.py +0 -0
  190. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/extjs/fields/input_params.py +0 -0
  191. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/XLSReader.py +0 -0
  192. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/__init__.py +0 -0
  193. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/api.py +0 -0
  194. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/constants.py +0 -0
  195. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/loggers.py +0 -0
  196. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/proxy.py +0 -0
  197. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/proxy_import.py +0 -0
  198. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/refactoring-notes.txt +0 -0
  199. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/report.py +0 -0
  200. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/test_file.xls +0 -0
  201. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/ui.py +0 -0
  202. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/validators.py +0 -0
  203. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/integration_entities/README.rst +0 -0
  204. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/integration_entities/__init__.py +0 -0
  205. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/integration_entities/consts.py +0 -0
  206. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/integration_entities/entities.py +0 -0
  207. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/integration_entities/enums.py +0 -0
  208. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/integration_entities/helpers.py +0 -0
  209. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/integration_entities/mixins.py +0 -0
  210. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ioc/__init__.py +0 -0
  211. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/logger/__init__.py +0 -0
  212. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/logger/app_settings.py +0 -0
  213. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/logger/apps.py +0 -0
  214. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/logger/consts.py +0 -0
  215. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/logger/formatters.py +0 -0
  216. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/logger/helpers.py +0 -0
  217. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/logger/loggers.py +0 -0
  218. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/logger/records.py +0 -0
  219. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/__init__.py +0 -0
  220. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/__init__.py +0 -0
  221. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/__init__.py +0 -0
  222. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/delete_check/__init__.py +0 -0
  223. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/delete_check/cancel-confirm-window.js +0 -0
  224. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/delete_check/listeners.py +0 -0
  225. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/delete_check/mixins.py +0 -0
  226. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/delete_check/related-objects-window.html +0 -0
  227. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/delete_check/signals.py +0 -0
  228. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/delete_check/ui.py +0 -0
  229. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/delete_check/utils.py +0 -0
  230. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/ui.py +0 -0
  231. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/transaction_context.py +0 -0
  232. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/__init__.py +0 -0
  233. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/actions.py +0 -0
  234. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/apps.py +0 -0
  235. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/filters.py +0 -0
  236. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/templates/base-grid-window.js +0 -0
  237. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/templates/filter-panel.js +0 -0
  238. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/templates/grid-panel.js +0 -0
  239. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/templates/multiSelectWindow.js +0 -0
  240. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/templates/multiselect-page-fix.js +0 -0
  241. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/templates/relations-check-mixin-template.html +0 -0
  242. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/ui.py +0 -0
  243. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/__init__.py +0 -0
  244. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/actions.py +0 -0
  245. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/README.rst +0 -0
  246. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/__init__.py +0 -0
  247. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/app_meta.py +0 -0
  248. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/apps.py +0 -0
  249. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/base.py +0 -0
  250. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/builders/__init__.py +0 -0
  251. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/builders/excel/__init__.py +0 -0
  252. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/builders/excel/_base.py +0 -0
  253. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/builders/excel/_header.py +0 -0
  254. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/builders/excel/constants.py +0 -0
  255. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/builders/excel/product.py +0 -0
  256. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/builders/excel/with_merged_cells.py +0 -0
  257. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/config.py +0 -0
  258. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/constants.py +0 -0
  259. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/editor/__init__.py +0 -0
  260. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/editor/actions.py +0 -0
  261. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/editor/edit-window.js +0 -0
  262. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/editor/list-window.js +0 -0
  263. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/editor/ui.py +0 -0
  264. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/exceptions.py +0 -0
  265. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0001_initial.py +0 -0
  266. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0002_report_filters.py +0 -0
  267. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0003_reportfilter_exclude.py +0 -0
  268. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0004_reportfilter_fields.py +0 -0
  269. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0005_reportcolumn_visible.py +0 -0
  270. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0006_reportsorting.py +0 -0
  271. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0007_include_available_units.py +0 -0
  272. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0008_auto_20170407_1318.py +0 -0
  273. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0009_auto_20180405_0642.py +0 -0
  274. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0010_add_aggregate_fields.py +0 -0
  275. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/__init__.py +0 -0
  276. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/mixins.py +0 -0
  277. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/models.py +0 -0
  278. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/plugin_meta.py +0 -0
  279. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/registries.py +0 -0
  280. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/utils.py +0 -0
  281. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/validators.py +0 -0
  282. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/reporter.py +0 -0
  283. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/utils.py +0 -0
  284. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/rest/__init__.py +0 -0
  285. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/rest/actions.py +0 -0
  286. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/rest/context.py +0 -0
  287. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/rest/controllers.py +0 -0
  288. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/rest/misc.py +0 -0
  289. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/rest/mixins.py +0 -0
  290. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/secure_media/README.rst +0 -0
  291. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/secure_media/__init__.py +0 -0
  292. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/secure_media/app_meta.py +0 -0
  293. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/thread_data.py +0 -0
  294. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/__init__.py +0 -0
  295. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/caching.py +0 -0
  296. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/conversion.py +0 -0
  297. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/crypto.py +0 -0
  298. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/date.py +0 -0
  299. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/db/__init__.py +0 -0
  300. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/db/postgresql.py +0 -0
  301. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/fonts/Arial.ttf +0 -0
  302. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/fonts/Calibri.ttf +0 -0
  303. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/fonts/Tahoma.ttf +0 -0
  304. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/fonts/__init__.py +0 -0
  305. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/licence/__init__.py +0 -0
  306. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/licence/converters.py +0 -0
  307. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/misc.py +0 -0
  308. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/object_grid.py +0 -0
  309. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/patches.py +0 -0
  310. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/phone_number/__init__.py +0 -0
  311. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/phone_number/enums.py +0 -0
  312. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/phone_number/modelfields.py +0 -0
  313. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/phone_number/phone_number.py +0 -0
  314. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/phone_number/validators.py +0 -0
  315. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/plugins.py +0 -0
  316. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/registry.py +0 -0
  317. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/seqtools.py +0 -0
  318. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/serializer.py +0 -0
  319. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/storage.py +0 -0
  320. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/system.py +0 -0
  321. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/system_app/__init__.py +0 -0
  322. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/system_app/management/__init__.py +0 -0
  323. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/system_app/management/commands/__init__.py +0 -0
  324. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/system_app/management/commands/delete_objects.py +0 -0
  325. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/system_app/templatetags/__init__.py +0 -0
  326. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/system_app/templatetags/educommon.py +0 -0
  327. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/ui.py +0 -0
  328. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/xml/__init__.py +0 -0
  329. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/xml/catalog.json +0 -0
  330. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/xml/resolver.py +0 -0
  331. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/xml/saml-schema-assertion-2.0.xsd +0 -0
  332. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/xml/saml-schema-protocol-2.0.xsd +0 -0
  333. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/xml/xenc-schema.xsd +0 -0
  334. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/xml/xmldsig-core-schema.xsd +0 -0
  335. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/README.rst +0 -0
  336. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/__init__.py +0 -0
  337. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/actions.py +0 -0
  338. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/app_meta.py +0 -0
  339. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/base.py +0 -0
  340. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0001_initial.py +0 -0
  341. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0002_auto_20160628_1334.py +0 -0
  342. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0003_add_fields_to_smev_logs.py +0 -0
  343. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0004_auto_20160727_1600.py +0 -0
  344. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0005_auto_20161130_1615.py +0 -0
  345. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0006_auto_20170327_1027.py +0 -0
  346. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0007_auto_20180607_1040.py +0 -0
  347. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0008_auto_20180713_1445.py +0 -0
  348. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0009_auto_20201130_1553.py +0 -0
  349. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/__init__.py +0 -0
  350. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/models.py +0 -0
  351. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/provider.py +0 -0
  352. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/report.py +0 -0
  353. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/smev/__init__.py +0 -0
  354. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/smev/applications.py +0 -0
  355. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/smev/exceptions.py +0 -0
  356. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/templates/report/smev_logs.xlsx +0 -0
  357. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/templates/ui-js/smev-logs-list-window.js +0 -0
  358. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/templates/ui-js/smev-logs-report-setting-window.js +0 -0
  359. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/ui.py +0 -0
  360. {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/utils.py +0 -0
  361. {educommon-3.12.0 → educommon-3.13.0}/src/educommon.egg-info/SOURCES.txt +0 -0
  362. {educommon-3.12.0 → educommon-3.13.0}/src/educommon.egg-info/dependency_links.txt +0 -0
  363. {educommon-3.12.0 → educommon-3.13.0}/src/educommon.egg-info/requires.txt +0 -0
  364. {educommon-3.12.0 → educommon-3.13.0}/src/educommon.egg-info/top_level.txt +0 -0
  365. {educommon-3.12.0 → educommon-3.13.0}/tests/test_contingent_plugin_utils.py +0 -0
  366. {educommon-3.12.0 → educommon-3.13.0}/tests/test_dates_splitter.py +0 -0
  367. {educommon-3.12.0 → educommon-3.13.0}/tests/test_delete_check.py +0 -0
  368. {educommon-3.12.0 → educommon-3.13.0}/tests/test_delete_objects.py +0 -0
  369. {educommon-3.12.0 → educommon-3.13.0}/tests/test_django_db_utils.py +0 -0
  370. {educommon-3.12.0 → educommon-3.13.0}/tests/test_interval_mixins.py +0 -0
  371. {educommon-3.12.0 → educommon-3.13.0}/tests/test_patches.py +0 -0
  372. {educommon-3.12.0 → educommon-3.13.0}/tests/test_personal_data_fields.py +0 -0
  373. {educommon-3.12.0 → educommon-3.13.0}/tests/test_phone_number.py +0 -0
  374. {educommon-3.12.0 → educommon-3.13.0}/tests/test_report.py +0 -0
  375. {educommon-3.12.0 → educommon-3.13.0}/tests/test_service_db_router.py +0 -0
  376. {educommon-3.12.0 → educommon-3.13.0}/tests/test_utils.py +0 -0
  377. {educommon-3.12.0 → educommon-3.13.0}/tests/test_utils_plugins.py +0 -0
  378. {educommon-3.12.0 → educommon-3.13.0}/tests/test_validators.py +0 -0
  379. {educommon-3.12.0 → educommon-3.13.0}/tests/tests_rbac.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: educommon
3
- Version: 3.12.0
3
+ Version: 3.13.0
4
4
  Summary: Общая кодовая база для проектов БЦ Образование
5
5
  Home-page: https://stash.bars-open.ru/projects/EDUBASE/repos/educommon
6
6
  Author: BARS Group
@@ -12,8 +12,6 @@ Classifier: Natural Language :: English
12
12
  Classifier: Operating System :: OS Independent
13
13
  Classifier: Development Status :: 5 - Production/Stable
14
14
  Classifier: Programming Language :: Python
15
- Classifier: Programming Language :: Python :: 3.7
16
- Classifier: Programming Language :: Python :: 3.8
17
15
  Classifier: Programming Language :: Python :: 3.9
18
16
  Classifier: Framework :: Django :: 2.2
19
17
  Classifier: Framework :: Django :: 3.0
@@ -30,8 +30,6 @@ def main():
30
30
  'Operating System :: OS Independent',
31
31
  'Development Status :: 5 - Production/Stable',
32
32
  'Programming Language :: Python',
33
- 'Programming Language :: Python :: 3.7',
34
- 'Programming Language :: Python :: 3.8',
35
33
  'Programming Language :: Python :: 3.9',
36
34
  'Framework :: Django :: 2.2',
37
35
  'Framework :: Django :: 3.0',
@@ -0,0 +1,152 @@
1
+ from typing import (
2
+ Callable,
3
+ Optional,
4
+ )
5
+
6
+ from django.db.models import (
7
+ Model,
8
+ )
9
+ from django.dispatch.dispatcher import (
10
+ Signal,
11
+ )
12
+ from educommon import (
13
+ logger,
14
+ )
15
+
16
+
17
+ class BaseBeforeMigrateHandler:
18
+ """
19
+ Базовый обработчик сигнала before_handle_migrate_signal.
20
+
21
+ Должен быть унаследован и инстанс наследника регистрироваться
22
+ как обработчик сигнала.
23
+ """
24
+
25
+ def _is_accessing_non_migrating_databases(self, migrating_database: str) -> bool:
26
+ for model_cls in self._get_working_models():
27
+ db = self._get_model_db(model_cls)
28
+ if db != migrating_database:
29
+ return True
30
+
31
+ return False
32
+
33
+ def _get_model_db(self, model_cls: type[Model]) -> str:
34
+ """
35
+ Возвращает псевдоним базы данных, к которой пойдет запрос
36
+ по данной модели.
37
+ """
38
+
39
+ return model_cls.objects.all().db
40
+
41
+ def _get_migrating_database(self, sender) -> str:
42
+ """Возвращает псевдоним базы данных, с которой работает миграция."""
43
+
44
+ return sender.database
45
+
46
+ def _get_working_models(self) -> set[type[Model]]:
47
+ """Модели, с которым будет работать обработчик сигнала."""
48
+
49
+ raise NotImplementedError()
50
+
51
+ def handler(self, sender, *args, **kwargs):
52
+ """Непосредственный обработчик сигнала."""
53
+
54
+ raise NotImplementedError()
55
+
56
+ def __call__(self, sender, *args, **kwargs):
57
+ migrating_database = self._get_migrating_database(sender)
58
+ if self._is_accessing_non_migrating_databases(migrating_database):
59
+ logger.warning('Предотвращена попытка доступа к базе данных, по которой не производится миграция')
60
+ return
61
+
62
+ return self.handler(sender, *args, **kwargs)
63
+
64
+
65
+ class BaseAfterMigrateHandler:
66
+ """
67
+ Базовый обработчик сигнала after_handle_migrate_signal.
68
+
69
+ Должен быть унаследован и инстанс наследника регистрироваться
70
+ как обработчик сигнала.
71
+ """
72
+
73
+ def _is_accessing_non_migrating_databases(self, migrating_database: str) -> bool:
74
+ for model_cls in self._get_working_models():
75
+ db = self._get_model_db(model_cls)
76
+ if db != migrating_database:
77
+ return True
78
+
79
+ return False
80
+
81
+ def _get_model_db(self, model_cls: type[Model]) -> str:
82
+ """
83
+ Возвращает псевдоним базы данных, к которой пойдет запрос
84
+ по данной модели.
85
+ """
86
+
87
+ return model_cls.objects.all().db
88
+
89
+ def _get_migrating_database(self, sender) -> str:
90
+ """Возвращает псевдоним базы данных, с которой работает миграция."""
91
+
92
+ return sender.database
93
+
94
+ def _get_working_models(self) -> set[type[Model]]:
95
+ """Модели, с которым будет работать обработчик сигнала."""
96
+
97
+ raise NotImplementedError()
98
+
99
+ def handler(self, sender, *args, **kwargs):
100
+ """Непосредственный обработчик сигнала."""
101
+
102
+ raise NotImplementedError()
103
+
104
+ def __call__(self, sender, *args, **kwargs):
105
+ migrating_database = self._get_migrating_database(sender)
106
+ if self._is_accessing_non_migrating_databases(migrating_database):
107
+ logger.warning('Предотвращена попытка доступа к базе данных, по которой не производится миграция')
108
+ return
109
+
110
+ return self.handler(sender, *args, **kwargs)
111
+
112
+
113
+ class BeforeHandleMigrateSignal(Signal):
114
+ _handler_base_class = BaseBeforeMigrateHandler
115
+
116
+ def connect(
117
+ self,
118
+ receiver: Callable,
119
+ sender: Optional = None,
120
+ weak: bool = True,
121
+ dispatch_uid: Optional[str] = None,
122
+ ) -> None:
123
+ if not isinstance(receiver, self._handler_base_class):
124
+ logger.warning(
125
+ f'Обработчик сигнала before_handle_migrate_signal {receiver} не зарегистрирован, поскольку '
126
+ f'он не является подклассом {self._handler_base_class.__name__}'
127
+ )
128
+
129
+ return super().connect(receiver, sender, weak, dispatch_uid)
130
+
131
+
132
+ class AfterHandleMigrateSignal(Signal):
133
+ _handler_base_class = BaseBeforeMigrateHandler
134
+
135
+ def connect(
136
+ self,
137
+ receiver: Callable,
138
+ sender: Optional = None,
139
+ weak: bool = True,
140
+ dispatch_uid: Optional[str] = None,
141
+ ) -> None:
142
+ if not isinstance(receiver, self._handler_base_class):
143
+ logger.warning(
144
+ f'Обработчик сигнала after_handle_migrate_signal {receiver} не зарегистрирован, поскольку '
145
+ f'он не является подклассом {self._handler_base_class.__name__}'
146
+ )
147
+
148
+ return super().connect(receiver, sender, weak, dispatch_uid)
149
+
150
+
151
+ before_handle_migrate_signal = BeforeHandleMigrateSignal()
152
+ after_handle_migrate_signal = AfterHandleMigrateSignal()
@@ -4,8 +4,8 @@
4
4
  # нормальной установки обновлений.
5
5
 
6
6
  [version]
7
- BRANCH = tags/3.12.0^0
8
- VERSION = 3.12.0
9
- REVISION = 77c8293bb54ede8a5d5f06d376cf771c28cada88
10
- VERSION_DATE = 11.03.2025
11
- REVISION_DATE = 11.03.2025
7
+ BRANCH = tags/3.13.0
8
+ VERSION = 3.13.0
9
+ REVISION = 63072e48f15fed47a1f135ca1fe0e9bf3589c120
10
+ VERSION_DATE = 27.03.2025
11
+ REVISION_DATE = 27.03.2025
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: educommon
3
- Version: 3.12.0
3
+ Version: 3.13.0
4
4
  Summary: Общая кодовая база для проектов БЦ Образование
5
5
  Home-page: https://stash.bars-open.ru/projects/EDUBASE/repos/educommon
6
6
  Author: BARS Group
@@ -12,8 +12,6 @@ Classifier: Natural Language :: English
12
12
  Classifier: Operating System :: OS Independent
13
13
  Classifier: Development Status :: 5 - Production/Stable
14
14
  Classifier: Programming Language :: Python
15
- Classifier: Programming Language :: Python :: 3.7
16
- Classifier: Programming Language :: Python :: 3.8
17
15
  Classifier: Programming Language :: Python :: 3.9
18
16
  Classifier: Framework :: Django :: 2.2
19
17
  Classifier: Framework :: Django :: 3.0
@@ -1,7 +0,0 @@
1
- from django.dispatch.dispatcher import (
2
- Signal,
3
- )
4
-
5
-
6
- before_handle_migrate_signal = Signal()
7
- after_handle_migrate_signal = Signal()
File without changes
File without changes
File without changes
File without changes