educommon 3.15.0__tar.gz → 3.17.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 (378) hide show
  1. {educommon-3.15.0 → educommon-3.17.0}/CHANGELOG.md +28 -0
  2. {educommon-3.15.0 → educommon-3.17.0}/PKG-INFO +1 -1
  3. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/README.rst +29 -0
  4. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/actions.py +0 -5
  5. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/management/commands/reinstall_audit_log.py +28 -16
  6. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/utils/__init__.py +32 -0
  7. {educommon-3.15.0 → educommon-3.17.0}/src/educommon.egg-info/PKG-INFO +1 -1
  8. {educommon-3.15.0 → educommon-3.17.0}/CONDUCT.md +0 -0
  9. {educommon-3.15.0 → educommon-3.17.0}/CONTRIBUTING.md +0 -0
  10. {educommon-3.15.0 → educommon-3.17.0}/MANIFEST.in +0 -0
  11. {educommon-3.15.0 → educommon-3.17.0}/README.md +0 -0
  12. {educommon-3.15.0 → educommon-3.17.0}/pyproject.toml +0 -0
  13. {educommon-3.15.0 → educommon-3.17.0}/setup.cfg +0 -0
  14. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/__init__.py +0 -0
  15. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/README.rst +0 -0
  16. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/__init__.py +0 -0
  17. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/apps.py +0 -0
  18. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/static/edu_about/barsgroup.png +0 -0
  19. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/ui/__init__.py +0 -0
  20. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/ui/about-window.js +0 -0
  21. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/ui/actions.py +0 -0
  22. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/ui/common-tab.html +0 -0
  23. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/ui/packages-tab.js +0 -0
  24. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/ui/postgresql-extensions-tab.js +0 -0
  25. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/ui/ui.py +0 -0
  26. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/utils.py +0 -0
  27. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/__init__.py +0 -0
  28. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/actions.py +0 -0
  29. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/apps.py +0 -0
  30. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/consts.py +0 -0
  31. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/exceptions.py +0 -0
  32. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/helpers.py +0 -0
  33. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/locker.py +0 -0
  34. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/migrations/0001_initial.py +0 -0
  35. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/migrations/0002_task_type_and_status_data.py +0 -0
  36. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/migrations/0003_alter_runningtask_options.py +0 -0
  37. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/migrations/__init__.py +0 -0
  38. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/models.py +0 -0
  39. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/tasks.py +0 -0
  40. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/templates/ui-js/async-task-list-win.js +0 -0
  41. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/templates/ui-js/async-task-revoke.js +0 -0
  42. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/templates/ui-js/async-task-view-win.js +0 -0
  43. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/ui.py +0 -0
  44. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/__init__.py +0 -0
  45. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/apps.py +0 -0
  46. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/exceptions.py +0 -0
  47. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/fixtures/initial_data.json +0 -0
  48. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/locks.py +0 -0
  49. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/migrations/0001_initial.py +0 -0
  50. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/migrations/0002_load_initial_data.py +0 -0
  51. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/migrations/__init__.py +0 -0
  52. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/models.py +0 -0
  53. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/statuses.py +0 -0
  54. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/tasks.py +0 -0
  55. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/__init__.py +0 -0
  56. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/app_meta.py +0 -0
  57. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/apps.py +0 -0
  58. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/constants.py +0 -0
  59. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/error_log/__init__.py +0 -0
  60. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/error_log/actions.py +0 -0
  61. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/helpers.py +0 -0
  62. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/management/__init__.py +0 -0
  63. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/management/commands/__init__.py +0 -0
  64. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/middleware.py +0 -0
  65. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0001_initial.py +0 -0
  66. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0002_install_audit_log.py +0 -0
  67. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0003_logproxy.py +0 -0
  68. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0004_reinstall_audit_log.py +0 -0
  69. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0005_postgresql_error.py +0 -0
  70. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0006_auto_20200806_1707.py +0 -0
  71. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0007_create_selective_tables_function.py +0 -0
  72. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0008_table_logged.py +0 -0
  73. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0009_reinstall_audit_log.py +0 -0
  74. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/__init__.py +0 -0
  75. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/models.py +0 -0
  76. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/permissions.py +0 -0
  77. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/proxies.py +0 -0
  78. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/routers.py +0 -0
  79. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/sql/configure_audit_log.sql +0 -0
  80. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/sql/install_audit_log.sql +0 -0
  81. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/ui.py +0 -0
  82. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/utils/operations.py +0 -0
  83. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/__init__.py +0 -0
  84. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/__init__.py +0 -0
  85. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/actions.py +0 -0
  86. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/app_meta.py +0 -0
  87. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/backends/__init__.py +0 -0
  88. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/backends/base.py +0 -0
  89. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/backends/caching.py +0 -0
  90. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/backends/simple.py +0 -0
  91. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/checker.py +0 -0
  92. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/config.py +0 -0
  93. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/constants.py +0 -0
  94. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/management/__init__.py +0 -0
  95. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/management/commands/__init__.py +0 -0
  96. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/management/commands/rbac.py +0 -0
  97. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/manager.py +0 -0
  98. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/migrations/0001_initial.py +0 -0
  99. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/migrations/0002_model_modifier_metaclass_fix.py +0 -0
  100. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/migrations/0003_permission_hidden.py +0 -0
  101. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/migrations/0004_auto_20171024_1245.py +0 -0
  102. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/migrations/__init__.py +0 -0
  103. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/models.py +0 -0
  104. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/permissions.py +0 -0
  105. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/templates/rbac/role-add-window.js +0 -0
  106. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/templates/rbac/role-edit-window.js +0 -0
  107. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/templates/rbac/roles-list-window.js +0 -0
  108. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/templates/rbac/roles-view-list-window.js +0 -0
  109. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/ui.py +0 -0
  110. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/utils.py +0 -0
  111. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/validators.py +0 -0
  112. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/__init__.py +0 -0
  113. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/actions.py +0 -0
  114. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/app_meta.py +0 -0
  115. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/checkers.py +0 -0
  116. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/const.py +0 -0
  117. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/migrations/0001_initial.py +0 -0
  118. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/migrations/__init__.py +0 -0
  119. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/models.py +0 -0
  120. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/static/simple_auth/simple_auth.css +0 -0
  121. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/templates/simple_auth/change_reset_password_page.html +0 -0
  122. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/templates/simple_auth/email/reset_password.html +0 -0
  123. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/templates/simple_auth/login_page.html +0 -0
  124. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/templates/simple_auth/reset_password_page.html +0 -0
  125. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/ui.py +0 -0
  126. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/validators.py +0 -0
  127. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/__init__.py +0 -0
  128. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/actions.py +0 -0
  129. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/app_meta.py +0 -0
  130. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/base.py +0 -0
  131. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/catalogs.py +0 -0
  132. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/__init__.py +0 -0
  133. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/actions.py +0 -0
  134. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/apps.py +0 -0
  135. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/migrations/0001_initial.py +0 -0
  136. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/migrations/0002_add_contingent_model_deleted.py +0 -0
  137. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/migrations/__init__.py +0 -0
  138. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/model_views.py +0 -0
  139. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/models.py +0 -0
  140. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/observer.py +0 -0
  141. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/plugin_meta.py +0 -0
  142. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/storage.py +0 -0
  143. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/utils.py +0 -0
  144. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/json_data/icao.json +0 -0
  145. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/json_data/okogu.json +0 -0
  146. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/json_data/oksm.json +0 -0
  147. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/__init__.py +0 -0
  148. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/__init__.py +0 -0
  149. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/fields.py +0 -0
  150. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/migration/__init__.py +0 -0
  151. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/migration/operations.py +0 -0
  152. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/mixins/__init__.py +0 -0
  153. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/mixins/date_interval.py +0 -0
  154. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/mixins/validation.py +0 -0
  155. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/model_view/__init__.py +0 -0
  156. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/model_view/table-view.html +0 -0
  157. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/models.py +0 -0
  158. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/observer.py +0 -0
  159. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/README.md +0 -0
  160. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/__init__.py +0 -0
  161. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/const.py +0 -0
  162. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/management/__init__.py +0 -0
  163. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/management/commands/__init__.py +0 -0
  164. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/management/commands/apply_partitioning.py +0 -0
  165. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/management/commands/clear_table.py +0 -0
  166. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/management/commands/split_table.py +0 -0
  167. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/partitioning.sql +0 -0
  168. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/partitioning_set_search_path.sql +0 -0
  169. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/triggers.sql +0 -0
  170. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/routers.py +0 -0
  171. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/signals.py +0 -0
  172. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/utils.py +0 -0
  173. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/validators/__init__.py +0 -0
  174. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/validators/simple.py +0 -0
  175. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/__init__.py +0 -0
  176. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/README.rst +0 -0
  177. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/__init__.py +0 -0
  178. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/api.py +0 -0
  179. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/app_meta.py +0 -0
  180. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/exceptions.py +0 -0
  181. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/management/__init__.py +0 -0
  182. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/management/commands/__init__.py +0 -0
  183. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/management/commands/atcfs_migrate.py +0 -0
  184. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/models.py +0 -0
  185. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/monkey_patching.py +0 -0
  186. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/settings.py +0 -0
  187. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/storage.py +0 -0
  188. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/templates/atcfs_unavailable.html +0 -0
  189. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/extjs/__init__.py +0 -0
  190. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/extjs/fields/__init__.py +0 -0
  191. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/extjs/fields/input_params.py +0 -0
  192. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/XLSReader.py +0 -0
  193. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/__init__.py +0 -0
  194. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/api.py +0 -0
  195. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/constants.py +0 -0
  196. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/loggers.py +0 -0
  197. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/proxy.py +0 -0
  198. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/proxy_import.py +0 -0
  199. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/refactoring-notes.txt +0 -0
  200. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/report.py +0 -0
  201. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/test_file.xls +0 -0
  202. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/ui.py +0 -0
  203. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/validators.py +0 -0
  204. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/integration_entities/README.rst +0 -0
  205. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/integration_entities/__init__.py +0 -0
  206. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/integration_entities/consts.py +0 -0
  207. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/integration_entities/entities.py +0 -0
  208. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/integration_entities/enums.py +0 -0
  209. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/integration_entities/helpers.py +0 -0
  210. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/integration_entities/mixins.py +0 -0
  211. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ioc/__init__.py +0 -0
  212. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/logger/__init__.py +0 -0
  213. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/logger/app_settings.py +0 -0
  214. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/logger/apps.py +0 -0
  215. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/logger/consts.py +0 -0
  216. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/logger/formatters.py +0 -0
  217. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/logger/helpers.py +0 -0
  218. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/logger/loggers.py +0 -0
  219. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/logger/records.py +0 -0
  220. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/__init__.py +0 -0
  221. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/__init__.py +0 -0
  222. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/__init__.py +0 -0
  223. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/delete_check/__init__.py +0 -0
  224. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/delete_check/cancel-confirm-window.js +0 -0
  225. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/delete_check/listeners.py +0 -0
  226. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/delete_check/mixins.py +0 -0
  227. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/delete_check/related-objects-window.html +0 -0
  228. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/delete_check/signals.py +0 -0
  229. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/delete_check/ui.py +0 -0
  230. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/delete_check/utils.py +0 -0
  231. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/ui.py +0 -0
  232. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/transaction_context.py +0 -0
  233. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/__init__.py +0 -0
  234. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/actions.py +0 -0
  235. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/apps.py +0 -0
  236. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/filters.py +0 -0
  237. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/templates/base-grid-window.js +0 -0
  238. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/templates/filter-panel.js +0 -0
  239. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/templates/grid-panel.js +0 -0
  240. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/templates/multiSelectWindow.js +0 -0
  241. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/templates/multiselect-page-fix.js +0 -0
  242. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/templates/relations-check-mixin-template.html +0 -0
  243. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/ui.py +0 -0
  244. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/__init__.py +0 -0
  245. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/actions.py +0 -0
  246. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/README.rst +0 -0
  247. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/__init__.py +0 -0
  248. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/app_meta.py +0 -0
  249. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/apps.py +0 -0
  250. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/base.py +0 -0
  251. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/builders/__init__.py +0 -0
  252. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/builders/excel/__init__.py +0 -0
  253. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/builders/excel/_base.py +0 -0
  254. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/builders/excel/_header.py +0 -0
  255. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/builders/excel/constants.py +0 -0
  256. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/builders/excel/product.py +0 -0
  257. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/builders/excel/with_merged_cells.py +0 -0
  258. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/config.py +0 -0
  259. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/constants.py +0 -0
  260. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/editor/__init__.py +0 -0
  261. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/editor/actions.py +0 -0
  262. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/editor/edit-window.js +0 -0
  263. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/editor/list-window.js +0 -0
  264. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/editor/ui.py +0 -0
  265. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/exceptions.py +0 -0
  266. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0001_initial.py +0 -0
  267. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0002_report_filters.py +0 -0
  268. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0003_reportfilter_exclude.py +0 -0
  269. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0004_reportfilter_fields.py +0 -0
  270. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0005_reportcolumn_visible.py +0 -0
  271. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0006_reportsorting.py +0 -0
  272. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0007_include_available_units.py +0 -0
  273. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0008_auto_20170407_1318.py +0 -0
  274. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0009_auto_20180405_0642.py +0 -0
  275. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0010_add_aggregate_fields.py +0 -0
  276. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/__init__.py +0 -0
  277. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/mixins.py +0 -0
  278. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/models.py +0 -0
  279. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/plugin_meta.py +0 -0
  280. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/registries.py +0 -0
  281. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/utils.py +0 -0
  282. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/validators.py +0 -0
  283. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/reporter.py +0 -0
  284. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/utils.py +0 -0
  285. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/rest/__init__.py +0 -0
  286. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/rest/actions.py +0 -0
  287. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/rest/context.py +0 -0
  288. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/rest/controllers.py +0 -0
  289. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/rest/misc.py +0 -0
  290. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/rest/mixins.py +0 -0
  291. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/secure_media/README.rst +0 -0
  292. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/secure_media/__init__.py +0 -0
  293. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/secure_media/app_meta.py +0 -0
  294. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/thread_data.py +0 -0
  295. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/__init__.py +0 -0
  296. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/caching.py +0 -0
  297. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/conversion.py +0 -0
  298. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/crypto.py +0 -0
  299. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/date.py +0 -0
  300. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/db/__init__.py +0 -0
  301. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/db/postgresql.py +0 -0
  302. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/fonts/Arial.ttf +0 -0
  303. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/fonts/Calibri.ttf +0 -0
  304. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/fonts/Tahoma.ttf +0 -0
  305. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/fonts/__init__.py +0 -0
  306. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/licence/__init__.py +0 -0
  307. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/licence/converters.py +0 -0
  308. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/misc.py +0 -0
  309. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/object_grid.py +0 -0
  310. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/phone_number/__init__.py +0 -0
  311. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/phone_number/enums.py +0 -0
  312. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/phone_number/modelfields.py +0 -0
  313. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/phone_number/phone_number.py +0 -0
  314. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/phone_number/validators.py +0 -0
  315. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/plugins.py +0 -0
  316. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/registry.py +0 -0
  317. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/seqtools.py +0 -0
  318. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/serializer.py +0 -0
  319. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/storage.py +0 -0
  320. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/system.py +0 -0
  321. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/system_app/__init__.py +0 -0
  322. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/system_app/management/__init__.py +0 -0
  323. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/system_app/management/commands/__init__.py +0 -0
  324. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/system_app/management/commands/delete_objects.py +0 -0
  325. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/system_app/templatetags/__init__.py +0 -0
  326. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/system_app/templatetags/educommon.py +0 -0
  327. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/ui.py +0 -0
  328. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/xml/__init__.py +0 -0
  329. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/xml/catalog.json +0 -0
  330. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/xml/resolver.py +0 -0
  331. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/xml/saml-schema-assertion-2.0.xsd +0 -0
  332. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/xml/saml-schema-protocol-2.0.xsd +0 -0
  333. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/xml/xenc-schema.xsd +0 -0
  334. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/xml/xmldsig-core-schema.xsd +0 -0
  335. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/README.rst +0 -0
  336. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/__init__.py +0 -0
  337. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/actions.py +0 -0
  338. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/app_meta.py +0 -0
  339. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/base.py +0 -0
  340. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0001_initial.py +0 -0
  341. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0002_auto_20160628_1334.py +0 -0
  342. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0003_add_fields_to_smev_logs.py +0 -0
  343. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0004_auto_20160727_1600.py +0 -0
  344. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0005_auto_20161130_1615.py +0 -0
  345. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0006_auto_20170327_1027.py +0 -0
  346. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0007_auto_20180607_1040.py +0 -0
  347. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0008_auto_20180713_1445.py +0 -0
  348. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0009_auto_20201130_1553.py +0 -0
  349. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/__init__.py +0 -0
  350. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/models.py +0 -0
  351. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/provider.py +0 -0
  352. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/report.py +0 -0
  353. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/smev/__init__.py +0 -0
  354. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/smev/applications.py +0 -0
  355. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/smev/exceptions.py +0 -0
  356. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/templates/report/smev_logs.xlsx +0 -0
  357. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/templates/ui-js/smev-logs-list-window.js +0 -0
  358. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/templates/ui-js/smev-logs-report-setting-window.js +0 -0
  359. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/ui.py +0 -0
  360. {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/utils.py +0 -0
  361. {educommon-3.15.0 → educommon-3.17.0}/src/educommon.egg-info/SOURCES.txt +0 -0
  362. {educommon-3.15.0 → educommon-3.17.0}/src/educommon.egg-info/dependency_links.txt +0 -0
  363. {educommon-3.15.0 → educommon-3.17.0}/src/educommon.egg-info/requires.txt +0 -0
  364. {educommon-3.15.0 → educommon-3.17.0}/src/educommon.egg-info/top_level.txt +0 -0
  365. {educommon-3.15.0 → educommon-3.17.0}/tests/test_contingent_plugin_utils.py +0 -0
  366. {educommon-3.15.0 → educommon-3.17.0}/tests/test_dates_splitter.py +0 -0
  367. {educommon-3.15.0 → educommon-3.17.0}/tests/test_delete_check.py +0 -0
  368. {educommon-3.15.0 → educommon-3.17.0}/tests/test_delete_objects.py +0 -0
  369. {educommon-3.15.0 → educommon-3.17.0}/tests/test_django_db_utils.py +0 -0
  370. {educommon-3.15.0 → educommon-3.17.0}/tests/test_interval_mixins.py +0 -0
  371. {educommon-3.15.0 → educommon-3.17.0}/tests/test_personal_data_fields.py +0 -0
  372. {educommon-3.15.0 → educommon-3.17.0}/tests/test_phone_number.py +0 -0
  373. {educommon-3.15.0 → educommon-3.17.0}/tests/test_report.py +0 -0
  374. {educommon-3.15.0 → educommon-3.17.0}/tests/test_service_db_router.py +0 -0
  375. {educommon-3.15.0 → educommon-3.17.0}/tests/test_utils.py +0 -0
  376. {educommon-3.15.0 → educommon-3.17.0}/tests/test_utils_plugins.py +0 -0
  377. {educommon-3.15.0 → educommon-3.17.0}/tests/test_validators.py +0 -0
  378. {educommon-3.15.0 → educommon-3.17.0}/tests/tests_rbac.py +0 -0
@@ -28,6 +28,34 @@
28
28
  ### Удалено
29
29
 
30
30
 
31
+ # [3.17.0] - 2025-05-28
32
+
33
+ Добавлена проверка конфликтующих таблиц которые должны логироваться, но находятся в сервисных приложениях.
34
+
35
+ ### Добавлено
36
+
37
+ - [EDUSCHL-23590](https://jira.bars.group/browse/EDUSCHL-23590)
38
+ MINOR Добавлена функция get_table_names_for_app_labels для получения множества с именами таблиц для указанных приложений.
39
+ Добавлена проверка конфликтующих таблиц которые должны логироваться, но находятся в сервисных приложениях.
40
+
41
+
42
+ # [3.16.0] - 2025-05-15
43
+
44
+ Добавлена настройка передачи дополнительных SQL файлов для выполнения в МК reinstall_audit_log.
45
+
46
+ ### Добавлено
47
+
48
+ - [EDUSCHL-23389](https://jira.bars.group/browse/EDUSCHL-23389)
49
+ MINOR Добавлена настройка AUDIT_LOG_EXTENSION_SCRIPTS для хранения путей к дополнительным SQL файлам,
50
+ которые будут выполнены в МК reinstall_audit_log.
51
+ Явное указание настройки в продукте не обязательно. Пример заполнения указан в audit_log/README.rst.
52
+
53
+ ### Удалено
54
+
55
+ - [EDUSCHL-23389](https://jira.bars.group/browse/EDUSCHL-23389)
56
+ MINOR Удален столбец имитации в AuditLogPack
57
+
58
+
31
59
  ## [3.15.0] - 2025-04-29
32
60
 
33
61
  Добавлен фильтр, позволяющий работать с датой в формате d.m.Y, m.Y, Y.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: educommon
3
- Version: 3.15.0
3
+ Version: 3.17.0
4
4
  Summary: Общая кодовая база для проектов БЦ Образование
5
5
  Author-email: BARS Group <education_dev@bars-open.ru>
6
6
  Project-URL: Homepage, https://stash.bars-open.ru/projects/EDUBASE/repos/educommon/browse
@@ -62,3 +62,32 @@
62
62
  в request уже был определен пользователь.
63
63
 
64
64
  4. Создать и выполнить миграции.
65
+
66
+ Расширение
67
+ --------------
68
+
69
+ Для реализации локальных расширений логирования продукта на уровне БД реализовано применение настройки
70
+ AUDIT_LOG_EXTENSION_SCRIPTS при выполнении МК reinstall_audit_log.
71
+
72
+ Настройка может содержать пути до SQL-скриптов, которые будут выполняться помимо основного скрипта install_audit_log.sql.
73
+
74
+ Примером заполнения настройки может послужить установка через AppConfig приложения,
75
+ в котором хранится необходимый SQL файл.
76
+
77
+ Например:
78
+ .. code-block:: python
79
+
80
+ class PluginAppConfig(AppConfig):
81
+ """Конфигурация плагина."""
82
+
83
+ name = 'project.plugins.plugin'
84
+ label = 'plugin'
85
+
86
+ def ready(self):
87
+ """Добавляет SQL скрипт в процесс установки audit_log."""
88
+ sql_files_dir = os.path.abspath(
89
+ os.path.join(os.path.dirname(__file__), 'sql')
90
+ )
91
+
92
+ sql_file_path = os.path.join(sql_files_dir, 'audit_log_extension.sql')
93
+ settings.AUDIT_LOG_EXTENSION_SCRIPTS += (sql_file_path,)
@@ -148,11 +148,6 @@ class AuditLogPack(ViewWindowPackMixin, PackValidationMixin, ObjectPack, metacla
148
148
  control_creator=ExtStringField,
149
149
  ),
150
150
  },
151
- {
152
- 'data_index': '',
153
- 'width': 40,
154
- 'header': 'Имитация',
155
- },
156
151
  ]
157
152
 
158
153
  return columns
@@ -1,6 +1,9 @@
1
1
  import codecs
2
2
  import os
3
3
 
4
+ from django.conf import (
5
+ settings,
6
+ )
4
7
  from django.core.management.base import (
5
8
  BaseCommand,
6
9
  )
@@ -31,19 +34,19 @@ class Command(BaseCommand):
31
34
  Удаляет схему audit. В этой схеме не должно храниться никаких таблиц
32
35
  с данными.
33
36
  После удаления устанавливает audit_log заново.
37
+ Через настройки проекта возможна передача дополнительных sql файлов
38
+ для выполнения вместе с основным скриптом установки.
34
39
  """
35
40
 
36
41
  help = 'Команда для переустановки audit_log.'
37
42
 
38
- def add_arguments(self, parser):
43
+ def add_arguments(self, parser) -> None:
39
44
  """Добавление аргументов команды."""
40
- (
41
- parser.add_argument(
42
- '--clear_audit_logs',
43
- action='store_true',
44
- default=False,
45
- help='Удалить записи из audit_log для неотслеживаемых таблиц',
46
- ),
45
+ parser.add_argument(
46
+ '--clear_audit_logs',
47
+ action='store_true',
48
+ default=False,
49
+ help='Удалить записи из audit_log для неотслеживаемых таблиц',
47
50
  )
48
51
  parser.add_argument(
49
52
  '--chunk_size',
@@ -52,33 +55,42 @@ class Command(BaseCommand):
52
55
  help='Кол-во единовременно удаляемых записей',
53
56
  )
54
57
 
55
- def _read_sql(self, filename):
58
+ def _read_sql(self, sql_file_path: str) -> str:
56
59
  """Чтение SQL-кода из файла."""
57
- sql_file_path = os.path.join(SQL_FILES_DIR, filename)
58
-
59
60
  with codecs.open(sql_file_path, 'r', 'utf-8') as sql_file:
60
61
  sql = sql_file.read()
61
62
 
62
- self.stdout.write('reading SQL-code..\n')
63
+ file_name = os.path.basename(sql_file_path)
64
+ self.stdout.write(f'reading {file_name}..\n')
63
65
 
64
66
  return sql
65
67
 
66
- def _prepare_sql(self):
68
+ def _prepare_sql(self) -> list[str]:
67
69
  """Подготовка SQL-кода."""
68
70
  params = get_db_connection_params()
69
71
  params['lock_id'] = PG_LOCK_ID
70
72
 
71
73
  self.stdout.write('preparing SQL-code..\n')
72
74
 
73
- return self._read_sql(INSTALL_AUDIT_LOG_SQL_FILE_NAME).format(**params)
75
+ sql_files = [
76
+ os.path.join(SQL_FILES_DIR, INSTALL_AUDIT_LOG_SQL_FILE_NAME),
77
+ *getattr(settings, 'AUDIT_LOG_EXTENSION_SCRIPTS', [])
78
+ ]
79
+
80
+ sql_scripts = []
81
+ for sql_file_path in sql_files:
82
+ sql_scripts.append(self._read_sql(sql_file_path).format(**params))
83
+
84
+ return sql_scripts
74
85
 
75
- def handle(self, *args, **options):
86
+ def handle(self, *args, **options) -> None:
76
87
  """Формирование SQL-кода и его исполнение."""
77
88
  self.stdout.write('start reinstalling audit_log..\n')
78
89
 
79
90
  cursor = connection.cursor()
80
91
 
81
- cursor.execute(self._prepare_sql())
92
+ for sql in self._prepare_sql():
93
+ cursor.execute(sql)
82
94
 
83
95
  configure(force_update_triggers=True)
84
96
 
@@ -40,6 +40,7 @@ from django.db.transaction import (
40
40
  from django.http import (
41
41
  HttpRequest,
42
42
  )
43
+
43
44
  from m3_django_compat import (
44
45
  get_related,
45
46
  )
@@ -52,6 +53,9 @@ from educommon.audit_log.constants import (
52
53
  PG_LOCK_ID,
53
54
  SQL_FILES_DIR,
54
55
  )
56
+ from educommon.logger import (
57
+ error as logger_error,
58
+ )
55
59
  from educommon.utils.misc import (
56
60
  cached_property,
57
61
  )
@@ -99,6 +103,19 @@ def get_need_to_log_table_names() -> Set[str]:
99
103
  return table_names
100
104
 
101
105
 
106
+ def get_table_names_for_app_labels(app_labels: Iterable[str]) -> Set[str]:
107
+ """Возвращает множество с именами таблиц для указанных приложений."""
108
+ tables = set()
109
+ for app_label in app_labels:
110
+ try:
111
+ app_config = apps.get_app_config(app_label)
112
+ tables.update(model._meta.db_table for model in app_config.get_models())
113
+ except LookupError:
114
+ continue
115
+
116
+ return tables
117
+
118
+
102
119
  def update_or_create_tables(need_to_log_table_names: Iterable[str]) -> bool:
103
120
  """Создаёт записи Table для отслеживаемых таблиц, либо меняет флаг logged.
104
121
 
@@ -109,6 +126,21 @@ def update_or_create_tables(need_to_log_table_names: Iterable[str]) -> bool:
109
126
  need_to_log_table_names = set(need_to_log_table_names)
110
127
  existed_table_names = set(Table.objects.filter(schema='public').values_list('name', flat=True))
111
128
 
129
+ # Таблицы сервисных приложений, которые не должны отслеживаться аудит-логом
130
+ allowed_service_apps_labels = getattr(settings, 'ALLOWED_SERVICE_APPS_LABELS', [])
131
+ service_table_names = get_table_names_for_app_labels(allowed_service_apps_labels)
132
+
133
+ # Проверка конфликтных таблиц: должны логироваться, но находятся в сервисных приложениях
134
+ conflicting_tables = need_to_log_table_names & service_table_names
135
+ if conflicting_tables:
136
+ tables = ', '.join(sorted(conflicting_tables))
137
+ error_msg = (
138
+ f'Невозможно включить логирование для сервисных таблиц: {tables}. '
139
+ 'Исключите их из отслеживания или перенесите таблицы в основную БД.'
140
+ )
141
+ logger_error(error_msg)
142
+ raise ValueError(error_msg)
143
+
112
144
  to_create_table_names = need_to_log_table_names - existed_table_names
113
145
  to_disable_table_names = existed_table_names - need_to_log_table_names
114
146
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: educommon
3
- Version: 3.15.0
3
+ Version: 3.17.0
4
4
  Summary: Общая кодовая база для проектов БЦ Образование
5
5
  Author-email: BARS Group <education_dev@bars-open.ru>
6
6
  Project-URL: Homepage, https://stash.bars-open.ru/projects/EDUBASE/repos/educommon/browse
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes