accrete 0.0.37__tar.gz → 0.0.38__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.37 → accrete-0.0.38}/PKG-INFO +1 -1
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/context.py +33 -13
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/filter.py +1 -1
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templatetags/accrete_ui.py +8 -15
- {accrete-0.0.37 → accrete-0.0.38}/accrete/querystring.py +14 -17
- accrete-0.0.38/accrete/utils/models.py +19 -0
- {accrete-0.0.37 → accrete-0.0.38}/pyproject.toml +1 -1
- accrete-0.0.37/accrete/utils/models.py +0 -14
- {accrete-0.0.37 → accrete-0.0.38}/.gitignore +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/LICENSE +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/README.md +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/__init__.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/admin.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/annotation.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/apps.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/config.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/__init__.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/sequence/__init__.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/sequence/admin.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/sequence/apps.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/sequence/forms.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/sequence/migrations/0001_initial.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/sequence/migrations/0002_alter_sequence_name.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/sequence/migrations/__init__.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/sequence/models.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/sequence/queries.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/sequence/tests.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/sequence/views.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/system_mail/__init__.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/system_mail/admin.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/system_mail/apps.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/system_mail/forms.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/system_mail/migrations/0001_initial.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/system_mail/migrations/__init__.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/system_mail/models.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/system_mail/tasks.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/system_mail/tests.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/system_mail/views.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/__init__.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/admin.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/apps.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/elements.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/migrations/__init__.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/LICENSE +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/README.md +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/bulma.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/css/bulma-rtl.css +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/css/bulma-rtl.css.map +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/css/bulma-rtl.min.css +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/css/bulma.css +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/css/bulma.css.map +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/css/bulma.min.css +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/package.json +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/base/_all.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/base/animations.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/base/generic.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/base/helpers.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/base/minireset.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/_all.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/breadcrumb.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/card.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/dropdown.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/level.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/media.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/menu.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/message.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/modal.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/navbar.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/pagination.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/panel.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/tabs.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/_all.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/box.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/button.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/container.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/content.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/form.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/icon.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/image.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/notification.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/other.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/progress.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/table.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/tag.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/title.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/form/_all.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/form/checkbox-radio.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/form/file.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/form/input-textarea.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/form/select.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/form/shared.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/form/tools.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/grid/_all.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/grid/columns.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/grid/tiles.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/helpers/_all.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/helpers/color.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/helpers/flexbox.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/helpers/float.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/helpers/other.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/helpers/overflow.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/helpers/position.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/helpers/spacing.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/helpers/typography.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/helpers/visibility.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/layout/_all.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/layout/footer.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/layout/hero.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/layout/section.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/utilities/_all.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/utilities/animations.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/utilities/controls.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/utilities/derived-variables.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/utilities/extends.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/utilities/functions.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/utilities/initial-variables.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/utilities/mixins.sass +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/css/accrete.css +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/css/accrete.css.bak +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/css/accrete.css.map +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/css/accrete.scss +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/css/icons.css +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/icons/Logo.svg +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/icons/accrete.svg +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/js/filter.js +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/js/htmx.min.js +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/js/list.js +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/django/forms/widgets/attrs.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/django/forms/widgets/email.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/django/forms/widgets/file.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/django/forms/widgets/input.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/django/forms/widgets/select.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/django/forms/widgets/text.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/django/forms/widgets/textarea.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/detail.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/form.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/layout.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/list.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/filter.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/form_errors.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/form_modal.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/header.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/onchange_form.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/pagination_detail.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/pagination_list.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/table_field.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/table_field_float.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/table_field_monetary.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/table_field_string.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/table.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templatetags/__init__.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/tests.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/urls.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/views.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/__init__.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/admin.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/apps.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/forms.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/locale/de/LC_MESSAGES/django.mo +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/locale/de/LC_MESSAGES/django.po +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/middleware.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/migrations/0001_initial.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/migrations/__init__.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/models.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/templates/user/accrete_navbar_end_dropdown.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/templates/user/change_email.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/templates/user/change_password.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/templates/user/login.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/templates/user/user_detail.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/templates/user/user_form.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/tests.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/urls.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user/views.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user_registration/__init__.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user_registration/admin.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user_registration/apps.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user_registration/config.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user_registration/forms.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user_registration/migrations/0001_initial.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user_registration/migrations/__init__.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user_registration/models.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user_registration/templates/user_registration/mail_templates/confirmation_mail.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user_registration/templates/user_registration/registration.html +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user_registration/tests.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user_registration/urls.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user_registration/views.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/forms.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/middleware.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/migrations/0001_initial.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/migrations/0002_initial.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/migrations/__init__.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/models.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/queries.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/tenant.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/tests.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/utils/__init__.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/utils/dates.py +0 -0
- {accrete-0.0.37 → accrete-0.0.38}/accrete/views.py +0 -0
@@ -2,14 +2,18 @@ import logging
|
|
2
2
|
from dataclasses import dataclass, field
|
3
3
|
from typing import TypedDict
|
4
4
|
from django.utils.translation import gettext_lazy as _t
|
5
|
+
from django.db import models
|
5
6
|
from django.db.models import Model, QuerySet
|
6
7
|
from django.core.paginator import Paginator
|
7
8
|
from django.core import paginator
|
8
9
|
from django.forms import Form, ModelForm
|
9
10
|
from accrete.utils.models import get_related_model
|
10
|
-
from .
|
11
|
+
from accrete.annotation import Annotation
|
12
|
+
from .elements import (
|
13
|
+
ClientAction, BreadCrumb, TableField, TableFieldType, TableFieldAlignment
|
14
|
+
)
|
11
15
|
from .filter import Filter
|
12
|
-
|
16
|
+
|
13
17
|
|
14
18
|
_logger = logging.getLogger(__name__)
|
15
19
|
|
@@ -180,34 +184,50 @@ def get_table_fields(
|
|
180
184
|
model: type[Model],
|
181
185
|
field_definition: dict[str | TableField] = None
|
182
186
|
) -> list[TableField]:
|
183
|
-
print(fields, model, field_definition)
|
184
187
|
|
185
|
-
|
186
|
-
|
188
|
+
def get_alignment(field_attr):
|
189
|
+
number_field_types = (
|
190
|
+
models.DecimalField, models.IntegerField, models.FloatField
|
191
|
+
)
|
192
|
+
if (
|
193
|
+
isinstance(field_attr, number_field_types)
|
194
|
+
or (
|
195
|
+
isinstance(field_attr, Annotation)
|
196
|
+
and field_attr.field in number_field_types
|
197
|
+
)):
|
198
|
+
return TableFieldAlignment.RIGHT
|
199
|
+
return TableFieldAlignment.LEFT
|
200
|
+
|
187
201
|
|
188
202
|
def get_field_definition(f_name: str) -> TableField:
|
189
203
|
if definition := field_definition.get(f_name):
|
190
204
|
return definition
|
191
|
-
|
205
|
+
parts = f_name.split('__')
|
206
|
+
if len(parts) == 1:
|
192
207
|
rel_model = model
|
208
|
+
names = [rel_model._meta.verbose_name]
|
193
209
|
else:
|
194
|
-
rel_model = get_related_model(model, f_name)
|
195
|
-
print(rel_model)
|
210
|
+
rel_model, names = get_related_model(model, f_name)
|
196
211
|
try:
|
197
|
-
return rel_model.table_field_definition[
|
212
|
+
return rel_model.table_field_definition[parts[-1]]
|
198
213
|
except (AttributeError, KeyError):
|
199
|
-
attr = getattr(rel_model,
|
214
|
+
attr = getattr(rel_model, parts[-1])
|
200
215
|
if isinstance(attr, Annotation):
|
201
|
-
|
216
|
+
pass
|
202
217
|
elif hasattr(attr, 'field'):
|
203
218
|
attr = attr.field
|
219
|
+
names.append(attr.verbose_name)
|
204
220
|
return TableField(
|
205
|
-
label=str(
|
221
|
+
label=' / '.join([str(name) for name in names[1:]]),
|
206
222
|
name=f_name,
|
207
223
|
header_info=str(attr.help_text),
|
208
|
-
truncate_after=50
|
224
|
+
truncate_after=50,
|
225
|
+
alignment=get_alignment(attr)
|
209
226
|
)
|
210
227
|
|
228
|
+
if field_definition is None:
|
229
|
+
field_definition = {}
|
230
|
+
|
211
231
|
table_fields = []
|
212
232
|
for field_name in fields:
|
213
233
|
try:
|
@@ -28,27 +28,20 @@ def combine_templates(template_name, request=None):
|
|
28
28
|
|
29
29
|
@register.filter(name='get_attr')
|
30
30
|
def get_attr_from_string(param: object, value: str):
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
31
|
+
attr_name = value.split('__')
|
32
|
+
attr = param
|
33
|
+
for name in attr_name:
|
34
|
+
try:
|
35
|
+
attr = getattr(attr, name)
|
36
|
+
except AttributeError:
|
37
|
+
_logger.exception(f'Object {attr} has no attribute {name}')
|
38
|
+
return ''
|
36
39
|
if callable(attr):
|
37
40
|
return attr()
|
38
41
|
else:
|
39
42
|
return attr
|
40
43
|
|
41
44
|
|
42
|
-
def get_field_value(param: type[Model], value: str):
|
43
|
-
model = param
|
44
|
-
vals = value.split('__')
|
45
|
-
if len(vals) == 1:
|
46
|
-
return get_attr_from_string(model, vals[0])
|
47
|
-
for val in value.split('__'):
|
48
|
-
pass
|
49
|
-
|
50
|
-
|
51
|
-
|
52
45
|
@register.filter(name='message_class')
|
53
46
|
def message_class(param):
|
54
47
|
if param.level == 25:
|
@@ -2,6 +2,8 @@ import logging
|
|
2
2
|
import json
|
3
3
|
import operator
|
4
4
|
from django.db.models import Model, Q, QuerySet
|
5
|
+
from accrete.utils.models import get_related_model
|
6
|
+
from accrete.annotation import Annotation
|
5
7
|
|
6
8
|
_logger = logging.getLogger(__name__)
|
7
9
|
|
@@ -34,28 +36,23 @@ def parse_querystring(model: type[Model], query_string: str) -> Q:
|
|
34
36
|
expression = Q(**{term: value})
|
35
37
|
return ~expression if invert else expression
|
36
38
|
|
37
|
-
rel_path = parts[
|
38
|
-
|
39
|
-
|
40
|
-
|
39
|
+
rel_path = '__'.join(parts[:-2])
|
40
|
+
related_model, x = get_related_model(model, rel_path)
|
41
|
+
attr = getattr(related_model, parts[-2])
|
42
|
+
if not isinstance(attr, Annotation):
|
43
|
+
expression = Q(**{term: value})
|
44
|
+
return ~expression if invert else expression
|
45
|
+
|
46
|
+
objects = related_model.objects.filter(Q(**{
|
47
|
+
'__'.join(parts[len(x):]): value
|
48
|
+
}))
|
41
49
|
expression = Q(**{
|
42
|
-
f'{rel_path}{"__" if rel_path else ""}id__in':
|
50
|
+
f'{rel_path}{"__" if rel_path else ""}id__in':
|
51
|
+
objects.values_list('id', flat=True)
|
43
52
|
})
|
44
53
|
|
45
54
|
return ~expression if invert else expression
|
46
55
|
|
47
|
-
def get_related_model(rel_path: str):
|
48
|
-
related_model = model
|
49
|
-
for part in rel_path.split('__'):
|
50
|
-
try:
|
51
|
-
related_model = related_model._meta.fields_map[part].related_model
|
52
|
-
except (AttributeError, KeyError):
|
53
|
-
try:
|
54
|
-
related_model = getattr(related_model, part).field.related_model
|
55
|
-
except AttributeError:
|
56
|
-
break
|
57
|
-
return related_model
|
58
|
-
|
59
56
|
def parse_query_block(sub_item) -> Q:
|
60
57
|
op = ops['&']
|
61
58
|
parsed_query = Q()
|
@@ -0,0 +1,19 @@
|
|
1
|
+
from django.db.models import Model
|
2
|
+
|
3
|
+
|
4
|
+
def get_related_model(model: type[Model], rel_path: str) -> tuple[Model, list[str]]:
|
5
|
+
names = []
|
6
|
+
related_model = model
|
7
|
+
for part in rel_path.split('__'):
|
8
|
+
names.append(str(related_model._meta.verbose_name))
|
9
|
+
try:
|
10
|
+
next_model = related_model._meta.fields_map[part].related_model
|
11
|
+
related_model = next_model
|
12
|
+
except (AttributeError, KeyError):
|
13
|
+
try:
|
14
|
+
next_model = getattr(related_model, part).field.related_model
|
15
|
+
if next_model is not None:
|
16
|
+
related_model = next_model
|
17
|
+
except AttributeError:
|
18
|
+
break
|
19
|
+
return related_model, names
|
@@ -1,14 +0,0 @@
|
|
1
|
-
from django.db.models import Model
|
2
|
-
|
3
|
-
|
4
|
-
def get_related_model(model: type[Model], rel_path: str):
|
5
|
-
related_model = model
|
6
|
-
for part in rel_path.split('__'):
|
7
|
-
try:
|
8
|
-
related_model = related_model._meta.fields_map[part].related_model
|
9
|
-
except (AttributeError, KeyError):
|
10
|
-
try:
|
11
|
-
related_model = getattr(related_model, part).field.related_model
|
12
|
-
except AttributeError:
|
13
|
-
break
|
14
|
-
return related_model
|
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.37 → accrete-0.0.38}/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
|
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
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/breadcrumb.sass
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/dropdown.sass
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/level.sass
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/media.sass
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/message.sass
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/modal.sass
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/navbar.sass
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/pagination.sass
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/components/panel.sass
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/container.sass
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/content.sass
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/notification.sass
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/elements/progress.sass
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/form/checkbox-radio.sass
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/form/input-textarea.sass
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
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/helpers/overflow.sass
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/helpers/position.sass
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/helpers/typography.sass
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/helpers/visibility.sass
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/utilities/animations.sass
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/utilities/controls.sass
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/utilities/extends.sass
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/utilities/functions.sass
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/static/bulma/sass/utilities/mixins.sass
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.37 → accrete-0.0.38}/accrete/contrib/ui/templates/django/forms/widgets/attrs.html
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/django/forms/widgets/email.html
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/django/forms/widgets/file.html
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/django/forms/widgets/input.html
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/django/forms/widgets/select.html
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/django/forms/widgets/text.html
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/django/forms/widgets/textarea.html
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
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/onchange_form.html
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/pagination_detail.html
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/pagination_list.html
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/table_field_float.html
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/table_field_monetary.html
RENAMED
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/ui/templates/ui/partials/table_field_string.html
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{accrete-0.0.37 → accrete-0.0.38}/accrete/contrib/user_registration/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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|