accrete 0.0.53__tar.gz → 0.0.55__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.53 → accrete-0.0.55}/PKG-INFO +1 -1
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/__init__.py +2 -1
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/context.py +59 -8
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/filter.py +5 -5
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/css/accrete.css +20 -4
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/css/accrete.css.map +1 -1
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/css/accrete.scss +34 -4
- accrete-0.0.55/accrete/contrib/ui/static/js/ui.js +26 -0
- accrete-0.0.55/accrete/contrib/ui/templates/ui/dashboard.html +7 -0
- accrete-0.0.55/accrete/contrib/ui/templates/ui/detail.html +37 -0
- accrete-0.0.55/accrete/contrib/ui/templates/ui/form.html +21 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/layout.html +11 -24
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/list.html +2 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/filter.html +32 -23
- accrete-0.0.55/accrete/contrib/ui/templates/ui/partials/form_errors.html +36 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/table.html +2 -0
- accrete-0.0.55/accrete/forms.py +45 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/managers.py +1 -2
- accrete-0.0.55/accrete/utils/__init__.py +4 -0
- accrete-0.0.55/accrete/utils/forms.py +103 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/utils/http.py +14 -3
- {accrete-0.0.53 → accrete-0.0.55}/pyproject.toml +1 -1
- accrete-0.0.53/accrete/contrib/ui/static/js/list.js +0 -146
- accrete-0.0.53/accrete/contrib/ui/templates/ui/detail.html +0 -123
- accrete-0.0.53/accrete/contrib/ui/templates/ui/form.html +0 -30
- accrete-0.0.53/accrete/contrib/ui/templates/ui/partials/form_errors.html +0 -23
- accrete-0.0.53/accrete/forms.py +0 -292
- accrete-0.0.53/accrete/utils/__init__.py +0 -4
- accrete-0.0.53/accrete/utils/forms.py +0 -24
- {accrete-0.0.53 → accrete-0.0.55}/.gitignore +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/LICENSE +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/README.md +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/__init__.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/admin.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/annotation.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/apps.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/config.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/__init__.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/__init__.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/admin.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/apps.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/forms.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/migrations/0001_initial.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/migrations/0002_alter_sequence_name.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/migrations/__init__.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/models.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/queries.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/tests.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/views.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/__init__.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/admin.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/apps.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/forms.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/migrations/0001_initial.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/migrations/__init__.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/models.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/tasks.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/tests.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/views.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/admin.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/apps.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/elements.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/migrations/__init__.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/LICENSE +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/README.md +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/bulma.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/bulma.css +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/bulma.css.map +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/bulma.min.css +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.min.css +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.min.css.map +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.min.css +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.min.css.map +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.min.css +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.min.css.map +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.min.css +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.min.css.map +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/package.json +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/_index.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/base/_index.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/base/animations.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/base/generic.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/base/minireset.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/base/skeleton.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/_index.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/breadcrumb.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/card.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/dropdown.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/menu.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/message.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/modal.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/navbar.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/pagination.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/panel.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/tabs.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/_index.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/block.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/box.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/button.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/content.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/delete.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/icon.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/image.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/loader.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/notification.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/progress.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/table.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/tag.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/title.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/form/_index.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/form/checkbox-radio.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/form/file.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/form/input-textarea.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/form/select.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/form/shared.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/form/tools.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/grid/_index.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/grid/columns-v2.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/grid/columns.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/grid/grid.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/_index.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/aspect-ratio.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/border.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/color.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/flexbox.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/float.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/gap.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/other.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/overflow.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/position.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/spacing.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/typography.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/visibility.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/layout/_index.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/layout/container.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/layout/footer.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/layout/hero.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/layout/level.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/layout/media.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/layout/section.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/themes/_index.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/themes/dark.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/themes/light.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/themes/setup.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/utilities/_index.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/utilities/controls.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/utilities/css-variables.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/utilities/derived-variables.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/utilities/extends.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/utilities/functions.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/utilities/initial-variables.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/utilities/mixins.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/versions/bulma-no-dark-mode.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/versions/bulma-no-helpers-prefixed.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/versions/bulma-no-helpers.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/versions/bulma-prefixed.scss +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/css/fa.css +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/css/icons.css +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/icons/Logo.svg +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/icons/accrete.svg +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/js/filter.js +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/js/htmx.min.js +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/webfonts/fa-brands-400.ttf +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/webfonts/fa-brands-400.woff2 +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/webfonts/fa-regular-400.ttf +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/webfonts/fa-regular-400.woff2 +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/webfonts/fa-solid-900.ttf +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/webfonts/fa-solid-900.woff2 +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/webfonts/fa-v4compatibility.ttf +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/webfonts/fa-v4compatibility.woff2 +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/django/forms/widgets/attrs.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/django/forms/widgets/email.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/django/forms/widgets/file.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/django/forms/widgets/input.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/django/forms/widgets/select.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/django/forms/widgets/text.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/django/forms/widgets/textarea.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/form_modal.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/header.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/onchange_form.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/pagination_detail.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/pagination_list.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/table_field.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/table_field_float.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/table_field_monetary.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/table_field_string.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templatetags/__init__.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templatetags/accrete_ui.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/tests.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/urls.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/views.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/__init__.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/admin.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/apps.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/forms.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/locale/de/LC_MESSAGES/django.mo +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/locale/de/LC_MESSAGES/django.po +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/middleware.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/migrations/0001_initial.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/migrations/__init__.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/models.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/templates/user/accrete_navbar_end_dropdown.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/templates/user/change_email.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/templates/user/change_password.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/templates/user/login.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/templates/user/user_detail.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/templates/user/user_form.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/tests.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/urls.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/views.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/__init__.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/admin.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/apps.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/config.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/forms.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/migrations/0001_initial.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/migrations/__init__.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/models.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/templates/user_registration/mail_templates/confirmation_mail.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/templates/user_registration/registration.html +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/tests.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/urls.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/views.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/middleware.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/migrations/0001_initial.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/migrations/0002_initial.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/migrations/__init__.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/models.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/tenant.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/tests.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/utils/dates.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/utils/models.py +0 -0
- {accrete-0.0.53 → accrete-0.0.55}/accrete/views.py +0 -0
@@ -1,12 +1,13 @@
|
|
1
1
|
import logging
|
2
|
+
import json
|
2
3
|
from urllib.parse import quote_plus
|
3
4
|
from dataclasses import dataclass, field
|
4
|
-
from typing import TypedDict, Callable
|
5
|
+
from typing import Type, TypedDict, Callable
|
5
6
|
from django.utils.translation import gettext_lazy as _t
|
6
7
|
from django.db import models
|
7
8
|
from django.db.models import Model, QuerySet
|
8
9
|
from django.core.paginator import Paginator
|
9
|
-
from django.core import paginator
|
10
|
+
from django.core import paginator, exceptions
|
10
11
|
from django.forms import Form, ModelForm
|
11
12
|
from accrete.annotation import Annotation
|
12
13
|
from .elements import (
|
@@ -14,7 +15,7 @@ from .elements import (
|
|
14
15
|
ClientActionGroup
|
15
16
|
)
|
16
17
|
from .filter import Filter
|
17
|
-
|
18
|
+
from accrete.utils import filter_from_querystring
|
18
19
|
|
19
20
|
_logger = logging.getLogger(__name__)
|
20
21
|
|
@@ -60,6 +61,46 @@ class TableContext(Context):
|
|
60
61
|
field_selection: bool = True
|
61
62
|
|
62
63
|
|
64
|
+
def default_table_context(model: Type[Model], params: dict, queryset=None, **kwargs) -> TableContext:
|
65
|
+
if queryset is None:
|
66
|
+
queryset = filter_from_querystring(model, params)
|
67
|
+
page = list_page(
|
68
|
+
queryset,
|
69
|
+
cast_param(params, 'paginate_by', int, 40),
|
70
|
+
cast_param(params, 'page', int, 1)
|
71
|
+
)
|
72
|
+
try:
|
73
|
+
has_name_field = (
|
74
|
+
model._meta.get_field('name').get_internal_type() == 'CharField'
|
75
|
+
)
|
76
|
+
except exceptions.FieldDoesNotExist:
|
77
|
+
has_name_field = False
|
78
|
+
|
79
|
+
ctx = TableContext(
|
80
|
+
title=str(model._meta.verbose_name_plural),
|
81
|
+
object_label=str(model._meta.verbose_name),
|
82
|
+
object_param_str=url_param_str(
|
83
|
+
params,
|
84
|
+
['q', 'paginate_by', 'page', 'fields']
|
85
|
+
),
|
86
|
+
fields=get_table_fields(
|
87
|
+
cast_param(params, 'fields', json.loads, []), model
|
88
|
+
),
|
89
|
+
list_page=page,
|
90
|
+
pagination_param_str=url_param_str(
|
91
|
+
params, ['q', 'paginate_by', 'fields']
|
92
|
+
),
|
93
|
+
endless_scroll=True,
|
94
|
+
filter=Filter(
|
95
|
+
model,
|
96
|
+
default_filter_term='name__icontains' if has_name_field else ''
|
97
|
+
),
|
98
|
+
kwargs=kwargs
|
99
|
+
)
|
100
|
+
return ctx
|
101
|
+
|
102
|
+
|
103
|
+
|
63
104
|
@dataclass
|
64
105
|
class ListContext(Context):
|
65
106
|
|
@@ -67,7 +108,7 @@ class ListContext(Context):
|
|
67
108
|
object_param_str: str
|
68
109
|
list_page: paginator.Page
|
69
110
|
pagination_param_str: str
|
70
|
-
filter: Filter
|
111
|
+
filter: Filter = None
|
71
112
|
endless_scroll: bool = True
|
72
113
|
column_height: int = 4
|
73
114
|
column_width: int = 12
|
@@ -93,7 +134,9 @@ class DetailContext(Context):
|
|
93
134
|
class FormContext(Context):
|
94
135
|
|
95
136
|
form: Form | ModelForm
|
96
|
-
form_id: str
|
137
|
+
form_id: str = 'form'
|
138
|
+
form_method: str = 'post'
|
139
|
+
form_action: str = ''
|
97
140
|
|
98
141
|
|
99
142
|
def cast_param(params: dict, param: str, cast_to: Callable, default):
|
@@ -115,9 +158,8 @@ def url_param_dict(get_params: dict) -> dict:
|
|
115
158
|
|
116
159
|
def url_param_str(params: dict, extract: list[str] = None) -> str:
|
117
160
|
"""
|
118
|
-
Return a URL Querystring from the given
|
119
|
-
If extract is supplied,
|
120
|
-
them, so that each value is formatted e.g. {'page': '&page=1'}
|
161
|
+
Return a URL Querystring from the given params dict.
|
162
|
+
If extract is supplied, only specified keys will be used.
|
121
163
|
"""
|
122
164
|
if extract:
|
123
165
|
params = extract_url_params(params, extract)
|
@@ -155,6 +197,15 @@ def detail_page(queryset: QuerySet, obj: Model) -> dict:
|
|
155
197
|
'deactivate pagination.'
|
156
198
|
)
|
157
199
|
return {}
|
200
|
+
if obj not in queryset:
|
201
|
+
url = obj.get_absolute_url()
|
202
|
+
return {
|
203
|
+
'previous_object_url': url,
|
204
|
+
'next_object_url': url,
|
205
|
+
'current_object_idx': 1,
|
206
|
+
'total_objects': 1
|
207
|
+
}
|
208
|
+
|
158
209
|
idx = (*queryset,).index(obj)
|
159
210
|
previous_object_url = (
|
160
211
|
queryset[idx - 1] if idx - 1 >= 0 else queryset.last()
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import time
|
2
1
|
import logging
|
3
2
|
from django.db.models.fields.related import ManyToOneRel, ManyToManyRel
|
4
3
|
from django.core.cache import cache
|
@@ -301,10 +300,11 @@ class Filter:
|
|
301
300
|
and not isinstance(x, (ManyToOneRel, ManyToManyRel)),
|
302
301
|
self.model._meta.get_fields()
|
303
302
|
)]
|
304
|
-
|
305
|
-
(
|
306
|
-
|
307
|
-
|
303
|
+
if hasattr(self.model, 'get_annotations'):
|
304
|
+
fields.extend([
|
305
|
+
(x['annotation'].verbose_name, x['name'])
|
306
|
+
for x in self.model.get_annotations()
|
307
|
+
])
|
308
308
|
sorted_fields = sorted(fields, key=lambda x: x[0].lower())
|
309
309
|
for field in sorted_fields:
|
310
310
|
html += f"""
|
@@ -20923,10 +20923,9 @@ select:focus {
|
|
20923
20923
|
border-bottom-right-radius: 0;
|
20924
20924
|
}
|
20925
20925
|
|
20926
|
-
|
20927
|
-
|
20928
|
-
border-
|
20929
|
-
border-top-right-radius: 0;
|
20926
|
+
.dropdown-button.is-active {
|
20927
|
+
border-bottom-left-radius: 0;
|
20928
|
+
border-bottom-right-radius: 0;
|
20930
20929
|
}
|
20931
20930
|
|
20932
20931
|
@media screen and (max-width: 768px) {
|
@@ -20956,6 +20955,23 @@ select:focus {
|
|
20956
20955
|
display: inline-block;
|
20957
20956
|
}
|
20958
20957
|
}
|
20958
|
+
/* Chrome, Safari, Edge, Opera */
|
20959
|
+
input::-webkit-outer-spin-button,
|
20960
|
+
input::-webkit-inner-spin-button {
|
20961
|
+
-webkit-appearance: none;
|
20962
|
+
margin: 0;
|
20963
|
+
}
|
20964
|
+
|
20965
|
+
/* Firefox */
|
20966
|
+
input[type=number] {
|
20967
|
+
-moz-appearance: textfield;
|
20968
|
+
}
|
20969
|
+
|
20970
|
+
/* Fix CKEditor List Display */
|
20971
|
+
.ck-editor__editable_inline {
|
20972
|
+
padding: 0 30px !important;
|
20973
|
+
}
|
20974
|
+
|
20959
20975
|
@media screen and (max-width: 1407px) {
|
20960
20976
|
#list-customization * .dropdown-menu {
|
20961
20977
|
width: auto;
|