educommon 3.9.2__tar.gz → 3.9.3__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 (369) hide show
  1. {educommon-3.9.2/src/educommon.egg-info → educommon-3.9.3}/PKG-INFO +3 -2
  2. {educommon-3.9.2 → educommon-3.9.3}/setup.py +2 -1
  3. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/proxies.py +5 -4
  4. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/models.py +2 -3
  5. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/simple_auth/app_meta.py +4 -4
  6. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/mixins/validation.py +2 -2
  7. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/model_view/__init__.py +4 -3
  8. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/partitioning/__init__.py +2 -2
  9. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/partitioning/management/commands/clear_table.py +4 -3
  10. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/partitioning/management/commands/split_table.py +4 -3
  11. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/utils.py +43 -44
  12. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/storages/atcfs/app_meta.py +3 -3
  13. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/logger/loggers.py +2 -2
  14. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/m3/__init__.py +3 -3
  15. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/m3/extensions/listeners/delete_check/listeners.py +1 -3
  16. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/base.py +7 -6
  17. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/builders/excel/_base.py +6 -5
  18. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/secure_media/app_meta.py +7 -6
  19. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/system_app/management/commands/delete_objects.py +2 -2
  20. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/version.conf +5 -5
  21. {educommon-3.9.2 → educommon-3.9.3/src/educommon.egg-info}/PKG-INFO +3 -2
  22. {educommon-3.9.2 → educommon-3.9.3}/src/educommon.egg-info/requires.txt +2 -1
  23. {educommon-3.9.2 → educommon-3.9.3}/MANIFEST.in +0 -0
  24. {educommon-3.9.2 → educommon-3.9.3}/README.rst +0 -0
  25. {educommon-3.9.2 → educommon-3.9.3}/UPGRADE.rst +0 -0
  26. {educommon-3.9.2 → educommon-3.9.3}/setup.cfg +0 -0
  27. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/__init__.py +0 -0
  28. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/about/README.rst +0 -0
  29. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/about/__init__.py +0 -0
  30. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/about/apps.py +0 -0
  31. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/about/static/edu_about/barsgroup.png +0 -0
  32. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/about/ui/__init__.py +0 -0
  33. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/about/ui/about-window.js +0 -0
  34. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/about/ui/actions.py +0 -0
  35. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/about/ui/common-tab.html +0 -0
  36. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/about/ui/packages-tab.js +0 -0
  37. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/about/ui/postgresql-extensions-tab.js +0 -0
  38. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/about/ui/ui.py +0 -0
  39. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/about/utils.py +0 -0
  40. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_task/__init__.py +0 -0
  41. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_task/actions.py +0 -0
  42. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_task/apps.py +0 -0
  43. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_task/consts.py +0 -0
  44. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_task/exceptions.py +0 -0
  45. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_task/helpers.py +0 -0
  46. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_task/locker.py +0 -0
  47. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_task/migrations/0001_initial.py +0 -0
  48. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_task/migrations/0002_task_type_and_status_data.py +0 -0
  49. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_task/migrations/__init__.py +0 -0
  50. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_task/models.py +0 -0
  51. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_task/tasks.py +0 -0
  52. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_task/templates/ui-js/async-task-list-win.js +0 -0
  53. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_task/templates/ui-js/async-task-revoke.js +0 -0
  54. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_task/templates/ui-js/async-task-view-win.js +0 -0
  55. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_task/ui.py +0 -0
  56. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_tasks/__init__.py +0 -0
  57. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_tasks/apps.py +0 -0
  58. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_tasks/exceptions.py +0 -0
  59. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_tasks/fixtures/initial_data.json +0 -0
  60. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_tasks/locks.py +0 -0
  61. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_tasks/migrations/0001_initial.py +0 -0
  62. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_tasks/migrations/0002_load_initial_data.py +0 -0
  63. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_tasks/migrations/__init__.py +0 -0
  64. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_tasks/models.py +0 -0
  65. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_tasks/statuses.py +0 -0
  66. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/async_tasks/tasks.py +0 -0
  67. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/__init__.py +0 -0
  68. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/actions.py +0 -0
  69. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/app_meta.py +0 -0
  70. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/apps.py +0 -0
  71. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/constants.py +0 -0
  72. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/error_log/__init__.py +0 -0
  73. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/error_log/actions.py +0 -0
  74. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/helpers.py +0 -0
  75. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/management/__init__.py +0 -0
  76. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/management/commands/__init__.py +0 -0
  77. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/management/commands/reinstall_audit_log.py +0 -0
  78. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/middleware.py +0 -0
  79. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/migrations/0001_initial.py +0 -0
  80. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/migrations/0002_install_audit_log.py +0 -0
  81. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/migrations/0003_logproxy.py +0 -0
  82. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/migrations/0004_reinstall_audit_log.py +0 -0
  83. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/migrations/0005_postgresql_error.py +0 -0
  84. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/migrations/0006_auto_20200806_1707.py +0 -0
  85. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/migrations/0007_create_selective_tables_function.py +0 -0
  86. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/migrations/0008_table_logged.py +0 -0
  87. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/migrations/0009_reinstall_audit_log.py +0 -0
  88. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/migrations/__init__.py +0 -0
  89. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/models.py +0 -0
  90. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/permissions.py +0 -0
  91. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/routers.py +0 -0
  92. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/sql/configure_audit_log.sql +0 -0
  93. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/sql/install_audit_log.sql +0 -0
  94. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/ui.py +0 -0
  95. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/utils/__init__.py +0 -0
  96. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/audit_log/utils/operations.py +0 -0
  97. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/__init__.py +0 -0
  98. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/__init__.py +0 -0
  99. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/actions.py +0 -0
  100. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/app_meta.py +0 -0
  101. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/backends/__init__.py +0 -0
  102. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/backends/base.py +0 -0
  103. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/backends/caching.py +0 -0
  104. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/backends/simple.py +0 -0
  105. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/checker.py +0 -0
  106. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/config.py +0 -0
  107. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/constants.py +0 -0
  108. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/management/__init__.py +0 -0
  109. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/management/commands/__init__.py +0 -0
  110. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/management/commands/rbac.py +0 -0
  111. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/manager.py +0 -0
  112. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/migrations/0001_initial.py +0 -0
  113. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/migrations/0002_model_modifier_metaclass_fix.py +0 -0
  114. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/migrations/0003_permission_hidden.py +0 -0
  115. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/migrations/0004_auto_20171024_1245.py +0 -0
  116. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/migrations/__init__.py +0 -0
  117. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/permissions.py +0 -0
  118. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/templates/rbac/role-add-window.js +0 -0
  119. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/templates/rbac/role-edit-window.js +0 -0
  120. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/templates/rbac/roles-list-window.js +0 -0
  121. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/templates/rbac/roles-view-list-window.js +0 -0
  122. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/ui.py +0 -0
  123. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/utils.py +0 -0
  124. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/rbac/validators.py +0 -0
  125. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/simple_auth/__init__.py +0 -0
  126. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/simple_auth/actions.py +0 -0
  127. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/simple_auth/checkers.py +0 -0
  128. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/simple_auth/const.py +0 -0
  129. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/simple_auth/migrations/0001_initial.py +0 -0
  130. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/simple_auth/migrations/__init__.py +0 -0
  131. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/simple_auth/models.py +0 -0
  132. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/simple_auth/static/simple_auth/simple_auth.css +0 -0
  133. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/simple_auth/templates/simple_auth/change_reset_password_page.html +0 -0
  134. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/simple_auth/templates/simple_auth/email/reset_password.html +0 -0
  135. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/simple_auth/templates/simple_auth/login_page.html +0 -0
  136. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/simple_auth/templates/simple_auth/reset_password_page.html +0 -0
  137. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/simple_auth/ui.py +0 -0
  138. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/auth/simple_auth/validators.py +0 -0
  139. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/__init__.py +0 -0
  140. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/actions.py +0 -0
  141. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/app_meta.py +0 -0
  142. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/base.py +0 -0
  143. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/catalogs.py +0 -0
  144. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/contingent_plugin/__init__.py +0 -0
  145. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/contingent_plugin/actions.py +0 -0
  146. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/contingent_plugin/apps.py +0 -0
  147. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/contingent_plugin/migrations/0001_initial.py +0 -0
  148. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/contingent_plugin/migrations/0002_add_contingent_model_deleted.py +0 -0
  149. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/contingent_plugin/migrations/__init__.py +0 -0
  150. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/contingent_plugin/model_views.py +0 -0
  151. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/contingent_plugin/models.py +0 -0
  152. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/contingent_plugin/observer.py +0 -0
  153. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/contingent_plugin/plugin_meta.py +0 -0
  154. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/contingent_plugin/storage.py +0 -0
  155. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/contingent_plugin/utils.py +0 -0
  156. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/json_data/icao.json +0 -0
  157. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/json_data/okogu.json +0 -0
  158. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/contingent/json_data/oksm.json +0 -0
  159. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/__init__.py +0 -0
  160. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/__init__.py +0 -0
  161. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/fields.py +0 -0
  162. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/migration/__init__.py +0 -0
  163. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/migration/operations.py +0 -0
  164. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/mixins/__init__.py +0 -0
  165. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/mixins/date_interval.py +0 -0
  166. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/model_view/table-view.html +0 -0
  167. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/models.py +0 -0
  168. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/observer.py +0 -0
  169. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/partitioning/README.md +0 -0
  170. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/partitioning/management/__init__.py +0 -0
  171. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/partitioning/management/commands/__init__.py +0 -0
  172. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/partitioning/management/commands/apply_partitioning.py +0 -0
  173. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/partitioning/partitioning.sql +0 -0
  174. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/partitioning/triggers.sql +0 -0
  175. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/routers.py +0 -0
  176. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/signals.py +0 -0
  177. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/validators/__init__.py +0 -0
  178. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/db/validators/simple.py +0 -0
  179. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/storages/__init__.py +0 -0
  180. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/storages/atcfs/README.rst +0 -0
  181. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/storages/atcfs/__init__.py +0 -0
  182. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/storages/atcfs/api.py +0 -0
  183. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/storages/atcfs/exceptions.py +0 -0
  184. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/storages/atcfs/management/__init__.py +0 -0
  185. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/storages/atcfs/management/commands/__init__.py +0 -0
  186. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/storages/atcfs/management/commands/atcfs_migrate.py +0 -0
  187. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/storages/atcfs/models.py +0 -0
  188. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/storages/atcfs/monkey_patching.py +0 -0
  189. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/storages/atcfs/settings.py +0 -0
  190. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/storages/atcfs/storage.py +0 -0
  191. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/django/storages/atcfs/templates/atcfs_unavailable.html +0 -0
  192. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/extjs/__init__.py +0 -0
  193. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/extjs/fields/__init__.py +0 -0
  194. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/extjs/fields/input_params.py +0 -0
  195. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/importer/XLSReader.py +0 -0
  196. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/importer/__init__.py +0 -0
  197. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/importer/api.py +0 -0
  198. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/importer/constants.py +0 -0
  199. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/importer/loggers.py +0 -0
  200. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/importer/proxy.py +0 -0
  201. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/importer/proxy_import.py +0 -0
  202. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/importer/refactoring-notes.txt +0 -0
  203. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/importer/report.py +0 -0
  204. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/importer/test_file.xls +0 -0
  205. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/importer/ui.py +0 -0
  206. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/importer/validators.py +0 -0
  207. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/integration_entities/README.rst +0 -0
  208. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/integration_entities/__init__.py +0 -0
  209. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/integration_entities/consts.py +0 -0
  210. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/integration_entities/entities.py +0 -0
  211. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/integration_entities/enums.py +0 -0
  212. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/integration_entities/helpers.py +0 -0
  213. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/integration_entities/mixins.py +0 -0
  214. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ioc/__init__.py +0 -0
  215. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/logger/__init__.py +0 -0
  216. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/logger/app_settings.py +0 -0
  217. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/logger/apps.py +0 -0
  218. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/logger/consts.py +0 -0
  219. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/logger/formatters.py +0 -0
  220. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/logger/helpers.py +0 -0
  221. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/logger/records.py +0 -0
  222. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/m3/extensions/__init__.py +0 -0
  223. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/m3/extensions/listeners/__init__.py +0 -0
  224. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/m3/extensions/listeners/delete_check/__init__.py +0 -0
  225. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/m3/extensions/listeners/delete_check/cancel-confirm-window.js +0 -0
  226. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/m3/extensions/listeners/delete_check/mixins.py +0 -0
  227. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/m3/extensions/listeners/delete_check/related-objects-window.html +0 -0
  228. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/m3/extensions/listeners/delete_check/signals.py +0 -0
  229. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/m3/extensions/listeners/delete_check/ui.py +0 -0
  230. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/m3/extensions/listeners/delete_check/utils.py +0 -0
  231. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/m3/extensions/ui.py +0 -0
  232. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/m3/transaction_context.py +0 -0
  233. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/objectpack/__init__.py +0 -0
  234. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/objectpack/actions.py +0 -0
  235. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/objectpack/apps.py +0 -0
  236. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/objectpack/filters.py +0 -0
  237. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/objectpack/templates/base-grid-window.js +0 -0
  238. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/objectpack/templates/filter-panel.js +0 -0
  239. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/objectpack/templates/grid-panel.js +0 -0
  240. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/objectpack/templates/multiSelectWindow.js +0 -0
  241. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/objectpack/templates/multiselect-page-fix.js +0 -0
  242. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/objectpack/templates/relations-check-mixin-template.html +0 -0
  243. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/objectpack/ui.py +0 -0
  244. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/__init__.py +0 -0
  245. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/actions.py +0 -0
  246. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/README.rst +0 -0
  247. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/__init__.py +0 -0
  248. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/app_meta.py +0 -0
  249. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/apps.py +0 -0
  250. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/builders/__init__.py +0 -0
  251. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/builders/excel/__init__.py +0 -0
  252. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/builders/excel/_header.py +0 -0
  253. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/builders/excel/constants.py +0 -0
  254. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/builders/excel/product.py +0 -0
  255. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/builders/excel/with_merged_cells.py +0 -0
  256. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/config.py +0 -0
  257. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/constants.py +0 -0
  258. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/editor/__init__.py +0 -0
  259. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/editor/actions.py +0 -0
  260. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/editor/edit-window.js +0 -0
  261. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/editor/list-window.js +0 -0
  262. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/editor/ui.py +0 -0
  263. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/exceptions.py +0 -0
  264. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/migrations/0001_initial.py +0 -0
  265. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/migrations/0002_report_filters.py +0 -0
  266. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/migrations/0003_reportfilter_exclude.py +0 -0
  267. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/migrations/0004_reportfilter_fields.py +0 -0
  268. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/migrations/0005_reportcolumn_visible.py +0 -0
  269. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/migrations/0006_reportsorting.py +0 -0
  270. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/migrations/0007_include_available_units.py +0 -0
  271. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/migrations/0008_auto_20170407_1318.py +0 -0
  272. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/migrations/0009_auto_20180405_0642.py +0 -0
  273. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/migrations/0010_add_aggregate_fields.py +0 -0
  274. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/migrations/__init__.py +0 -0
  275. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/mixins.py +0 -0
  276. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/models.py +0 -0
  277. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/plugin_meta.py +0 -0
  278. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/registries.py +0 -0
  279. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/utils.py +0 -0
  280. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/constructor/validators.py +0 -0
  281. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/reporter.py +0 -0
  282. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/report/utils.py +0 -0
  283. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/rest/__init__.py +0 -0
  284. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/rest/actions.py +0 -0
  285. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/rest/context.py +0 -0
  286. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/rest/controllers.py +0 -0
  287. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/rest/misc.py +0 -0
  288. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/rest/mixins.py +0 -0
  289. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/secure_media/README.rst +0 -0
  290. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/secure_media/__init__.py +0 -0
  291. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/thread_data.py +0 -0
  292. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/__init__.py +0 -0
  293. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/caching.py +0 -0
  294. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/conversion.py +0 -0
  295. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/crypto.py +0 -0
  296. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/date.py +0 -0
  297. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/db/__init__.py +0 -0
  298. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/db/postgresql.py +0 -0
  299. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/fonts/Arial.ttf +0 -0
  300. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/fonts/Calibri.ttf +0 -0
  301. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/fonts/Tahoma.ttf +0 -0
  302. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/fonts/__init__.py +0 -0
  303. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/licence/__init__.py +0 -0
  304. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/licence/converters.py +0 -0
  305. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/misc.py +0 -0
  306. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/object_grid.py +0 -0
  307. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/patches.py +0 -0
  308. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/plugins.py +0 -0
  309. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/registry.py +0 -0
  310. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/seqtools.py +0 -0
  311. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/serializer.py +0 -0
  312. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/storage.py +0 -0
  313. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/system.py +0 -0
  314. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/system_app/__init__.py +0 -0
  315. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/system_app/management/__init__.py +0 -0
  316. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/system_app/management/commands/__init__.py +0 -0
  317. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/system_app/templatetags/__init__.py +0 -0
  318. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/system_app/templatetags/educommon.py +0 -0
  319. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/ui.py +0 -0
  320. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/xml/__init__.py +0 -0
  321. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/xml/catalog.json +0 -0
  322. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/xml/resolver.py +0 -0
  323. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/xml/saml-schema-assertion-2.0.xsd +0 -0
  324. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/xml/saml-schema-protocol-2.0.xsd +0 -0
  325. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/xml/xenc-schema.xsd +0 -0
  326. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/utils/xml/xmldsig-core-schema.xsd +0 -0
  327. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/README.rst +0 -0
  328. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/__init__.py +0 -0
  329. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/actions.py +0 -0
  330. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/app_meta.py +0 -0
  331. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/base.py +0 -0
  332. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/migrations/0001_initial.py +0 -0
  333. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/migrations/0002_auto_20160628_1334.py +0 -0
  334. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/migrations/0003_add_fields_to_smev_logs.py +0 -0
  335. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/migrations/0004_auto_20160727_1600.py +0 -0
  336. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/migrations/0005_auto_20161130_1615.py +0 -0
  337. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/migrations/0006_auto_20170327_1027.py +0 -0
  338. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/migrations/0007_auto_20180607_1040.py +0 -0
  339. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/migrations/0008_auto_20180713_1445.py +0 -0
  340. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/migrations/0009_auto_20201130_1553.py +0 -0
  341. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/migrations/__init__.py +0 -0
  342. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/models.py +0 -0
  343. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/provider.py +0 -0
  344. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/report.py +0 -0
  345. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/smev/__init__.py +0 -0
  346. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/smev/applications.py +0 -0
  347. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/smev/exceptions.py +0 -0
  348. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/templates/report/smev_logs.xlsx +0 -0
  349. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/templates/ui-js/smev-logs-list-window.js +0 -0
  350. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/templates/ui-js/smev-logs-report-setting-window.js +0 -0
  351. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/ui.py +0 -0
  352. {educommon-3.9.2 → educommon-3.9.3}/src/educommon/ws_log/utils.py +0 -0
  353. {educommon-3.9.2 → educommon-3.9.3}/src/educommon.egg-info/SOURCES.txt +0 -0
  354. {educommon-3.9.2 → educommon-3.9.3}/src/educommon.egg-info/dependency_links.txt +0 -0
  355. {educommon-3.9.2 → educommon-3.9.3}/src/educommon.egg-info/top_level.txt +0 -0
  356. {educommon-3.9.2 → educommon-3.9.3}/tests/test_contingent_plugin_utils.py +0 -0
  357. {educommon-3.9.2 → educommon-3.9.3}/tests/test_dates_splitter.py +0 -0
  358. {educommon-3.9.2 → educommon-3.9.3}/tests/test_delete_check.py +0 -0
  359. {educommon-3.9.2 → educommon-3.9.3}/tests/test_delete_objects.py +0 -0
  360. {educommon-3.9.2 → educommon-3.9.3}/tests/test_django_db_utils.py +0 -0
  361. {educommon-3.9.2 → educommon-3.9.3}/tests/test_interval_mixins.py +0 -0
  362. {educommon-3.9.2 → educommon-3.9.3}/tests/test_patches.py +0 -0
  363. {educommon-3.9.2 → educommon-3.9.3}/tests/test_personal_data_fields.py +0 -0
  364. {educommon-3.9.2 → educommon-3.9.3}/tests/test_report.py +0 -0
  365. {educommon-3.9.2 → educommon-3.9.3}/tests/test_service_db_router.py +0 -0
  366. {educommon-3.9.2 → educommon-3.9.3}/tests/test_utils.py +0 -0
  367. {educommon-3.9.2 → educommon-3.9.3}/tests/test_utils_plugins.py +0 -0
  368. {educommon-3.9.2 → educommon-3.9.3}/tests/test_validators.py +0 -0
  369. {educommon-3.9.2 → educommon-3.9.3}/tests/tests_rbac.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: educommon
3
- Version: 3.9.2
3
+ Version: 3.9.3
4
4
  Summary: Общая кодовая база для проектов БЦ Образование
5
5
  Home-page: https://stash.bars-open.ru/projects/EDUBASE/repos/educommon
6
6
  Author: BARS Group
@@ -17,7 +17,8 @@ Classifier: Programming Language :: Python :: 3.8
17
17
  Classifier: Programming Language :: Python :: 3.9
18
18
  Classifier: Framework :: Django :: 2.2
19
19
  Classifier: Framework :: Django :: 3.0
20
- Requires-Dist: Django<3.1,>=2.2
20
+ Requires-Dist: packaging<24,>=21.3
21
+ Requires-Dist: Django<3.2,>=2.2
21
22
  Requires-Dist: django-mptt
22
23
  Requires-Dist: python-dateutil
23
24
  Requires-Dist: termcolor
@@ -46,7 +46,8 @@ def main():
46
46
  'm3-builder>=1.2,<2',
47
47
  ),
48
48
  install_requires=(
49
- 'Django>=2.2,<3.1',
49
+ 'packaging>=21.3,<24',
50
+ 'Django>=2.2,<3.2',
50
51
  'django-mptt',
51
52
  'python-dateutil',
52
53
  'termcolor',
@@ -24,8 +24,9 @@ from django.utils.dateparse import (
24
24
  parse_time,
25
25
  )
26
26
  from django.utils.encoding import (
27
- force_text,
27
+ force_str,
28
28
  )
29
+
29
30
  from m3_django_compat import (
30
31
  get_related,
31
32
  )
@@ -78,7 +79,7 @@ class LogProxy(AuditLog):
78
79
  if model:
79
80
  verbose = model._meta.verbose_name
80
81
  if verbose:
81
- return ' - '.join((force_text(verbose), model.__name__))
82
+ return ' - '.join((force_str(verbose), model.__name__))
82
83
  return model.__name__
83
84
  return self.table.name
84
85
 
@@ -130,7 +131,7 @@ class LogProxy(AuditLog):
130
131
  if self.fields:
131
132
  field = self.fields.get(column_name)
132
133
  if field and field.verbose_name:
133
- name = force_text(field.verbose_name)
134
+ name = force_str(field.verbose_name)
134
135
  return name
135
136
 
136
137
  def convert_field_value(self, column_name, value):
@@ -169,7 +170,7 @@ class LogProxy(AuditLog):
169
170
  value = get_choice(field.choices, value)
170
171
  except (ValueError, TypeError):
171
172
  pass
172
- return force_text(value)
173
+ return force_str(value)
173
174
 
174
175
  @property
175
176
  def object_string(self):
@@ -5,14 +5,12 @@ from django.contrib.contenttypes.models import (
5
5
  )
6
6
  from django.core.exceptions import (
7
7
  NON_FIELD_ERRORS,
8
+ FieldDoesNotExist,
8
9
  ValidationError,
9
10
  )
10
11
  from django.db import (
11
12
  models,
12
13
  )
13
- from django.db.models.fields import (
14
- FieldDoesNotExist,
15
- )
16
14
  from django.db.models.signals import (
17
15
  post_delete,
18
16
  pre_delete,
@@ -20,6 +18,7 @@ from django.db.models.signals import (
20
18
  from django.dispatch import (
21
19
  receiver,
22
20
  )
21
+
23
22
  from m3 import (
24
23
  ApplicationLogicException,
25
24
  )
@@ -1,6 +1,7 @@
1
- from django.conf.urls import (
2
- url,
1
+ from django.urls import (
2
+ re_path,
3
3
  )
4
+
4
5
  from m3.actions import (
5
6
  ControllerCache,
6
7
  )
@@ -9,7 +10,6 @@ from m3_ext.ui.app_ui import (
9
10
  DesktopLoader,
10
11
  DesktopShortcut,
11
12
  )
12
-
13
13
  from objectpack.desktop import (
14
14
  uificate_the_controller,
15
15
  )
@@ -51,5 +51,5 @@ def register_desktop_menu():
51
51
  def register_urlpatterns():
52
52
  """Регистрация URL контроллера."""
53
53
  return [
54
- url(*auth_controller.urlpattern),
54
+ re_path(*auth_controller.urlpattern),
55
55
  ]
@@ -107,7 +107,7 @@ class Manager(DjangoManager):
107
107
  return QuerySet(self.model, using=self._db)
108
108
 
109
109
 
110
- pre_clean = Signal(providing_args=('errors',))
110
+ pre_clean = Signal()
111
111
  """Сигнал, отправляемый перед валидацией модели.
112
112
 
113
113
  :param defaultdict errors: Словарь, содержащий ошибки валидации экземпляра
@@ -119,7 +119,7 @@ pre_clean = Signal(providing_args=('errors',))
119
119
  """
120
120
 
121
121
 
122
- post_clean = Signal(providing_args=('errors',))
122
+ post_clean = Signal()
123
123
  """Сигнал, отправляемый после валидации модели.
124
124
 
125
125
  :param defaultdict errors: Словарь, содержащий ошибки валидации экземпляра
@@ -16,8 +16,9 @@ from django.template.loader import (
16
16
  render_to_string,
17
17
  )
18
18
  from django.utils.encoding import (
19
- force_text,
19
+ force_str,
20
20
  )
21
+
21
22
  from m3_django_compat import (
22
23
  get_model,
23
24
  )
@@ -132,7 +133,7 @@ class JoinedAttrValues(DataExtractor):
132
133
  values = []
133
134
  for field_name in self._field_names:
134
135
  try:
135
- value = force_text(get_nested_attr(obj, field_name) or '')
136
+ value = force_str(get_nested_attr(obj, field_name) or '')
136
137
  except AttributeError:
137
138
  return ''
138
139
  else:
@@ -154,7 +155,7 @@ class FieldChoiceValue(DataExtractor):
154
155
  except AttributeError:
155
156
  return ''
156
157
  else:
157
- return force_text(
158
+ return force_str(
158
159
  dict(field.flatchoices).get(value, value),
159
160
  strings_only=True
160
161
  )
@@ -227,7 +227,7 @@ def set_partitioning_for_model(model, column_name, force=False):
227
227
  значение будет определять раздел таблицы, в который будет помещена
228
228
  запись.
229
229
 
230
- :raises django.db.models.fields.FieldDoesNotExist: если модель *model* не
230
+ :raises django.core.exceptions.FieldDoesNotExist: если модель *model* не
231
231
  содержит поля *column_name*
232
232
  """
233
233
  database_alias, table_name, pk_column_name = _get_model_params(model)
@@ -258,7 +258,7 @@ def split_table(model, column_name, timeout=0):
258
258
  :param float timeout: Время ожидания в секундах между переносом записей
259
259
  (можно использовать для снижения нагрузки на СУБД).
260
260
 
261
- :raises django.db.models.fields.FieldDoesNotExist: если модель *model* не
261
+ :raises django.core.exceptions.FieldDoesNotExist: если модель *model* не
262
262
  содержит поля *column_name*
263
263
  """
264
264
  database_alias, table_name, pk_column_name = _get_model_params(model)
@@ -1,9 +1,10 @@
1
+ from django.core.exceptions import (
2
+ FieldDoesNotExist,
3
+ )
1
4
  from django.core.management.base import (
2
5
  CommandError,
3
6
  )
4
- from django.db.models.fields import (
5
- FieldDoesNotExist,
6
- )
7
+
7
8
  from m3_django_compat import (
8
9
  BaseCommand,
9
10
  get_model,
@@ -1,9 +1,10 @@
1
+ from django.core.exceptions import (
2
+ FieldDoesNotExist,
3
+ )
1
4
  from django.core.management.base import (
2
5
  CommandError,
3
6
  )
4
- from django.db.models.fields import (
5
- FieldDoesNotExist,
6
- )
7
+
7
8
  from m3_django_compat import (
8
9
  BaseCommand,
9
10
  get_model,
@@ -9,13 +9,18 @@ from weakref import (
9
9
  WeakKeyDictionary,
10
10
  )
11
11
 
12
- import django
13
12
  from django.core.validators import (
14
13
  MaxLengthValidator,
15
14
  )
16
15
  from django.db.models.base import (
17
16
  ModelBase,
18
17
  )
18
+ from django.db.models.expressions import (
19
+ Func,
20
+ )
21
+ from django.db.models.lookups import (
22
+ Lookup,
23
+ )
19
24
  from django.db.models.signals import (
20
25
  post_delete,
21
26
  post_save,
@@ -23,6 +28,7 @@ from django.db.models.signals import (
23
28
  from django.dispatch.dispatcher import (
24
29
  receiver,
25
30
  )
31
+
26
32
  from m3_django_compat import (
27
33
  ModelOptions,
28
34
  atomic,
@@ -203,65 +209,58 @@ class LazyModel:
203
209
  return self._model
204
210
 
205
211
 
206
- if django.VERSION >= (1, 8):
207
- from django.db.models.expressions import (
208
- Func,
209
- )
210
- from django.db.models.lookups import (
211
- Lookup,
212
- )
212
+ class SmartExact(Func):
213
+ """Удаляет пробелы из строки и заменяет буквы ё на е."""
213
214
 
214
- class SmartExact(Func):
215
- """Удаляет пробелы из строки и заменяет буквы ё на е."""
215
+ template = "TRANSLATE(%(expressions)s, 'ёЁ ', 'еЕ')"
216
216
 
217
- template = "TRANSLATE(%(expressions)s, 'ёЁ ', 'еЕ')"
217
+ class SmartExactLookup(Lookup):
218
+ """Удаляет пробелы из строки и заменяет буквы ё на е."""
218
219
 
219
- class SmartExactLookup(Lookup):
220
- """Удаляет пробелы из строки и заменяет буквы ё на е."""
220
+ lookup_name = 'smart_exact'
221
221
 
222
- lookup_name = 'smart_exact'
222
+ def as_postgresql(self, compiler, connection):
223
+ lhs, lhs_params = self.process_lhs(compiler, connection)
224
+ rhs, rhs_params = self.process_rhs(compiler, connection)
223
225
 
224
- def as_postgresql(self, compiler, connection):
225
- lhs, lhs_params = self.process_lhs(compiler, connection)
226
- rhs, rhs_params = self.process_rhs(compiler, connection)
226
+ sql = "TRANSLATE(%s, 'ёЁ ', 'еЕ')"
227
+ sql = '{sql} = {sql}'.format(sql=sql)
227
228
 
228
- sql = "TRANSLATE(%s, 'ёЁ ', 'еЕ')"
229
- sql = '{sql} = {sql}'.format(sql=sql)
229
+ return sql % (lhs, rhs), lhs_params + rhs_params
230
230
 
231
- return sql % (lhs, rhs), lhs_params + rhs_params
231
+ class SmartIExact(Func):
232
+ """Переводит в верхний регистр, удаляет пробелы, заменяет Ё на Е."""
232
233
 
233
- class SmartIExact(Func):
234
- """Переводит в верхний регистр, удаляет пробелы, заменяет Ё на Е."""
234
+ template = "TRANSLATE(UPPER(%(expressions)s), 'Ё ', 'Е')"
235
235
 
236
- template = "TRANSLATE(UPPER(%(expressions)s), 'Ё ', 'Е')"
236
+ class SmartIExactLookup(Lookup):
237
+ """Переводит в верхний регистр, удаляет пробелы, заменяет Ё на Е."""
237
238
 
238
- class SmartIExactLookup(Lookup):
239
- """Переводит в верхний регистр, удаляет пробелы, заменяет Ё на Е."""
239
+ lookup_name = 'smart_iexact'
240
240
 
241
- lookup_name = 'smart_iexact'
241
+ def as_postgresql(self, compiler, connection):
242
+ lhs, lhs_params = self.process_lhs(compiler, connection)
243
+ rhs, rhs_params = self.process_rhs(compiler, connection)
242
244
 
243
- def as_postgresql(self, compiler, connection):
244
- lhs, lhs_params = self.process_lhs(compiler, connection)
245
- rhs, rhs_params = self.process_rhs(compiler, connection)
245
+ sql = "TRANSLATE(UPPER(%s), 'Ё ', 'Е')"
246
+ sql = '{sql} = {sql}'.format(sql=sql)
246
247
 
247
- sql = "TRANSLATE(UPPER(%s), ', 'Е')"
248
- sql = '{sql} = {sql}'.format(sql=sql)
248
+ return sql % (lhs, rhs), lhs_params + rhs_params
249
249
 
250
- return sql % (lhs, rhs), lhs_params + rhs_params
250
+ class SmartIContainsLookup(Lookup):
251
+ """Регистронезависимый поиск.
251
252
 
252
- class SmartIContainsLookup(Lookup):
253
- """
254
- Переводит в верхний регистр, удаляет пробелы, заменяет Ё на Е,
255
- проверяет вхождение текста.
256
- """
253
+ Переводит в верхний регистр, удаляет пробелы, заменяет Ё на Е, проверяет
254
+ вхождение текста.
255
+ """
257
256
 
258
- lookup_name = 'smart_icontains'
257
+ lookup_name = 'smart_icontains'
259
258
 
260
- def as_postgresql(self, compiler, connection):
261
- lhs, lhs_params = self.process_lhs(compiler, connection)
262
- rhs, rhs_params = self.process_rhs(compiler, connection)
259
+ def as_postgresql(self, compiler, connection):
260
+ lhs, lhs_params = self.process_lhs(compiler, connection)
261
+ rhs, rhs_params = self.process_rhs(compiler, connection)
263
262
 
264
- sql = "TRANSLATE(UPPER(%s), 'Ё ', 'Е')"
265
- sql = "{sql} like '%%%%' || {sql} || '%%%%'".format(sql=sql)
263
+ sql = "TRANSLATE(UPPER(%s), 'Ё ', 'Е')"
264
+ sql = "{sql} like '%%%%' || {sql} || '%%%%'".format(sql=sql)
266
265
 
267
- return sql % (lhs, rhs), lhs_params + rhs_params
266
+ return sql % (lhs, rhs), lhs_params + rhs_params
@@ -1,5 +1,5 @@
1
- from django.conf.urls import (
2
- url,
1
+ from django.urls import (
2
+ re_path,
3
3
  )
4
4
  from django.views.generic import (
5
5
  TemplateView,
@@ -8,7 +8,7 @@ from django.views.generic import (
8
8
 
9
9
  def register_urlpatterns():
10
10
  urlpatterns = [
11
- url(
11
+ re_path(
12
12
  r'^atcfs_unavailable/$',
13
13
  TemplateView.as_view(template_name='atcfs_unavailable.html'),
14
14
  name='atcfs_unavailable'
@@ -11,7 +11,7 @@ from typing import (
11
11
  )
12
12
 
13
13
  from django.utils.encoding import (
14
- smart_text,
14
+ smart_str,
15
15
  )
16
16
  from packaging.version import (
17
17
  Version,
@@ -101,7 +101,7 @@ class WebEduLogger(getLoggerClass()):
101
101
  exc_info = sys.exc_info()
102
102
 
103
103
  session_info = get_session_info(request)
104
- msg = f'{session_info}{smart_text(msg)}'
104
+ msg = f'{session_info}{smart_str(msg)}'
105
105
 
106
106
  record = self.makeRecord(self.name, level, fn, lno, msg, args, exc_info, func, extra, sinfo)
107
107
  self.handle(record)
@@ -17,14 +17,14 @@ from django.db.transaction import (
17
17
  atomic,
18
18
  )
19
19
  from django.utils.encoding import (
20
- force_text,
20
+ force_str,
21
21
  )
22
+
22
23
  from m3.actions import (
23
24
  Action,
24
25
  ActionPack,
25
26
  ControllerCache,
26
27
  )
27
-
28
28
  from objectpack.exceptions import (
29
29
  ValidationError as ObjectPackValidationError,
30
30
  )
@@ -179,7 +179,7 @@ class ModelProxyValidationMixin:
179
179
  # объект будет создан при сохранении составной
180
180
  # модели.
181
181
  field = self._meta.get_field(full_field_name)
182
- if force_text(field.error_messages['null']) in messages:
182
+ if force_str(field.error_messages['null']) in messages:
183
183
  messages.remove(field.error_messages['null'])
184
184
  if not messages:
185
185
  continue
@@ -50,9 +50,7 @@ class DeleteCheck:
50
50
  #: :param related_objects: Словарь, сопоставляющий удаляемые
51
51
  #: и зависимые объекты.
52
52
  #: :type related_objects: collections.defaultdict
53
- collect_implicit = Signal(
54
- providing_args=['objects_to_delete', 'related_objects']
55
- )
53
+ collect_implicit = Signal()
56
54
 
57
55
  def _get_message(self, objects):
58
56
  """Возвращает сообщение в правильном склонении."""
@@ -17,8 +17,9 @@ from django.db.models.fields.reverse_related import (
17
17
  OneToOneRel,
18
18
  )
19
19
  from django.utils.encoding import (
20
- force_text,
20
+ force_str,
21
21
  )
22
+
22
23
  from m3_django_compat import (
23
24
  ModelOptions,
24
25
  get_related,
@@ -252,11 +253,11 @@ class ColumnDescriptor:
252
253
 
253
254
  @property
254
255
  def accessor_name(self):
255
- return force_text(_get_accessor_name(self.field))
256
+ return force_str(_get_accessor_name(self.field))
256
257
 
257
258
  @property
258
259
  def lookup(self):
259
- return force_text(self.field.name)
260
+ return force_str(self.field.name)
260
261
 
261
262
  @property
262
263
  def full_accessor_name(self):
@@ -311,7 +312,7 @@ class ColumnDescriptor:
311
312
  else:
312
313
  result = self.field.verbose_name
313
314
 
314
- return force_text(result)
315
+ return force_str(result)
315
316
 
316
317
  def get_full_title(self, delimiter=' → '):
317
318
  """Возвращает полное наименование с учетом иерархии.
@@ -521,13 +522,13 @@ class _ModelDataSourceInfo:
521
522
  """Внутрисистемное имя источника данных."""
522
523
  result = '.'.join((self._model.app_label, self._model.model_name))
523
524
 
524
- return force_text(result)
525
+ return force_str(result)
525
526
 
526
527
  @cached_property
527
528
  def title(self):
528
529
  """Отображаемое пользователю наименование источника данных."""
529
530
  result = getattr(self.model, '_meta').verbose_name
530
- return force_text(result)
531
+ return force_str(result)
531
532
 
532
533
 
533
534
  class ModelDataSourceParams(_ModelDataSourceInfo):
@@ -32,15 +32,16 @@ from django.forms.fields import (
32
32
  BooleanField,
33
33
  )
34
34
  from django.utils.encoding import (
35
- force_text,
36
- )
37
- from m3.actions.exceptions import (
38
- ApplicationLogicException,
35
+ force_str,
39
36
  )
40
37
  from xlsxwriter import (
41
38
  Workbook,
42
39
  )
43
40
 
41
+ from m3.actions.exceptions import (
42
+ ApplicationLogicException,
43
+ )
44
+
44
45
  from educommon.report.constructor import (
45
46
  constants,
46
47
  )
@@ -898,7 +899,7 @@ class DataLoader:
898
899
  def _get_field_display(field, field_value):
899
900
  for value, name in field.flatchoices:
900
901
  if value == field_value:
901
- return force_text(name, strings_only=True)
902
+ return force_str(name, strings_only=True)
902
903
 
903
904
  @staticmethod
904
905
  def _get_object_data(obj, attr_name, nested):
@@ -6,18 +6,19 @@ from django import (
6
6
  from django.conf import (
7
7
  settings,
8
8
  )
9
- from django.conf.urls import (
10
- url,
9
+ from django.urls import (
10
+ re_path,
11
11
  )
12
+ from sendfile import (
13
+ sendfile,
14
+ )
15
+
12
16
  from m3 import (
13
17
  M3JSONEncoder,
14
18
  )
15
19
  from m3_django_compat import (
16
20
  is_authenticated,
17
21
  )
18
- from sendfile import (
19
- sendfile,
20
- )
21
22
 
22
23
 
23
24
  def check_autorization(request, path):
@@ -40,5 +41,5 @@ def check_autorization(request, path):
40
41
 
41
42
 
42
43
  urlpatterns = [
43
- url(r'^media/(?P<path>.*)$', check_autorization)
44
+ re_path(r'^media/(?P<path>.*)$', check_autorization)
44
45
  ]
@@ -24,7 +24,7 @@ from django.db import (
24
24
  connections,
25
25
  )
26
26
  from django.utils.encoding import (
27
- force_text,
27
+ force_str,
28
28
  )
29
29
 
30
30
 
@@ -70,7 +70,7 @@ def call_custom_command(command_name, *args, **options):
70
70
  parser.add_argument(com, action='store')
71
71
  else:
72
72
  parser.add_argument(com)
73
- defaults = parser.parse_args(args=[force_text(a) for a in args])
73
+ defaults = parser.parse_args(args=[force_str(a) for a in args])
74
74
  defaults = dict(defaults._get_kwargs(), **arg_options)
75
75
  # Move positional args out of options to mimic legacy optparse
76
76
  args = defaults.pop('args', ())
@@ -4,8 +4,8 @@
4
4
  # нормальной установки обновлений.
5
5
 
6
6
  [version]
7
- BRANCH = tags/3.9.2^0
8
- VERSION = 3.9.2
9
- REVISION = da80b4e265b466aafffa36b94db108b4b01fae9f
10
- VERSION_DATE = 06.03.2024
11
- REVISION_DATE = 06.03.2024
7
+ BRANCH = tags/3.9.3
8
+ VERSION = 3.9.3
9
+ REVISION = 9c15127d6248360b22215f4eb89ffb05a8ab16b5
10
+ VERSION_DATE = 18.03.2024
11
+ REVISION_DATE = 18.03.2024
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: educommon
3
- Version: 3.9.2
3
+ Version: 3.9.3
4
4
  Summary: Общая кодовая база для проектов БЦ Образование
5
5
  Home-page: https://stash.bars-open.ru/projects/EDUBASE/repos/educommon
6
6
  Author: BARS Group
@@ -17,7 +17,8 @@ Classifier: Programming Language :: Python :: 3.8
17
17
  Classifier: Programming Language :: Python :: 3.9
18
18
  Classifier: Framework :: Django :: 2.2
19
19
  Classifier: Framework :: Django :: 3.0
20
- Requires-Dist: Django<3.1,>=2.2
20
+ Requires-Dist: packaging<24,>=21.3
21
+ Requires-Dist: Django<3.2,>=2.2
21
22
  Requires-Dist: django-mptt
22
23
  Requires-Dist: python-dateutil
23
24
  Requires-Dist: termcolor
@@ -1,4 +1,5 @@
1
- Django<3.1,>=2.2
1
+ packaging<24,>=21.3
2
+ Django<3.2,>=2.2
2
3
  django-mptt
3
4
  python-dateutil
4
5
  termcolor
File without changes
File without changes
File without changes
File without changes