educommon 3.15.0__tar.gz → 3.17.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {educommon-3.15.0 → educommon-3.17.0}/CHANGELOG.md +28 -0
- {educommon-3.15.0 → educommon-3.17.0}/PKG-INFO +1 -1
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/README.rst +29 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/actions.py +0 -5
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/management/commands/reinstall_audit_log.py +28 -16
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/utils/__init__.py +32 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon.egg-info/PKG-INFO +1 -1
- {educommon-3.15.0 → educommon-3.17.0}/CONDUCT.md +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/CONTRIBUTING.md +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/MANIFEST.in +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/README.md +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/pyproject.toml +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/setup.cfg +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/README.rst +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/apps.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/static/edu_about/barsgroup.png +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/ui/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/ui/about-window.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/ui/actions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/ui/common-tab.html +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/ui/packages-tab.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/ui/postgresql-extensions-tab.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/ui/ui.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/about/utils.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/actions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/apps.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/consts.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/exceptions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/helpers.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/locker.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/migrations/0001_initial.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/migrations/0002_task_type_and_status_data.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/migrations/0003_alter_runningtask_options.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/migrations/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/models.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/tasks.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/templates/ui-js/async-task-list-win.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/templates/ui-js/async-task-revoke.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/templates/ui-js/async-task-view-win.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_task/ui.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/apps.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/exceptions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/fixtures/initial_data.json +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/locks.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/migrations/0001_initial.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/migrations/0002_load_initial_data.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/migrations/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/models.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/statuses.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/async_tasks/tasks.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/app_meta.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/apps.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/constants.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/error_log/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/error_log/actions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/helpers.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/management/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/management/commands/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/middleware.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0001_initial.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0002_install_audit_log.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0003_logproxy.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0004_reinstall_audit_log.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0005_postgresql_error.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0006_auto_20200806_1707.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0007_create_selective_tables_function.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0008_table_logged.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0009_reinstall_audit_log.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/models.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/permissions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/proxies.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/routers.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/sql/configure_audit_log.sql +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/sql/install_audit_log.sql +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/ui.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/utils/operations.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/actions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/app_meta.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/backends/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/backends/base.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/backends/caching.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/backends/simple.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/checker.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/config.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/constants.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/management/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/management/commands/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/management/commands/rbac.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/manager.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/migrations/0001_initial.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/migrations/0002_model_modifier_metaclass_fix.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/migrations/0003_permission_hidden.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/migrations/0004_auto_20171024_1245.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/migrations/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/models.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/permissions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/templates/rbac/role-add-window.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/templates/rbac/role-edit-window.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/templates/rbac/roles-list-window.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/templates/rbac/roles-view-list-window.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/ui.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/utils.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/validators.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/actions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/app_meta.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/checkers.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/const.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/migrations/0001_initial.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/migrations/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/models.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/static/simple_auth/simple_auth.css +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/templates/simple_auth/change_reset_password_page.html +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/templates/simple_auth/email/reset_password.html +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/templates/simple_auth/login_page.html +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/templates/simple_auth/reset_password_page.html +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/ui.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/simple_auth/validators.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/actions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/app_meta.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/base.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/catalogs.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/actions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/apps.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/migrations/0001_initial.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/migrations/0002_add_contingent_model_deleted.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/migrations/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/model_views.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/models.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/observer.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/plugin_meta.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/storage.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/utils.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/json_data/icao.json +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/json_data/okogu.json +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/json_data/oksm.json +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/fields.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/migration/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/migration/operations.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/mixins/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/mixins/date_interval.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/mixins/validation.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/model_view/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/model_view/table-view.html +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/models.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/observer.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/README.md +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/const.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/management/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/management/commands/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/management/commands/apply_partitioning.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/management/commands/clear_table.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/management/commands/split_table.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/partitioning.sql +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/partitioning_set_search_path.sql +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/partitioning/triggers.sql +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/routers.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/signals.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/utils.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/validators/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/db/validators/simple.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/README.rst +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/api.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/app_meta.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/exceptions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/management/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/management/commands/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/management/commands/atcfs_migrate.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/models.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/monkey_patching.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/settings.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/storage.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/django/storages/atcfs/templates/atcfs_unavailable.html +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/extjs/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/extjs/fields/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/extjs/fields/input_params.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/XLSReader.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/api.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/constants.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/loggers.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/proxy.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/proxy_import.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/refactoring-notes.txt +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/report.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/test_file.xls +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/ui.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/importer/validators.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/integration_entities/README.rst +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/integration_entities/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/integration_entities/consts.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/integration_entities/entities.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/integration_entities/enums.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/integration_entities/helpers.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/integration_entities/mixins.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ioc/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/logger/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/logger/app_settings.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/logger/apps.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/logger/consts.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/logger/formatters.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/logger/helpers.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/logger/loggers.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/logger/records.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/delete_check/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/delete_check/cancel-confirm-window.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/delete_check/listeners.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/delete_check/mixins.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/delete_check/related-objects-window.html +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/delete_check/signals.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/delete_check/ui.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/listeners/delete_check/utils.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/extensions/ui.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/m3/transaction_context.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/actions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/apps.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/filters.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/templates/base-grid-window.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/templates/filter-panel.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/templates/grid-panel.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/templates/multiSelectWindow.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/templates/multiselect-page-fix.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/templates/relations-check-mixin-template.html +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/objectpack/ui.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/actions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/README.rst +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/app_meta.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/apps.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/base.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/builders/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/builders/excel/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/builders/excel/_base.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/builders/excel/_header.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/builders/excel/constants.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/builders/excel/product.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/builders/excel/with_merged_cells.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/config.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/constants.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/editor/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/editor/actions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/editor/edit-window.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/editor/list-window.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/editor/ui.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/exceptions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0001_initial.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0002_report_filters.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0003_reportfilter_exclude.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0004_reportfilter_fields.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0005_reportcolumn_visible.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0006_reportsorting.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0007_include_available_units.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0008_auto_20170407_1318.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0009_auto_20180405_0642.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/0010_add_aggregate_fields.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/migrations/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/mixins.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/models.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/plugin_meta.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/registries.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/utils.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/constructor/validators.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/reporter.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/report/utils.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/rest/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/rest/actions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/rest/context.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/rest/controllers.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/rest/misc.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/rest/mixins.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/secure_media/README.rst +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/secure_media/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/secure_media/app_meta.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/thread_data.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/caching.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/conversion.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/crypto.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/date.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/db/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/db/postgresql.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/fonts/Arial.ttf +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/fonts/Calibri.ttf +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/fonts/Tahoma.ttf +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/fonts/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/licence/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/licence/converters.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/misc.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/object_grid.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/phone_number/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/phone_number/enums.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/phone_number/modelfields.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/phone_number/phone_number.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/phone_number/validators.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/plugins.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/registry.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/seqtools.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/serializer.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/storage.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/system.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/system_app/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/system_app/management/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/system_app/management/commands/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/system_app/management/commands/delete_objects.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/system_app/templatetags/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/system_app/templatetags/educommon.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/ui.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/xml/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/xml/catalog.json +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/xml/resolver.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/xml/saml-schema-assertion-2.0.xsd +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/xml/saml-schema-protocol-2.0.xsd +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/xml/xenc-schema.xsd +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/utils/xml/xmldsig-core-schema.xsd +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/README.rst +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/actions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/app_meta.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/base.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0001_initial.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0002_auto_20160628_1334.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0003_add_fields_to_smev_logs.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0004_auto_20160727_1600.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0005_auto_20161130_1615.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0006_auto_20170327_1027.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0007_auto_20180607_1040.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0008_auto_20180713_1445.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/0009_auto_20201130_1553.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/migrations/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/models.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/provider.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/report.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/smev/__init__.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/smev/applications.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/smev/exceptions.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/templates/report/smev_logs.xlsx +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/templates/ui-js/smev-logs-list-window.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/templates/ui-js/smev-logs-report-setting-window.js +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/ui.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon/ws_log/utils.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon.egg-info/SOURCES.txt +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon.egg-info/dependency_links.txt +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon.egg-info/requires.txt +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/src/educommon.egg-info/top_level.txt +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/tests/test_contingent_plugin_utils.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/tests/test_dates_splitter.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/tests/test_delete_check.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/tests/test_delete_objects.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/tests/test_django_db_utils.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/tests/test_interval_mixins.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/tests/test_personal_data_fields.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/tests/test_phone_number.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/tests/test_report.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/tests/test_service_db_router.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/tests/test_utils.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/tests/test_utils_plugins.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/tests/test_validators.py +0 -0
- {educommon-3.15.0 → educommon-3.17.0}/tests/tests_rbac.py +0 -0
@@ -28,6 +28,34 @@
|
|
28
28
|
### Удалено
|
29
29
|
|
30
30
|
|
31
|
+
# [3.17.0] - 2025-05-28
|
32
|
+
|
33
|
+
Добавлена проверка конфликтующих таблиц которые должны логироваться, но находятся в сервисных приложениях.
|
34
|
+
|
35
|
+
### Добавлено
|
36
|
+
|
37
|
+
- [EDUSCHL-23590](https://jira.bars.group/browse/EDUSCHL-23590)
|
38
|
+
MINOR Добавлена функция get_table_names_for_app_labels для получения множества с именами таблиц для указанных приложений.
|
39
|
+
Добавлена проверка конфликтующих таблиц которые должны логироваться, но находятся в сервисных приложениях.
|
40
|
+
|
41
|
+
|
42
|
+
# [3.16.0] - 2025-05-15
|
43
|
+
|
44
|
+
Добавлена настройка передачи дополнительных SQL файлов для выполнения в МК reinstall_audit_log.
|
45
|
+
|
46
|
+
### Добавлено
|
47
|
+
|
48
|
+
- [EDUSCHL-23389](https://jira.bars.group/browse/EDUSCHL-23389)
|
49
|
+
MINOR Добавлена настройка AUDIT_LOG_EXTENSION_SCRIPTS для хранения путей к дополнительным SQL файлам,
|
50
|
+
которые будут выполнены в МК reinstall_audit_log.
|
51
|
+
Явное указание настройки в продукте не обязательно. Пример заполнения указан в audit_log/README.rst.
|
52
|
+
|
53
|
+
### Удалено
|
54
|
+
|
55
|
+
- [EDUSCHL-23389](https://jira.bars.group/browse/EDUSCHL-23389)
|
56
|
+
MINOR Удален столбец имитации в AuditLogPack
|
57
|
+
|
58
|
+
|
31
59
|
## [3.15.0] - 2025-04-29
|
32
60
|
|
33
61
|
Добавлен фильтр, позволяющий работать с датой в формате d.m.Y, m.Y, Y.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: educommon
|
3
|
-
Version: 3.
|
3
|
+
Version: 3.17.0
|
4
4
|
Summary: Общая кодовая база для проектов БЦ Образование
|
5
5
|
Author-email: BARS Group <education_dev@bars-open.ru>
|
6
6
|
Project-URL: Homepage, https://stash.bars-open.ru/projects/EDUBASE/repos/educommon/browse
|
@@ -62,3 +62,32 @@
|
|
62
62
|
в request уже был определен пользователь.
|
63
63
|
|
64
64
|
4. Создать и выполнить миграции.
|
65
|
+
|
66
|
+
Расширение
|
67
|
+
--------------
|
68
|
+
|
69
|
+
Для реализации локальных расширений логирования продукта на уровне БД реализовано применение настройки
|
70
|
+
AUDIT_LOG_EXTENSION_SCRIPTS при выполнении МК reinstall_audit_log.
|
71
|
+
|
72
|
+
Настройка может содержать пути до SQL-скриптов, которые будут выполняться помимо основного скрипта install_audit_log.sql.
|
73
|
+
|
74
|
+
Примером заполнения настройки может послужить установка через AppConfig приложения,
|
75
|
+
в котором хранится необходимый SQL файл.
|
76
|
+
|
77
|
+
Например:
|
78
|
+
.. code-block:: python
|
79
|
+
|
80
|
+
class PluginAppConfig(AppConfig):
|
81
|
+
"""Конфигурация плагина."""
|
82
|
+
|
83
|
+
name = 'project.plugins.plugin'
|
84
|
+
label = 'plugin'
|
85
|
+
|
86
|
+
def ready(self):
|
87
|
+
"""Добавляет SQL скрипт в процесс установки audit_log."""
|
88
|
+
sql_files_dir = os.path.abspath(
|
89
|
+
os.path.join(os.path.dirname(__file__), 'sql')
|
90
|
+
)
|
91
|
+
|
92
|
+
sql_file_path = os.path.join(sql_files_dir, 'audit_log_extension.sql')
|
93
|
+
settings.AUDIT_LOG_EXTENSION_SCRIPTS += (sql_file_path,)
|
@@ -1,6 +1,9 @@
|
|
1
1
|
import codecs
|
2
2
|
import os
|
3
3
|
|
4
|
+
from django.conf import (
|
5
|
+
settings,
|
6
|
+
)
|
4
7
|
from django.core.management.base import (
|
5
8
|
BaseCommand,
|
6
9
|
)
|
@@ -31,19 +34,19 @@ class Command(BaseCommand):
|
|
31
34
|
Удаляет схему audit. В этой схеме не должно храниться никаких таблиц
|
32
35
|
с данными.
|
33
36
|
После удаления устанавливает audit_log заново.
|
37
|
+
Через настройки проекта возможна передача дополнительных sql файлов
|
38
|
+
для выполнения вместе с основным скриптом установки.
|
34
39
|
"""
|
35
40
|
|
36
41
|
help = 'Команда для переустановки audit_log.'
|
37
42
|
|
38
|
-
def add_arguments(self, parser):
|
43
|
+
def add_arguments(self, parser) -> None:
|
39
44
|
"""Добавление аргументов команды."""
|
40
|
-
(
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
help='Удалить записи из audit_log для неотслеживаемых таблиц',
|
46
|
-
),
|
45
|
+
parser.add_argument(
|
46
|
+
'--clear_audit_logs',
|
47
|
+
action='store_true',
|
48
|
+
default=False,
|
49
|
+
help='Удалить записи из audit_log для неотслеживаемых таблиц',
|
47
50
|
)
|
48
51
|
parser.add_argument(
|
49
52
|
'--chunk_size',
|
@@ -52,33 +55,42 @@ class Command(BaseCommand):
|
|
52
55
|
help='Кол-во единовременно удаляемых записей',
|
53
56
|
)
|
54
57
|
|
55
|
-
def _read_sql(self,
|
58
|
+
def _read_sql(self, sql_file_path: str) -> str:
|
56
59
|
"""Чтение SQL-кода из файла."""
|
57
|
-
sql_file_path = os.path.join(SQL_FILES_DIR, filename)
|
58
|
-
|
59
60
|
with codecs.open(sql_file_path, 'r', 'utf-8') as sql_file:
|
60
61
|
sql = sql_file.read()
|
61
62
|
|
62
|
-
|
63
|
+
file_name = os.path.basename(sql_file_path)
|
64
|
+
self.stdout.write(f'reading {file_name}..\n')
|
63
65
|
|
64
66
|
return sql
|
65
67
|
|
66
|
-
def _prepare_sql(self):
|
68
|
+
def _prepare_sql(self) -> list[str]:
|
67
69
|
"""Подготовка SQL-кода."""
|
68
70
|
params = get_db_connection_params()
|
69
71
|
params['lock_id'] = PG_LOCK_ID
|
70
72
|
|
71
73
|
self.stdout.write('preparing SQL-code..\n')
|
72
74
|
|
73
|
-
|
75
|
+
sql_files = [
|
76
|
+
os.path.join(SQL_FILES_DIR, INSTALL_AUDIT_LOG_SQL_FILE_NAME),
|
77
|
+
*getattr(settings, 'AUDIT_LOG_EXTENSION_SCRIPTS', [])
|
78
|
+
]
|
79
|
+
|
80
|
+
sql_scripts = []
|
81
|
+
for sql_file_path in sql_files:
|
82
|
+
sql_scripts.append(self._read_sql(sql_file_path).format(**params))
|
83
|
+
|
84
|
+
return sql_scripts
|
74
85
|
|
75
|
-
def handle(self, *args, **options):
|
86
|
+
def handle(self, *args, **options) -> None:
|
76
87
|
"""Формирование SQL-кода и его исполнение."""
|
77
88
|
self.stdout.write('start reinstalling audit_log..\n')
|
78
89
|
|
79
90
|
cursor = connection.cursor()
|
80
91
|
|
81
|
-
|
92
|
+
for sql in self._prepare_sql():
|
93
|
+
cursor.execute(sql)
|
82
94
|
|
83
95
|
configure(force_update_triggers=True)
|
84
96
|
|
@@ -40,6 +40,7 @@ from django.db.transaction import (
|
|
40
40
|
from django.http import (
|
41
41
|
HttpRequest,
|
42
42
|
)
|
43
|
+
|
43
44
|
from m3_django_compat import (
|
44
45
|
get_related,
|
45
46
|
)
|
@@ -52,6 +53,9 @@ from educommon.audit_log.constants import (
|
|
52
53
|
PG_LOCK_ID,
|
53
54
|
SQL_FILES_DIR,
|
54
55
|
)
|
56
|
+
from educommon.logger import (
|
57
|
+
error as logger_error,
|
58
|
+
)
|
55
59
|
from educommon.utils.misc import (
|
56
60
|
cached_property,
|
57
61
|
)
|
@@ -99,6 +103,19 @@ def get_need_to_log_table_names() -> Set[str]:
|
|
99
103
|
return table_names
|
100
104
|
|
101
105
|
|
106
|
+
def get_table_names_for_app_labels(app_labels: Iterable[str]) -> Set[str]:
|
107
|
+
"""Возвращает множество с именами таблиц для указанных приложений."""
|
108
|
+
tables = set()
|
109
|
+
for app_label in app_labels:
|
110
|
+
try:
|
111
|
+
app_config = apps.get_app_config(app_label)
|
112
|
+
tables.update(model._meta.db_table for model in app_config.get_models())
|
113
|
+
except LookupError:
|
114
|
+
continue
|
115
|
+
|
116
|
+
return tables
|
117
|
+
|
118
|
+
|
102
119
|
def update_or_create_tables(need_to_log_table_names: Iterable[str]) -> bool:
|
103
120
|
"""Создаёт записи Table для отслеживаемых таблиц, либо меняет флаг logged.
|
104
121
|
|
@@ -109,6 +126,21 @@ def update_or_create_tables(need_to_log_table_names: Iterable[str]) -> bool:
|
|
109
126
|
need_to_log_table_names = set(need_to_log_table_names)
|
110
127
|
existed_table_names = set(Table.objects.filter(schema='public').values_list('name', flat=True))
|
111
128
|
|
129
|
+
# Таблицы сервисных приложений, которые не должны отслеживаться аудит-логом
|
130
|
+
allowed_service_apps_labels = getattr(settings, 'ALLOWED_SERVICE_APPS_LABELS', [])
|
131
|
+
service_table_names = get_table_names_for_app_labels(allowed_service_apps_labels)
|
132
|
+
|
133
|
+
# Проверка конфликтных таблиц: должны логироваться, но находятся в сервисных приложениях
|
134
|
+
conflicting_tables = need_to_log_table_names & service_table_names
|
135
|
+
if conflicting_tables:
|
136
|
+
tables = ', '.join(sorted(conflicting_tables))
|
137
|
+
error_msg = (
|
138
|
+
f'Невозможно включить логирование для сервисных таблиц: {tables}. '
|
139
|
+
'Исключите их из отслеживания или перенесите таблицы в основную БД.'
|
140
|
+
)
|
141
|
+
logger_error(error_msg)
|
142
|
+
raise ValueError(error_msg)
|
143
|
+
|
112
144
|
to_create_table_names = need_to_log_table_names - existed_table_names
|
113
145
|
to_disable_table_names = existed_table_names - need_to_log_table_names
|
114
146
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: educommon
|
3
|
-
Version: 3.
|
3
|
+
Version: 3.17.0
|
4
4
|
Summary: Общая кодовая база для проектов БЦ Образование
|
5
5
|
Author-email: BARS Group <education_dev@bars-open.ru>
|
6
6
|
Project-URL: Homepage, https://stash.bars-open.ru/projects/EDUBASE/repos/educommon/browse
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.15.0 → educommon-3.17.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.15.0 → educommon-3.17.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
|
{educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/management/commands/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0002_install_audit_log.py
RENAMED
File without changes
|
File without changes
|
{educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0004_reinstall_audit_log.py
RENAMED
File without changes
|
{educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0005_postgresql_error.py
RENAMED
File without changes
|
{educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0006_auto_20200806_1707.py
RENAMED
File without changes
|
File without changes
|
{educommon-3.15.0 → educommon-3.17.0}/src/educommon/audit_log/migrations/0008_table_logged.py
RENAMED
File without changes
|
{educommon-3.15.0 → educommon-3.17.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
|
{educommon-3.15.0 → educommon-3.17.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.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/migrations/0003_permission_hidden.py
RENAMED
File without changes
|
{educommon-3.15.0 → educommon-3.17.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.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/templates/rbac/role-add-window.js
RENAMED
File without changes
|
{educommon-3.15.0 → educommon-3.17.0}/src/educommon/auth/rbac/templates/rbac/role-edit-window.js
RENAMED
File without changes
|
{educommon-3.15.0 → educommon-3.17.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.15.0 → educommon-3.17.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.15.0 → educommon-3.17.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.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/model_views.py
RENAMED
File without changes
|
File without changes
|
{educommon-3.15.0 → educommon-3.17.0}/src/educommon/contingent/contingent_plugin/observer.py
RENAMED
File without changes
|
{educommon-3.15.0 → educommon-3.17.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
|