educommon 3.12.0__tar.gz → 3.13.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {educommon-3.12.0/src/educommon.egg-info → educommon-3.13.0}/PKG-INFO +2 -4
- {educommon-3.12.0 → educommon-3.13.0}/setup.py +0 -2
- educommon-3.13.0/src/educommon/django/db/signals.py +152 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/version.conf +5 -5
- {educommon-3.12.0 → educommon-3.13.0/src/educommon.egg-info}/PKG-INFO +2 -4
- educommon-3.12.0/src/educommon/django/db/signals.py +0 -7
- {educommon-3.12.0 → educommon-3.13.0}/MANIFEST.in +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/README.rst +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/UPGRADE.rst +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/setup.cfg +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/README.rst +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/apps.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/static/edu_about/barsgroup.png +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/ui/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/ui/about-window.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/ui/actions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/ui/common-tab.html +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/ui/packages-tab.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/ui/postgresql-extensions-tab.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/ui/ui.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/about/utils.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/actions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/apps.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/consts.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/exceptions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/helpers.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/locker.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/migrations/0001_initial.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/migrations/0002_task_type_and_status_data.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/migrations/0003_alter_runningtask_options.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/migrations/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/models.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/tasks.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/templates/ui-js/async-task-list-win.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/templates/ui-js/async-task-revoke.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/templates/ui-js/async-task-view-win.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/ui.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/apps.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/exceptions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/fixtures/initial_data.json +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/locks.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/migrations/0001_initial.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/migrations/0002_load_initial_data.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/migrations/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/models.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/statuses.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/tasks.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/actions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/app_meta.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/apps.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/constants.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/error_log/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/error_log/actions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/helpers.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/management/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/management/commands/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/management/commands/reinstall_audit_log.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/middleware.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0001_initial.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0002_install_audit_log.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0003_logproxy.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0004_reinstall_audit_log.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0005_postgresql_error.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0006_auto_20200806_1707.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0007_create_selective_tables_function.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0008_table_logged.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0009_reinstall_audit_log.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/models.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/permissions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/proxies.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/routers.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/sql/configure_audit_log.sql +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/sql/install_audit_log.sql +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/ui.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/utils/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/utils/operations.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/actions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/app_meta.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/backends/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/backends/base.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/backends/caching.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/backends/simple.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/checker.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/config.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/constants.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/management/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/management/commands/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/management/commands/rbac.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/manager.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/migrations/0001_initial.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/migrations/0002_model_modifier_metaclass_fix.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/migrations/0003_permission_hidden.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/migrations/0004_auto_20171024_1245.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/migrations/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/models.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/permissions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/templates/rbac/role-add-window.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/templates/rbac/role-edit-window.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/templates/rbac/roles-list-window.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/templates/rbac/roles-view-list-window.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/ui.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/utils.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/validators.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/actions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/app_meta.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/checkers.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/const.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/migrations/0001_initial.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/migrations/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/models.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/static/simple_auth/simple_auth.css +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/templates/simple_auth/change_reset_password_page.html +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/templates/simple_auth/email/reset_password.html +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/templates/simple_auth/login_page.html +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/templates/simple_auth/reset_password_page.html +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/ui.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/validators.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/actions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/app_meta.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/base.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/catalogs.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/actions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/apps.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/migrations/0001_initial.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/migrations/0002_add_contingent_model_deleted.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/migrations/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/model_views.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/models.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/observer.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/plugin_meta.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/storage.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/utils.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/json_data/icao.json +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/json_data/okogu.json +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/json_data/oksm.json +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/fields.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/migration/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/migration/operations.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/mixins/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/mixins/date_interval.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/mixins/validation.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/model_view/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/model_view/table-view.html +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/models.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/observer.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/README.md +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/const.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/management/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/management/commands/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/management/commands/apply_partitioning.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/management/commands/clear_table.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/management/commands/split_table.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/partitioning.sql +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/partitioning_set_search_path.sql +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/partitioning/triggers.sql +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/routers.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/utils.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/validators/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/db/validators/simple.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/README.rst +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/api.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/app_meta.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/exceptions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/management/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/management/commands/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/management/commands/atcfs_migrate.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/models.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/monkey_patching.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/settings.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/storage.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/django/storages/atcfs/templates/atcfs_unavailable.html +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/extjs/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/extjs/fields/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/extjs/fields/input_params.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/XLSReader.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/api.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/constants.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/loggers.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/proxy.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/proxy_import.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/refactoring-notes.txt +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/report.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/test_file.xls +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/ui.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/importer/validators.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/integration_entities/README.rst +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/integration_entities/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/integration_entities/consts.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/integration_entities/entities.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/integration_entities/enums.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/integration_entities/helpers.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/integration_entities/mixins.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ioc/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/logger/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/logger/app_settings.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/logger/apps.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/logger/consts.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/logger/formatters.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/logger/helpers.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/logger/loggers.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/logger/records.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/delete_check/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/delete_check/cancel-confirm-window.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/delete_check/listeners.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/delete_check/mixins.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/delete_check/related-objects-window.html +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/delete_check/signals.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/delete_check/ui.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/listeners/delete_check/utils.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/extensions/ui.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/m3/transaction_context.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/actions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/apps.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/filters.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/templates/base-grid-window.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/templates/filter-panel.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/templates/grid-panel.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/templates/multiSelectWindow.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/templates/multiselect-page-fix.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/templates/relations-check-mixin-template.html +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/objectpack/ui.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/actions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/README.rst +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/app_meta.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/apps.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/base.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/builders/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/builders/excel/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/builders/excel/_base.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/builders/excel/_header.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/builders/excel/constants.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/builders/excel/product.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/builders/excel/with_merged_cells.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/config.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/constants.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/editor/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/editor/actions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/editor/edit-window.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/editor/list-window.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/editor/ui.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/exceptions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0001_initial.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0002_report_filters.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0003_reportfilter_exclude.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0004_reportfilter_fields.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0005_reportcolumn_visible.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0006_reportsorting.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0007_include_available_units.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0008_auto_20170407_1318.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0009_auto_20180405_0642.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/0010_add_aggregate_fields.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/migrations/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/mixins.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/models.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/plugin_meta.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/registries.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/utils.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/constructor/validators.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/reporter.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/report/utils.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/rest/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/rest/actions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/rest/context.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/rest/controllers.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/rest/misc.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/rest/mixins.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/secure_media/README.rst +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/secure_media/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/secure_media/app_meta.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/thread_data.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/caching.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/conversion.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/crypto.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/date.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/db/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/db/postgresql.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/fonts/Arial.ttf +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/fonts/Calibri.ttf +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/fonts/Tahoma.ttf +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/fonts/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/licence/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/licence/converters.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/misc.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/object_grid.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/patches.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/phone_number/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/phone_number/enums.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/phone_number/modelfields.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/phone_number/phone_number.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/phone_number/validators.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/plugins.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/registry.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/seqtools.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/serializer.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/storage.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/system.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/system_app/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/system_app/management/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/system_app/management/commands/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/system_app/management/commands/delete_objects.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/system_app/templatetags/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/system_app/templatetags/educommon.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/ui.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/xml/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/xml/catalog.json +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/xml/resolver.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/xml/saml-schema-assertion-2.0.xsd +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/xml/saml-schema-protocol-2.0.xsd +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/xml/xenc-schema.xsd +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/utils/xml/xmldsig-core-schema.xsd +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/README.rst +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/actions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/app_meta.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/base.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0001_initial.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0002_auto_20160628_1334.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0003_add_fields_to_smev_logs.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0004_auto_20160727_1600.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0005_auto_20161130_1615.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0006_auto_20170327_1027.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0007_auto_20180607_1040.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0008_auto_20180713_1445.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/0009_auto_20201130_1553.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/migrations/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/models.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/provider.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/report.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/smev/__init__.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/smev/applications.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/smev/exceptions.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/templates/report/smev_logs.xlsx +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/templates/ui-js/smev-logs-list-window.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/templates/ui-js/smev-logs-report-setting-window.js +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/ui.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon/ws_log/utils.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon.egg-info/SOURCES.txt +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon.egg-info/dependency_links.txt +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon.egg-info/requires.txt +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/src/educommon.egg-info/top_level.txt +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/tests/test_contingent_plugin_utils.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/tests/test_dates_splitter.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/tests/test_delete_check.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/tests/test_delete_objects.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/tests/test_django_db_utils.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/tests/test_interval_mixins.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/tests/test_patches.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/tests/test_personal_data_fields.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/tests/test_phone_number.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/tests/test_report.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/tests/test_service_db_router.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/tests/test_utils.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/tests/test_utils_plugins.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/tests/test_validators.py +0 -0
- {educommon-3.12.0 → educommon-3.13.0}/tests/tests_rbac.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: educommon
|
3
|
-
Version: 3.
|
3
|
+
Version: 3.13.0
|
4
4
|
Summary: Общая кодовая база для проектов БЦ Образование
|
5
5
|
Home-page: https://stash.bars-open.ru/projects/EDUBASE/repos/educommon
|
6
6
|
Author: BARS Group
|
@@ -12,8 +12,6 @@ Classifier: Natural Language :: English
|
|
12
12
|
Classifier: Operating System :: OS Independent
|
13
13
|
Classifier: Development Status :: 5 - Production/Stable
|
14
14
|
Classifier: Programming Language :: Python
|
15
|
-
Classifier: Programming Language :: Python :: 3.7
|
16
|
-
Classifier: Programming Language :: Python :: 3.8
|
17
15
|
Classifier: Programming Language :: Python :: 3.9
|
18
16
|
Classifier: Framework :: Django :: 2.2
|
19
17
|
Classifier: Framework :: Django :: 3.0
|
@@ -30,8 +30,6 @@ def main():
|
|
30
30
|
'Operating System :: OS Independent',
|
31
31
|
'Development Status :: 5 - Production/Stable',
|
32
32
|
'Programming Language :: Python',
|
33
|
-
'Programming Language :: Python :: 3.7',
|
34
|
-
'Programming Language :: Python :: 3.8',
|
35
33
|
'Programming Language :: Python :: 3.9',
|
36
34
|
'Framework :: Django :: 2.2',
|
37
35
|
'Framework :: Django :: 3.0',
|
@@ -0,0 +1,152 @@
|
|
1
|
+
from typing import (
|
2
|
+
Callable,
|
3
|
+
Optional,
|
4
|
+
)
|
5
|
+
|
6
|
+
from django.db.models import (
|
7
|
+
Model,
|
8
|
+
)
|
9
|
+
from django.dispatch.dispatcher import (
|
10
|
+
Signal,
|
11
|
+
)
|
12
|
+
from educommon import (
|
13
|
+
logger,
|
14
|
+
)
|
15
|
+
|
16
|
+
|
17
|
+
class BaseBeforeMigrateHandler:
|
18
|
+
"""
|
19
|
+
Базовый обработчик сигнала before_handle_migrate_signal.
|
20
|
+
|
21
|
+
Должен быть унаследован и инстанс наследника регистрироваться
|
22
|
+
как обработчик сигнала.
|
23
|
+
"""
|
24
|
+
|
25
|
+
def _is_accessing_non_migrating_databases(self, migrating_database: str) -> bool:
|
26
|
+
for model_cls in self._get_working_models():
|
27
|
+
db = self._get_model_db(model_cls)
|
28
|
+
if db != migrating_database:
|
29
|
+
return True
|
30
|
+
|
31
|
+
return False
|
32
|
+
|
33
|
+
def _get_model_db(self, model_cls: type[Model]) -> str:
|
34
|
+
"""
|
35
|
+
Возвращает псевдоним базы данных, к которой пойдет запрос
|
36
|
+
по данной модели.
|
37
|
+
"""
|
38
|
+
|
39
|
+
return model_cls.objects.all().db
|
40
|
+
|
41
|
+
def _get_migrating_database(self, sender) -> str:
|
42
|
+
"""Возвращает псевдоним базы данных, с которой работает миграция."""
|
43
|
+
|
44
|
+
return sender.database
|
45
|
+
|
46
|
+
def _get_working_models(self) -> set[type[Model]]:
|
47
|
+
"""Модели, с которым будет работать обработчик сигнала."""
|
48
|
+
|
49
|
+
raise NotImplementedError()
|
50
|
+
|
51
|
+
def handler(self, sender, *args, **kwargs):
|
52
|
+
"""Непосредственный обработчик сигнала."""
|
53
|
+
|
54
|
+
raise NotImplementedError()
|
55
|
+
|
56
|
+
def __call__(self, sender, *args, **kwargs):
|
57
|
+
migrating_database = self._get_migrating_database(sender)
|
58
|
+
if self._is_accessing_non_migrating_databases(migrating_database):
|
59
|
+
logger.warning('Предотвращена попытка доступа к базе данных, по которой не производится миграция')
|
60
|
+
return
|
61
|
+
|
62
|
+
return self.handler(sender, *args, **kwargs)
|
63
|
+
|
64
|
+
|
65
|
+
class BaseAfterMigrateHandler:
|
66
|
+
"""
|
67
|
+
Базовый обработчик сигнала after_handle_migrate_signal.
|
68
|
+
|
69
|
+
Должен быть унаследован и инстанс наследника регистрироваться
|
70
|
+
как обработчик сигнала.
|
71
|
+
"""
|
72
|
+
|
73
|
+
def _is_accessing_non_migrating_databases(self, migrating_database: str) -> bool:
|
74
|
+
for model_cls in self._get_working_models():
|
75
|
+
db = self._get_model_db(model_cls)
|
76
|
+
if db != migrating_database:
|
77
|
+
return True
|
78
|
+
|
79
|
+
return False
|
80
|
+
|
81
|
+
def _get_model_db(self, model_cls: type[Model]) -> str:
|
82
|
+
"""
|
83
|
+
Возвращает псевдоним базы данных, к которой пойдет запрос
|
84
|
+
по данной модели.
|
85
|
+
"""
|
86
|
+
|
87
|
+
return model_cls.objects.all().db
|
88
|
+
|
89
|
+
def _get_migrating_database(self, sender) -> str:
|
90
|
+
"""Возвращает псевдоним базы данных, с которой работает миграция."""
|
91
|
+
|
92
|
+
return sender.database
|
93
|
+
|
94
|
+
def _get_working_models(self) -> set[type[Model]]:
|
95
|
+
"""Модели, с которым будет работать обработчик сигнала."""
|
96
|
+
|
97
|
+
raise NotImplementedError()
|
98
|
+
|
99
|
+
def handler(self, sender, *args, **kwargs):
|
100
|
+
"""Непосредственный обработчик сигнала."""
|
101
|
+
|
102
|
+
raise NotImplementedError()
|
103
|
+
|
104
|
+
def __call__(self, sender, *args, **kwargs):
|
105
|
+
migrating_database = self._get_migrating_database(sender)
|
106
|
+
if self._is_accessing_non_migrating_databases(migrating_database):
|
107
|
+
logger.warning('Предотвращена попытка доступа к базе данных, по которой не производится миграция')
|
108
|
+
return
|
109
|
+
|
110
|
+
return self.handler(sender, *args, **kwargs)
|
111
|
+
|
112
|
+
|
113
|
+
class BeforeHandleMigrateSignal(Signal):
|
114
|
+
_handler_base_class = BaseBeforeMigrateHandler
|
115
|
+
|
116
|
+
def connect(
|
117
|
+
self,
|
118
|
+
receiver: Callable,
|
119
|
+
sender: Optional = None,
|
120
|
+
weak: bool = True,
|
121
|
+
dispatch_uid: Optional[str] = None,
|
122
|
+
) -> None:
|
123
|
+
if not isinstance(receiver, self._handler_base_class):
|
124
|
+
logger.warning(
|
125
|
+
f'Обработчик сигнала before_handle_migrate_signal {receiver} не зарегистрирован, поскольку '
|
126
|
+
f'он не является подклассом {self._handler_base_class.__name__}'
|
127
|
+
)
|
128
|
+
|
129
|
+
return super().connect(receiver, sender, weak, dispatch_uid)
|
130
|
+
|
131
|
+
|
132
|
+
class AfterHandleMigrateSignal(Signal):
|
133
|
+
_handler_base_class = BaseBeforeMigrateHandler
|
134
|
+
|
135
|
+
def connect(
|
136
|
+
self,
|
137
|
+
receiver: Callable,
|
138
|
+
sender: Optional = None,
|
139
|
+
weak: bool = True,
|
140
|
+
dispatch_uid: Optional[str] = None,
|
141
|
+
) -> None:
|
142
|
+
if not isinstance(receiver, self._handler_base_class):
|
143
|
+
logger.warning(
|
144
|
+
f'Обработчик сигнала after_handle_migrate_signal {receiver} не зарегистрирован, поскольку '
|
145
|
+
f'он не является подклассом {self._handler_base_class.__name__}'
|
146
|
+
)
|
147
|
+
|
148
|
+
return super().connect(receiver, sender, weak, dispatch_uid)
|
149
|
+
|
150
|
+
|
151
|
+
before_handle_migrate_signal = BeforeHandleMigrateSignal()
|
152
|
+
after_handle_migrate_signal = AfterHandleMigrateSignal()
|
@@ -4,8 +4,8 @@
|
|
4
4
|
# нормальной установки обновлений.
|
5
5
|
|
6
6
|
[version]
|
7
|
-
BRANCH = tags/3.
|
8
|
-
VERSION = 3.
|
9
|
-
REVISION =
|
10
|
-
VERSION_DATE =
|
11
|
-
REVISION_DATE =
|
7
|
+
BRANCH = tags/3.13.0
|
8
|
+
VERSION = 3.13.0
|
9
|
+
REVISION = 63072e48f15fed47a1f135ca1fe0e9bf3589c120
|
10
|
+
VERSION_DATE = 27.03.2025
|
11
|
+
REVISION_DATE = 27.03.2025
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: educommon
|
3
|
-
Version: 3.
|
3
|
+
Version: 3.13.0
|
4
4
|
Summary: Общая кодовая база для проектов БЦ Образование
|
5
5
|
Home-page: https://stash.bars-open.ru/projects/EDUBASE/repos/educommon
|
6
6
|
Author: BARS Group
|
@@ -12,8 +12,6 @@ Classifier: Natural Language :: English
|
|
12
12
|
Classifier: Operating System :: OS Independent
|
13
13
|
Classifier: Development Status :: 5 - Production/Stable
|
14
14
|
Classifier: Programming Language :: Python
|
15
|
-
Classifier: Programming Language :: Python :: 3.7
|
16
|
-
Classifier: Programming Language :: Python :: 3.8
|
17
15
|
Classifier: Programming Language :: Python :: 3.9
|
18
16
|
Classifier: Framework :: Django :: 2.2
|
19
17
|
Classifier: Framework :: Django :: 3.0
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_task/templates/ui-js/async-task-revoke.js
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/async_tasks/migrations/0002_load_initial_data.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/management/commands/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0002_install_audit_log.py
RENAMED
File without changes
|
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0004_reinstall_audit_log.py
RENAMED
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0005_postgresql_error.py
RENAMED
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0006_auto_20200806_1707.py
RENAMED
File without changes
|
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0008_table_logged.py
RENAMED
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/audit_log/migrations/0009_reinstall_audit_log.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/management/commands/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/migrations/0003_permission_hidden.py
RENAMED
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/migrations/0004_auto_20171024_1245.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/templates/rbac/role-add-window.js
RENAMED
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/templates/rbac/role-edit-window.js
RENAMED
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/rbac/templates/rbac/roles-list-window.js
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/auth/simple_auth/migrations/0001_initial.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/model_views.py
RENAMED
File without changes
|
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/observer.py
RENAMED
File without changes
|
{educommon-3.12.0 → educommon-3.13.0}/src/educommon/contingent/contingent_plugin/plugin_meta.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|