accrete 0.0.159__tar.gz → 0.0.161__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.
- {accrete-0.0.159 → accrete-0.0.161}/PKG-INFO +1 -1
- {accrete-0.0.159 → accrete-0.0.161}/accrete/consumer.py +5 -2
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/sequence/queries.py +2 -2
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/response.py +7 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/css/accrete.css +8 -2
- accrete-0.0.161/accrete/contrib/ui/static/css/accrete.css.map +7 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/css/accrete.scss +10 -2
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/layout.html +2 -2
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/table.html +15 -14
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/templatetags/field.html +0 -12
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/widgets/model_search_select.html +2 -2
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/widgets/model_search_select_multi.html +8 -6
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templatetags/ui.py +10 -7
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/widgets/search_select.py +0 -6
- {accrete-0.0.159 → accrete-0.0.161}/accrete/managers.py +1 -1
- {accrete-0.0.159 → accrete-0.0.161}/accrete/middleware.py +8 -3
- {accrete-0.0.159 → accrete-0.0.161}/accrete/models.py +2 -2
- {accrete-0.0.159 → accrete-0.0.161}/pyproject.toml +1 -1
- accrete-0.0.159/accrete/contrib/ui/static/css/accrete.css.map +0 -7
- {accrete-0.0.159 → accrete-0.0.161}/.gitignore +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/LICENSE +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/README.md +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/admin.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/apps.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/channels.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/config.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/context_processors.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/country/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/country/admin.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/country/apps.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/country/migrations/0001_initial.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/country/migrations/0002_auto_20250219_1759.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/country/migrations/0003_alter_country_options.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/country/migrations/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/country/models.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/admin.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/apps.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/config.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/helper.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/migrations/0001_initial.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/migrations/0002_log_user_alter_log_new_value_type_and_more.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/migrations/0003_alter_log_tenant.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/migrations/0004_logconfig_logconfigfield.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/migrations/0005_logconfig_exclude_fields_and_more.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/migrations/0006_remove_log_accrete_log_model_cf888c_idx_and_more.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/migrations/0007_alter_log_new_value_type_alter_log_old_value_type.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/migrations/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/models.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/queries.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/signals.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/tests.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/views.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/sequence/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/sequence/admin.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/sequence/apps.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/sequence/forms.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/sequence/migrations/0001_initial.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/sequence/migrations/0002_alter_sequence_name.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/sequence/migrations/0003_alter_sequence_tenant.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/sequence/migrations/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/sequence/models.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/sequence/tests.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/sequence/views.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/system_mail/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/system_mail/admin.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/system_mail/apps.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/system_mail/forms.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/system_mail/migrations/0001_initial.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/system_mail/migrations/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/system_mail/models.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/system_mail/tasks.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/system_mail/tests.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/system_mail/views.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/admin.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/apps.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/config.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/filter.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/forms.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/middleware.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/migrations/0001_initial.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/migrations/0002_alter_theme_color_danger_alter_theme_color_link_and_more.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/migrations/0003_alter_theme_check_user_or_tenant.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/migrations/0004_theme_force_tenant_theme.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/migrations/0005_theme_base_theme.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/migrations/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/models.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/LICENSE +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/README.md +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/bulma.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/css/bulma.css +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/css/bulma.css.map +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/css/bulma.min.css +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.css +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.css.map +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.min.css +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.css +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.css.map +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.min.css +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.css +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.css.map +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.min.css +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.css +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.css.map +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.min.css +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/package.json +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/_index.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/base/_index.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/base/animations.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/base/generic.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/base/minireset.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/base/skeleton.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/components/_index.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/components/breadcrumb.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/components/card.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/components/dropdown.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/components/menu.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/components/message.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/components/modal.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/components/navbar.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/components/pagination.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/components/panel.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/components/tabs.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/elements/_index.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/elements/block.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/elements/box.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/elements/button.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/elements/content.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/elements/delete.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/elements/icon.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/elements/image.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/elements/loader.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/elements/notification.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/elements/progress.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/elements/table.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/elements/tag.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/elements/title.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/form/_index.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/form/checkbox-radio.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/form/file.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/form/input-textarea.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/form/select.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/form/shared.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/form/tools.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/grid/_index.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/grid/columns.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/grid/grid.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/helpers/_index.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/helpers/aspect-ratio.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/helpers/border.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/helpers/color.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/helpers/flexbox.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/helpers/float.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/helpers/gap.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/helpers/other.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/helpers/overflow.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/helpers/position.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/helpers/spacing.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/helpers/typography.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/helpers/visibility.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/layout/_index.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/layout/container.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/layout/footer.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/layout/hero.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/layout/level.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/layout/media.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/layout/section.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/themes/_index.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/themes/dark.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/themes/light.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/themes/setup.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/utilities/_index.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/utilities/controls.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/utilities/css-variables.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/utilities/derived-variables.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/utilities/extends.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/utilities/functions.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/utilities/initial-variables.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/sass/utilities/mixins.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/versions/bulma-no-dark-mode.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/versions/bulma-no-helpers-prefixed.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/versions/bulma-no-helpers.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/bulma/versions/bulma-prefixed.scss +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/css/fa.css +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/css/icons.css +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/icons/Logo.svg +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/icons/accrete.svg +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/js/alpine-3.14.9.js +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/js/alpine-focus-3.14.9.js +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/js/alpine-sort-3.14.9.js +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/js/filter.js +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/js/htmx.min.js +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/js/ws.js +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/webfonts/fa-brands-400.ttf +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/webfonts/fa-brands-400.woff2 +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/webfonts/fa-regular-400.ttf +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/webfonts/fa-regular-400.woff2 +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/webfonts/fa-solid-900.ttf +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/webfonts/fa-solid-900.woff2 +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/webfonts/fa-v4compatibility.ttf +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/static/webfonts/fa-v4compatibility.woff2 +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/django/forms/widgets/attrs.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/django/forms/widgets/date.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/django/forms/widgets/email.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/django/forms/widgets/file.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/django/forms/widgets/input.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/django/forms/widgets/radio.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/django/forms/widgets/select.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/django/forms/widgets/text.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/django/forms/widgets/textarea.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/content.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/content_right.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/custom_theme.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/detail.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/favicon.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/filter/filter.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/filter/query_input.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/filter/query_operator.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/filter/query_params.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/filter/query_tags.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/form_error.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/list.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/list_update.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/message.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/modal.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/oob.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/table_row_update.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/templatetags/tenant_quick_switch.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/widgets/date_weekday.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/widgets/model_search_select_options.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templatetags/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/tests.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/urls.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/views.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/widgets/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/widgets/date_weekday.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/admin.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/apps.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/auth_backends.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/forms.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/locale/de/LC_MESSAGES/django.mo +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/locale/de/LC_MESSAGES/django.po +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/middleware.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/migrations/0001_initial.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/migrations/0002_user_theme.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/migrations/0003_alter_user_email.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/migrations/0004_user_login_alter_user_email_user_email_or_login_set.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/migrations/0005_remove_user_email_or_login_set_and_more.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/migrations/0006_remove_user_email_or_login_set_user_is_managed_and_more.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/migrations/0007_user_managed_login.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/migrations/0008_remove_user_no_email_for_managed_user_and_more.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/migrations/0009_alter_user_theme.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/migrations/0010_alter_user_theme.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/migrations/0011_alter_user_theme.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/migrations/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/models.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/templates/user/accrete_navbar_end_dropdown.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/templates/user/change_email.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/templates/user/change_password.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/templates/user/login.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/templates/user/password_forgotten.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/templates/user/user_preferences.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/tests.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/urls.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user/views.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user_registration/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user_registration/admin.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user_registration/apps.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user_registration/config.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user_registration/forms.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user_registration/migrations/0001_initial.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user_registration/migrations/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user_registration/models.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user_registration/templates/user_registration/mail_templates/confirmation_mail.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user_registration/templates/user_registration/registration.html +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user_registration/tests.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user_registration/urls.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/user_registration/views.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/fields.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/forms.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/migrations/0001_initial.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/migrations/0002_initial.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/migrations/0003_remove_member_name.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/migrations/0004_rename_accessgroupmember_memberaccessgrouprel_and_more.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/migrations/0005_accessgroup_apply_on_alter_member_access_groups_and_more.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/migrations/0006_alter_member_user.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/migrations/0007_accessgroup_description.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/migrations/0008_alter_member_access_groups_and_more.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/migrations/0009_alter_accessgroup_name.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/migrations/0010_alter_accessgroup_description.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/migrations/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/storage.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/tenant.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/tests.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/urls.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/utils/__init__.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/utils/dates.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/utils/forms.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/utils/log.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/utils/models.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/utils/views.py +0 -0
- {accrete-0.0.159 → accrete-0.0.161}/accrete/views.py +0 -0
|
@@ -14,5 +14,8 @@ class WebsocketTenantConsumer(WebsocketConsumer):
|
|
|
14
14
|
|
|
15
15
|
class JsonWebsocketTenantConsumer(JsonWebsocketConsumer):
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
def websocket_connect(self, message):
|
|
18
|
+
tenant = get_tenant()
|
|
19
|
+
if tenant is None:
|
|
20
|
+
raise ValueError('Tenant must be set.')
|
|
21
|
+
super().websocket_connect(message)
|
|
@@ -9,13 +9,13 @@ def get_nextval(name: str, create_if_none:bool = True) -> int:
|
|
|
9
9
|
tenant = get_tenant()
|
|
10
10
|
with transaction.atomic():
|
|
11
11
|
seq = Sequence.objects.filter(
|
|
12
|
-
|
|
12
|
+
tenant_id=tenant.pk, name=name
|
|
13
13
|
).select_for_update().first()
|
|
14
14
|
|
|
15
15
|
if seq is None and not create_if_none:
|
|
16
16
|
raise ValueError(f'Sequence "{name}" does not exist.')
|
|
17
17
|
elif seq is None:
|
|
18
|
-
seq = Sequence(name=name,
|
|
18
|
+
seq = Sequence(name=name, tenant_id=tenant.pk)
|
|
19
19
|
seq.save()
|
|
20
20
|
|
|
21
21
|
nextval = seq.nextval
|
|
@@ -247,6 +247,7 @@ class TableResponse(WindowResponse):
|
|
|
247
247
|
context: dict,
|
|
248
248
|
fields: list[str],
|
|
249
249
|
instance_label: str | Promise | None = None,
|
|
250
|
+
active_instance: Model = None,
|
|
250
251
|
footer: dict = None,
|
|
251
252
|
page: paginator.Page = None,
|
|
252
253
|
ui_filter: Filter = None,
|
|
@@ -257,6 +258,7 @@ class TableResponse(WindowResponse):
|
|
|
257
258
|
detail_header_template: str = None,
|
|
258
259
|
detail_data_template: str = None,
|
|
259
260
|
detail_enabled: bool = True,
|
|
261
|
+
can_compact: bool = True,
|
|
260
262
|
config: WindowResponseConfig = None
|
|
261
263
|
):
|
|
262
264
|
assert page is not None or ui_filter is not None, _(
|
|
@@ -271,6 +273,7 @@ class TableResponse(WindowResponse):
|
|
|
271
273
|
config=config
|
|
272
274
|
)
|
|
273
275
|
self.instance_label = instance_label
|
|
276
|
+
self.active_instance = active_instance
|
|
274
277
|
self.fields = fields
|
|
275
278
|
self.footer = footer
|
|
276
279
|
self.page = page or (ui_filter and ui_filter.get_page())
|
|
@@ -279,6 +282,7 @@ class TableResponse(WindowResponse):
|
|
|
279
282
|
self.detail_header_template = detail_header_template
|
|
280
283
|
self.detail_data_template = detail_data_template
|
|
281
284
|
self.detail_enabled = detail_enabled
|
|
285
|
+
self.can_compact = can_compact
|
|
282
286
|
|
|
283
287
|
def _has_panel(self):
|
|
284
288
|
return bool(self.panel_template or self.ui_filter)
|
|
@@ -291,10 +295,12 @@ class TableResponse(WindowResponse):
|
|
|
291
295
|
'endless_scroll': self.endless_scroll,
|
|
292
296
|
'fields': self.fields,
|
|
293
297
|
'instance_label': self.instance_label,
|
|
298
|
+
'active_instance': self.active_instance,
|
|
294
299
|
'footer': self.footer,
|
|
295
300
|
'detail_header_template': self.detail_header_template,
|
|
296
301
|
'detail_data_template': self.detail_data_template,
|
|
297
302
|
'detail_enabled': self.detail_enabled,
|
|
303
|
+
'can_compact': self.can_compact,
|
|
298
304
|
'show_content_right': str(bool(
|
|
299
305
|
self.detail_header_template or self.detail_data_template
|
|
300
306
|
)).lower()
|
|
@@ -329,6 +335,7 @@ class TableRowResponse(Response):
|
|
|
329
335
|
context = super().get_context()
|
|
330
336
|
context.update({
|
|
331
337
|
'instance': self.instance,
|
|
338
|
+
'row_object': self.instance,
|
|
332
339
|
'fields': self.fields,
|
|
333
340
|
'instance_label': self.instance_label,
|
|
334
341
|
'footer': self.footer,
|
|
@@ -52,17 +52,23 @@ a {
|
|
|
52
52
|
border-bottom-color: transparent;
|
|
53
53
|
border-left-color: transparent; }
|
|
54
54
|
|
|
55
|
+
.button.is-static.is-primary {
|
|
56
|
+
background-color: var(--bulma-primary);
|
|
57
|
+
color: var(--bulma-button-disabled-border-color); }
|
|
58
|
+
|
|
55
59
|
.input:focus, .input:focus-within {
|
|
56
60
|
box-shadow: none;
|
|
57
61
|
border: 1px solid var(--bulma-primary); }
|
|
58
62
|
|
|
59
63
|
input[disabled] {
|
|
60
|
-
|
|
61
|
-
cursor: unset !important; }
|
|
64
|
+
cursor: default !important; }
|
|
62
65
|
|
|
63
66
|
input[disabled] ~ .helptext {
|
|
64
67
|
font-weight: normal !important; }
|
|
65
68
|
|
|
69
|
+
select[disabled] {
|
|
70
|
+
cursor: default !important; }
|
|
71
|
+
|
|
66
72
|
textarea {
|
|
67
73
|
box-shadow: none !important; }
|
|
68
74
|
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"mappings": "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",
|
|
4
|
+
"sources": ["accrete.scss"],
|
|
5
|
+
"names": [],
|
|
6
|
+
"file": "accrete.css"
|
|
7
|
+
}
|
|
@@ -70,20 +70,28 @@ a {
|
|
|
70
70
|
border-left-color: transparent;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
+
.button.is-static.is-primary {
|
|
74
|
+
background-color: var(--bulma-primary);
|
|
75
|
+
color: var(--bulma-button-disabled-border-color);
|
|
76
|
+
}
|
|
77
|
+
|
|
73
78
|
.input:focus, .input:focus-within {
|
|
74
79
|
box-shadow: none;
|
|
75
80
|
border: 1px solid var(--bulma-primary);
|
|
76
81
|
}
|
|
77
82
|
|
|
78
83
|
input[disabled] {
|
|
79
|
-
|
|
80
|
-
cursor: unset !important;
|
|
84
|
+
cursor: default !important;
|
|
81
85
|
}
|
|
82
86
|
|
|
83
87
|
input[disabled] ~ .helptext {
|
|
84
88
|
font-weight: normal !important;
|
|
85
89
|
}
|
|
86
90
|
|
|
91
|
+
select[disabled] {
|
|
92
|
+
cursor: default !important;
|
|
93
|
+
}
|
|
94
|
+
|
|
87
95
|
textarea {
|
|
88
96
|
box-shadow: none!important;
|
|
89
97
|
}
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
{% if config.display_header %}
|
|
167
167
|
<div id="overview-header">
|
|
168
168
|
<div class="is-flex is-justify-content-space-between is-flex-wrap-wrap {% if is_centered %}container{% endif %}">
|
|
169
|
-
<div class="is-flex is-flex-wrap-wrap is-flex-grow-5 is-align-self-center py-2 mx-1 header-items">
|
|
169
|
+
<div id="overview-header-items" class="is-flex is-flex-wrap-wrap is-flex-grow-5 is-align-self-center py-2 mx-1 header-items">
|
|
170
170
|
{% block overview_header %}
|
|
171
171
|
<div class="" style="align-self: center">
|
|
172
172
|
<p class="title is-5">{{ title }}</p>
|
|
@@ -199,7 +199,7 @@
|
|
|
199
199
|
<button id="pagination-next-button" class="button"
|
|
200
200
|
hx-get="{% if page.has_next %}{% querystring page=page.next_page_number %}{% else %}{% querystring page=1 %}{% endif %}"
|
|
201
201
|
hx-replace-url="true"
|
|
202
|
-
hx-select-oob="#overview,#pagination,#overview-buttons"
|
|
202
|
+
hx-select-oob="#overview-header-items,#overview,#pagination,#overview-buttons"
|
|
203
203
|
>
|
|
204
204
|
>
|
|
205
205
|
</button>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
{% load partials %}
|
|
4
4
|
|
|
5
5
|
{% block table %}
|
|
6
|
-
<table id="content-table" class="table
|
|
6
|
+
<table id="content-table" class="table is-fullwidth is-hoverable is-narrow my-0 {% if can_compact %}can-compact{% endif %}" style="{% if not can_compact %}white-space: nowrap{% endif %}" hx-indicator=".htmx-indicator" x-data="">
|
|
7
7
|
<thead style="position: sticky; top: 0; z-index: 10; background-color: var(--bulma-scheme-main)">
|
|
8
8
|
<tr>
|
|
9
9
|
{% if instance_label %}<th>{{ instance_label }}</th>{% endif %}
|
|
@@ -13,24 +13,24 @@
|
|
|
13
13
|
</tr>
|
|
14
14
|
</thead>
|
|
15
15
|
<tbody id="content-table-body" style="z-index: 9" x-ref="tbody">
|
|
16
|
-
{% for
|
|
16
|
+
{% for row_object in page.object_list %}
|
|
17
17
|
{% partialdef tr inline=True %}
|
|
18
|
-
<tr id="tr-{{
|
|
19
|
-
{% if
|
|
18
|
+
<tr id="tr-{{ row_object.pk }}"
|
|
19
|
+
{% if row_object.get_absolute_url and detail_enabled %}
|
|
20
20
|
style="cursor: pointer;"
|
|
21
|
-
hx-get="{{
|
|
22
|
-
hx-replace-url="{% querystring detail=
|
|
23
|
-
x-data="{selected: false}" @unselect-tr.window="selected = false"
|
|
21
|
+
hx-get="{{ row_object.get_absolute_url }}{% querystring %}" hx-swap="none"
|
|
22
|
+
hx-replace-url="{% querystring detail=row_object.pk %}"
|
|
23
|
+
x-data="{selected: {% if row_object == active_instance %}true{% else %}false{% endif %}}" @unselect-tr.window="selected = false"
|
|
24
24
|
x-on:click="$dispatch('unselect-tr'); selected = true; $nextTick(() => { $el.scrollIntoView( {block: 'nearest'} ) });" x-bind:class="selected ? 'is-primary' : ''"
|
|
25
25
|
{% endif %}
|
|
26
26
|
>
|
|
27
27
|
{% partialdef td inline=True %}
|
|
28
|
-
{% if instance_label %}<td>{{
|
|
28
|
+
{% if instance_label %}<td><span class="has-text-weight-bold">{{ row_object }}</span></td>{% endif %}
|
|
29
29
|
{% for field in fields %}
|
|
30
|
-
<td style="text-align: {{
|
|
30
|
+
<td style="text-align: {{ row_object|table_alignment:field }}">
|
|
31
31
|
<span>
|
|
32
|
-
<span class="responsive-heading has-text-weight-
|
|
33
|
-
{{
|
|
32
|
+
{% if can_compact %}<span class="responsive-heading has-text-weight-medium mr-2" style="margin-right: .2rem">{{ row_object|verbose_field_name:field }}:</span>{% endif %}
|
|
33
|
+
<span>{{ row_object|table_display:field|default_if_none:'' }}</span>
|
|
34
34
|
</span>
|
|
35
35
|
</td>
|
|
36
36
|
{% endfor %}
|
|
@@ -59,19 +59,20 @@
|
|
|
59
59
|
</tr>
|
|
60
60
|
</tfoot>
|
|
61
61
|
</table>
|
|
62
|
-
|
|
62
|
+
{% if endless_scroll %}
|
|
63
63
|
<div id="endless-scroller"
|
|
64
64
|
{% if page.has_next %}
|
|
65
65
|
hx-get="{% querystring page=page.next_page_number %}"
|
|
66
66
|
hx-trigger="intersect once"
|
|
67
|
-
hx-select="tbody > tr"
|
|
67
|
+
hx-select="#content-table > tbody > tr"
|
|
68
68
|
hx-target="#content-table-body"
|
|
69
69
|
hx-swap="beforeend"
|
|
70
|
-
hx-select-oob="#pagination-next-button,#pagination-end-index,#endless-scroller"
|
|
70
|
+
hx-select-oob="#overview-header-items,#pagination-next-button,#pagination-end-index,#endless-scroller"
|
|
71
71
|
hx-indicator="#endless-scroll-indicator"
|
|
72
72
|
hx-replace-url="true"
|
|
73
73
|
{% endif %}
|
|
74
74
|
>
|
|
75
75
|
</div>
|
|
76
76
|
<progress id="endless-scroll-indicator" class="htmx-indicator progress is-small is-primary" max="100">15%</progress>
|
|
77
|
+
{% endif %}
|
|
77
78
|
{% endblock %}
|
|
@@ -57,15 +57,3 @@
|
|
|
57
57
|
<span class="helptext is-size-7">{{ field.help_text|default_if_falsy:'' }}</span>
|
|
58
58
|
</div>
|
|
59
59
|
{% endpartialdef %}
|
|
60
|
-
|
|
61
|
-
{% partialdef model_state %}
|
|
62
|
-
<label class="label mb-0 {% if field.field.required %}has-text-weight-bold{% endif %}" for="{{ field.id_for_label }}">{{ label }}</label>
|
|
63
|
-
<div class="field has-addons mb-0">
|
|
64
|
-
{% if icon %}
|
|
65
|
-
<p class="control">
|
|
66
|
-
<button tabindex="-1" type="button" class="button is-static"><span class="icon"><i class="{{ icon }}"></i></span></button>
|
|
67
|
-
</p>
|
|
68
|
-
{% endif %}
|
|
69
|
-
<div class="control input is-expanded">{{ value|default_if_none:'' }}</div>
|
|
70
|
-
</div>
|
|
71
|
-
{% endpartialdef %}
|
{accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/ui/templates/ui/widgets/model_search_select.html
RENAMED
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
<input id="id_{{ widget.name }}_search" type="search" autocomplete="off" class="input my-2" x-ref="searchInput" aria-label="search"
|
|
21
21
|
name="{{ widget.search_parameter }}" placeholder="{% translate 'Type to search' %}" hx-get="{{ widget.search_url }}"
|
|
22
22
|
hx-trigger="input changed delay:500ms, search" hx-target="#{{ widget.name }}_dropdown_items"
|
|
23
|
-
style="border-radius: 0; border-top: none; border-right: none; border-left: none"
|
|
23
|
+
style="border-radius: 0; border-top: none; border-right: none; border-left: none; box-shadow: none"
|
|
24
24
|
>
|
|
25
|
-
<div x-on:click="$refs.inputValue.setAttribute('value', $event.target.value); $refs.inputDisplay.value = $event.target.innerText; htmx.trigger($refs.inputValue, 'submit'); open = false;
|
|
25
|
+
<div x-on:click="$refs.inputValue.setAttribute('value', $event.target.value); $refs.inputDisplay.value = $event.target.innerText; htmx.trigger($refs.inputValue, 'submit'); open = false; htmx.trigger('#id_{{ widget.name }}_value', 'change');"
|
|
26
26
|
x-on:keydown="if (![9, 27, 38, 40].includes($event.keyCode)) {$refs.searchInput.focus();}"
|
|
27
27
|
@keyup.escape="if (open) {$event.stopPropagation();} open = false;"
|
|
28
28
|
>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{% load i18n %}
|
|
2
2
|
{% load ui %}
|
|
3
3
|
|
|
4
|
-
<div class="is-fullwidth" x-data="{open: false}"
|
|
4
|
+
<div class="is-fullwidth" x-data="{open: false, changed: false}"
|
|
5
5
|
@click.outside="open = false" hx-disinherit="*" @keyup.escape="if (open) {$event.stopPropagation();} open = false;"
|
|
6
6
|
x-on:keydown="if (!open && [38, 40].includes($event.keyCode)) {open = true};"
|
|
7
7
|
>
|
|
@@ -21,7 +21,10 @@
|
|
|
21
21
|
let val = $event.target.getAttribute('data-value');
|
|
22
22
|
$refs.inputValue.querySelector(`option[value=${CSS.escape(val)}]`).remove();
|
|
23
23
|
$event.target.parentElement.remove();
|
|
24
|
-
|
|
24
|
+
changed = true;
|
|
25
|
+
if (!open) {
|
|
26
|
+
htmx.trigger('#{{ widget.attrs.id }}', 'change');
|
|
27
|
+
}
|
|
25
28
|
}
|
|
26
29
|
"
|
|
27
30
|
>
|
|
@@ -34,7 +37,7 @@
|
|
|
34
37
|
</div>
|
|
35
38
|
</div>
|
|
36
39
|
<div style="position: relative; top: .5rem; z-index: 9">
|
|
37
|
-
<div x-show="open" x-effect="if (open) {$nextTick(() => { $refs.dropdownContent.scrollIntoView(true) });}" class="box pt-3 px-3 mb-2" x-ref="dropdownContent" x-cloak="" tabindex="-1" x-transition style="position: absolute; width: 100%">
|
|
40
|
+
<div x-show="open" x-effect="if (open) {$nextTick(() => { $refs.dropdownContent.scrollIntoView(true) });} if(!open & changed) {htmx.trigger('#{{ widget.attrs.id }}', 'change');}" class="box pt-3 px-3 mb-2" x-ref="dropdownContent" x-cloak="" tabindex="-1" x-transition style="position: absolute; width: 100%">
|
|
38
41
|
<input id="id_{{ widget.uuid }}_search" type="search" autocomplete="off" class="input mb-2" x-ref="searchInput" aria-label="search"
|
|
39
42
|
name="{{ widget.search_parameter }}"
|
|
40
43
|
placeholder="{% translate 'Type to search' %}"
|
|
@@ -42,7 +45,7 @@
|
|
|
42
45
|
hx-trigger="input changed delay:300ms, search"
|
|
43
46
|
hx-target="#id_{{ widget.uuid }}_dropdown_items"
|
|
44
47
|
hx-swap="innerHTML"
|
|
45
|
-
style="border-radius: 0; border-top: none; border-right: none; border-left: none"
|
|
48
|
+
style="border-radius: 0; border-top: none; border-right: none; border-left: none; box-shadow: none"
|
|
46
49
|
x-on:keydown="if (![9, 27, 38, 40].includes($event.keyCode)) {$refs.searchInput.focus();}"
|
|
47
50
|
@change.stop=""
|
|
48
51
|
>
|
|
@@ -63,10 +66,9 @@
|
|
|
63
66
|
tag.appendChild(delButton);
|
|
64
67
|
$refs.inputValue.appendChild(option);
|
|
65
68
|
$refs.inputDisplayTags.appendChild(tag);
|
|
66
|
-
|
|
69
|
+
changed = true;
|
|
67
70
|
}
|
|
68
71
|
$refs.inputDisplay.focus();
|
|
69
|
-
{% if widget.hx_trigger_on_change %}htmx.trigger('#{{ widget.attrs.id }}_value', 'change');{% endif %}
|
|
70
72
|
"
|
|
71
73
|
x-on:keydown="
|
|
72
74
|
if ($event.keyCode == 27) {$event.stopPropagation; document.activeElement.blur()}
|
|
@@ -63,6 +63,8 @@ def get_attr_from_string(param: object, value: str):
|
|
|
63
63
|
except (AttributeError,):
|
|
64
64
|
_logger.warning(f'Object {param} has no attribute {value}')
|
|
65
65
|
attribute = None
|
|
66
|
+
if attribute and callable(attribute):
|
|
67
|
+
attribute = attribute()
|
|
66
68
|
return return_save(attribute)
|
|
67
69
|
|
|
68
70
|
|
|
@@ -94,7 +96,7 @@ def verbose_field_name(param: object, value: str):
|
|
|
94
96
|
else:
|
|
95
97
|
field = getattr(param.model, value).field
|
|
96
98
|
if isinstance(field, ManyToManyField):
|
|
97
|
-
name = field.
|
|
99
|
+
name = field.verbose_name
|
|
98
100
|
else:
|
|
99
101
|
name = getattr(param.model, value).field.verbose_name
|
|
100
102
|
|
|
@@ -112,6 +114,13 @@ def table_display(param: object, value: str):
|
|
|
112
114
|
</div>
|
|
113
115
|
</span>
|
|
114
116
|
""")
|
|
117
|
+
try:
|
|
118
|
+
has_choices = param._meta.get_field(value).choices
|
|
119
|
+
except Exception as e:
|
|
120
|
+
_logger.error(repr(e))
|
|
121
|
+
has_choices = False
|
|
122
|
+
if has_choices:
|
|
123
|
+
value = f'get_{value}_display'
|
|
115
124
|
return get_attr_from_string(param, value)
|
|
116
125
|
|
|
117
126
|
|
|
@@ -208,12 +217,6 @@ def wrap_model_field(instance, field_name):
|
|
|
208
217
|
return mark_safe(html)
|
|
209
218
|
|
|
210
219
|
|
|
211
|
-
@register.filter(name='wrap_model_state')
|
|
212
|
-
def wrap_model_state(instance, field_name):
|
|
213
|
-
field = instance._meta.get_field(field_name)
|
|
214
|
-
# get choices, handle groups
|
|
215
|
-
|
|
216
|
-
|
|
217
220
|
@register.filter(name='default_if_falsy')
|
|
218
221
|
def default_if_falsy(value, default):
|
|
219
222
|
if bool(value):
|
|
@@ -14,7 +14,6 @@ class ModelSearchSelect(widgets.NumberInput):
|
|
|
14
14
|
search_kwargs: dict = None,
|
|
15
15
|
search_parameter: str = 'search',
|
|
16
16
|
limit: int | None = 5,
|
|
17
|
-
hx_trigger_on_change: bool = False,
|
|
18
17
|
choices=()
|
|
19
18
|
):
|
|
20
19
|
super().__init__()
|
|
@@ -22,7 +21,6 @@ class ModelSearchSelect(widgets.NumberInput):
|
|
|
22
21
|
self.search_kwargs = search_kwargs or {}
|
|
23
22
|
self.search_parameter = search_parameter
|
|
24
23
|
self.limit = limit
|
|
25
|
-
self.hx_trigger_on_change = hx_trigger_on_change # trigger htmx request on change
|
|
26
24
|
self.choices = choices
|
|
27
25
|
|
|
28
26
|
def get_context(self, name, value, attrs):
|
|
@@ -42,7 +40,6 @@ class ModelSearchSelect(widgets.NumberInput):
|
|
|
42
40
|
"template_name": self.template_name,
|
|
43
41
|
'search_url': resolve_url(self.search_url, **self.search_kwargs),
|
|
44
42
|
'search_parameter': self.search_parameter,
|
|
45
|
-
'hx_trigger_on_change': self.hx_trigger_on_change,
|
|
46
43
|
'uuid': uuid
|
|
47
44
|
},
|
|
48
45
|
'options': qs
|
|
@@ -74,7 +71,6 @@ class ModelSearchSelectMulti(widgets.SelectMultiple):
|
|
|
74
71
|
search_kwargs: dict = None,
|
|
75
72
|
search_parameter: str = 'search',
|
|
76
73
|
limit: int | None = 5,
|
|
77
|
-
hx_trigger_on_change: bool = False,
|
|
78
74
|
choices=()
|
|
79
75
|
):
|
|
80
76
|
super().__init__()
|
|
@@ -82,7 +78,6 @@ class ModelSearchSelectMulti(widgets.SelectMultiple):
|
|
|
82
78
|
self.search_kwargs = search_kwargs or {}
|
|
83
79
|
self.search_parameter = search_parameter
|
|
84
80
|
self.limit = limit
|
|
85
|
-
self.hx_trigger_on_change = hx_trigger_on_change # trigger 'change' event on the actual input field
|
|
86
81
|
self.choices = choices
|
|
87
82
|
|
|
88
83
|
def get_context(self, name, value, attrs):
|
|
@@ -101,7 +96,6 @@ class ModelSearchSelectMulti(widgets.SelectMultiple):
|
|
|
101
96
|
"template_name": self.template_name,
|
|
102
97
|
'search_url': resolve_url(self.search_url, **self.search_kwargs),
|
|
103
98
|
'search_parameter': self.search_parameter,
|
|
104
|
-
'hx_trigger_on_change': self.hx_trigger_on_change,
|
|
105
99
|
'uuid': uuid
|
|
106
100
|
},
|
|
107
101
|
'options': qs,
|
|
@@ -45,7 +45,7 @@ class TenantMiddleware(MiddlewareMixin):
|
|
|
45
45
|
request.member = memberships.first()
|
|
46
46
|
request.tenant = request.member.tenant
|
|
47
47
|
set_member(request.member)
|
|
48
|
-
self.
|
|
48
|
+
self.update_request_data(request)
|
|
49
49
|
return
|
|
50
50
|
if membership_count > 1:
|
|
51
51
|
set_member(None)
|
|
@@ -54,13 +54,18 @@ class TenantMiddleware(MiddlewareMixin):
|
|
|
54
54
|
set_member(None)
|
|
55
55
|
set_tenant(tenant)
|
|
56
56
|
request.tenant = tenant
|
|
57
|
+
self.update_request_data(request)
|
|
57
58
|
return
|
|
58
59
|
set_member(None)
|
|
59
60
|
return
|
|
60
61
|
|
|
61
62
|
@staticmethod
|
|
62
|
-
def
|
|
63
|
-
if
|
|
63
|
+
def update_request_data(request):
|
|
64
|
+
if not request.tenant:
|
|
65
|
+
return
|
|
66
|
+
request.GET = request.GET.copy()
|
|
67
|
+
request.GET['tenant_id'] = request.tenant.pk
|
|
68
|
+
if request.POST and not request.POST.get('tenant'):
|
|
64
69
|
request.POST = request.POST.copy()
|
|
65
70
|
request.POST['tenant'] = request.tenant.pk
|
|
66
71
|
|
|
@@ -29,7 +29,7 @@ class TenantModel(models.Model):
|
|
|
29
29
|
update_fields=None
|
|
30
30
|
):
|
|
31
31
|
tenant = get_tenant()
|
|
32
|
-
if self.pk and tenant and self.
|
|
32
|
+
if self.pk and tenant and self.tenant_id != tenant.pk:
|
|
33
33
|
raise ValueError('Current tenant differs from tenant of the record!')
|
|
34
34
|
if self.pk and not self.tenant and not tenant:
|
|
35
35
|
raise ValueError(
|
|
@@ -38,7 +38,7 @@ class TenantModel(models.Model):
|
|
|
38
38
|
'or set the tenant explicitly on the instance.'
|
|
39
39
|
)
|
|
40
40
|
if tenant:
|
|
41
|
-
self.
|
|
41
|
+
self.tenant_id = tenant.pk
|
|
42
42
|
super().save(
|
|
43
43
|
force_insert=force_insert,
|
|
44
44
|
force_update=force_update,
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"mappings": "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",
|
|
4
|
-
"sources": ["accrete.scss"],
|
|
5
|
-
"names": [],
|
|
6
|
-
"file": "accrete.css"
|
|
7
|
-
}
|
|
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
|
{accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/country/migrations/0002_auto_20250219_1759.py
RENAMED
|
File without changes
|
{accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/country/migrations/0003_alter_country_options.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
|
{accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/log/migrations/0004_logconfig_logconfigfield.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
|
{accrete-0.0.159 → accrete-0.0.161}/accrete/contrib/sequence/migrations/0002_alter_sequence_name.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|