accrete 0.0.27__tar.gz → 0.0.29__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.27 → accrete-0.0.29}/PKG-INFO +2 -1
- accrete-0.0.29/accrete/contrib/sequence/migrations/0002_alter_sequence_name.py +18 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/sequence/models.py +1 -1
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/sequence/queries.py +2 -2
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/system_mail/tasks.py +10 -3
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/__init__.py +2 -1
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/components.py +29 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/context.py +13 -11
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/filter.py +24 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/querystring.py +1 -1
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/js/filter.js +3 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/layout.html +5 -3
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/header.html +6 -4
- {accrete-0.0.27 → accrete-0.0.29}/accrete/forms.py +6 -5
- accrete-0.0.29/accrete/utils/__init__.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/utils/dates.py +10 -2
- {accrete-0.0.27 → accrete-0.0.29}/pyproject.toml +3 -2
- {accrete-0.0.27 → accrete-0.0.29}/.gitignore +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/LICENSE +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/README.md +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/__init__.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/admin.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/apps.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/config.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/__init__.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/sequence/__init__.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/sequence/admin.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/sequence/apps.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/sequence/forms.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/sequence/migrations/0001_initial.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/sequence/migrations/__init__.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/sequence/tests.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/sequence/views.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/system_mail/__init__.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/system_mail/admin.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/system_mail/apps.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/system_mail/forms.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/system_mail/migrations/0001_initial.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/system_mail/migrations/__init__.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/system_mail/models.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/system_mail/tests.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/system_mail/views.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/admin.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/apps.py +0 -0
- /accrete-0.0.27/accrete/contrib/ui/migrations/__init__.py → /accrete-0.0.29/accrete/contrib/ui/elements.py +0 -0
- {accrete-0.0.27/accrete/contrib/ui/templatetags → accrete-0.0.29/accrete/contrib/ui/migrations}/__init__.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/LICENSE +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/README.md +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/bulma.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/css/bulma-rtl.css +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/css/bulma-rtl.css.map +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/css/bulma-rtl.min.css +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/css/bulma.css +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/css/bulma.css.map +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/css/bulma.min.css +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/package.json +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/base/_all.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/base/animations.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/base/generic.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/base/helpers.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/base/minireset.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/_all.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/breadcrumb.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/card.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/dropdown.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/level.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/media.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/menu.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/message.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/modal.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/navbar.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/pagination.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/panel.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/tabs.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/elements/_all.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/elements/box.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/elements/button.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/elements/container.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/elements/content.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/elements/form.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/elements/icon.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/elements/image.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/elements/notification.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/elements/other.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/elements/progress.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/elements/table.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/elements/tag.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/elements/title.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/form/_all.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/form/checkbox-radio.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/form/file.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/form/input-textarea.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/form/select.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/form/shared.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/form/tools.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/grid/_all.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/grid/columns.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/grid/tiles.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/helpers/_all.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/helpers/color.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/helpers/flexbox.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/helpers/float.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/helpers/other.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/helpers/overflow.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/helpers/position.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/helpers/spacing.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/helpers/typography.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/helpers/visibility.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/layout/_all.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/layout/footer.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/layout/hero.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/layout/section.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/utilities/_all.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/utilities/animations.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/utilities/controls.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/utilities/derived-variables.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/utilities/extends.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/utilities/functions.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/utilities/initial-variables.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/utilities/mixins.sass +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/css/accrete.css +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/css/accrete.css.bak +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/css/accrete.css.map +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/css/accrete.scss +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/css/icons.css +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/icons/Logo.svg +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/icons/accrete.svg +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/js/list.js +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/js/navbar.js +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/js/utils.js +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/django/forms/widgets/attrs.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/django/forms/widgets/email.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/django/forms/widgets/file.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/django/forms/widgets/input.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/django/forms/widgets/select.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/django/forms/widgets/text.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/django/forms/widgets/textarea.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/detail.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/form.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/list.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/filter.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/form_errors.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/form_modal.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/onchange_form.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/pagination_detail.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/pagination_list.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/table_field.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/table_field_float.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/table_field_monetary.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/table_field_string.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/table.html +0 -0
- {accrete-0.0.27/accrete/contrib/user → accrete-0.0.29/accrete/contrib/ui/templatetags}/__init__.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templatetags/accrete_ui.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/tests.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/urls.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/views.py +0 -0
- {accrete-0.0.27/accrete/contrib/user/migrations → accrete-0.0.29/accrete/contrib/user}/__init__.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/admin.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/apps.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/forms.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/locale/de/LC_MESSAGES/django.mo +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/locale/de/LC_MESSAGES/django.po +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/middleware.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/migrations/0001_initial.py +0 -0
- {accrete-0.0.27/accrete/contrib/user_registration → accrete-0.0.29/accrete/contrib/user/migrations}/__init__.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/models.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/templates/user/accrete_navbar_end.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/templates/user/change_email.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/templates/user/change_password.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/templates/user/login.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/templates/user/user_detail.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/templates/user/user_form.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/tests.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/urls.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/views.py +0 -0
- {accrete-0.0.27/accrete/contrib/user_registration/migrations → accrete-0.0.29/accrete/contrib/user_registration}/__init__.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user_registration/admin.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user_registration/apps.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user_registration/config.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user_registration/forms.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user_registration/migrations/0001_initial.py +0 -0
- {accrete-0.0.27/accrete → accrete-0.0.29/accrete/contrib/user_registration}/migrations/__init__.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user_registration/models.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user_registration/templates/user_registration/mail_templates/confirmation_mail.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user_registration/templates/user_registration/registration.html +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user_registration/tests.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user_registration/urls.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user_registration/views.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/decorators.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/middleware.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/migrations/0001_initial.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/migrations/0002_initial.py +0 -0
- {accrete-0.0.27/accrete/utils → accrete-0.0.29/accrete/migrations}/__init__.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/models.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/queries.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/querystring.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/tenant.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/tests.py +0 -0
- {accrete-0.0.27 → accrete-0.0.29}/accrete/views.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: accrete
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.29
|
4
4
|
Summary: Django Shared Schema Multi Tenant
|
5
5
|
Author-email: Benedikt Jilek <benedikt.jilek@pm.me>
|
6
6
|
License: Copyright (c) 2023 Benedikt Jilek
|
@@ -35,6 +35,7 @@ Requires-Dist: django>=4.2
|
|
35
35
|
Provides-Extra: contrib
|
36
36
|
Requires-Dist: celery>=5.3.4; extra == 'contrib'
|
37
37
|
Requires-Dist: django-celery-beat; extra == 'contrib'
|
38
|
+
Requires-Dist: sqlalchemy; extra == 'contrib'
|
38
39
|
Provides-Extra: dev
|
39
40
|
Requires-Dist: build; extra == 'dev'
|
40
41
|
Requires-Dist: pytest>=7.0; extra == 'dev'
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# Generated by Django 4.2.9 on 2024-01-27 07:50
|
2
|
+
|
3
|
+
from django.db import migrations, models
|
4
|
+
|
5
|
+
|
6
|
+
class Migration(migrations.Migration):
|
7
|
+
|
8
|
+
dependencies = [
|
9
|
+
('sequence', '0001_initial'),
|
10
|
+
]
|
11
|
+
|
12
|
+
operations = [
|
13
|
+
migrations.AlterField(
|
14
|
+
model_name='sequence',
|
15
|
+
name='name',
|
16
|
+
field=models.CharField(max_length=255, verbose_name='Name'),
|
17
|
+
),
|
18
|
+
]
|
@@ -9,11 +9,11 @@ def get_nextval(name, create_if_none=True):
|
|
9
9
|
tenant = get_tenant()
|
10
10
|
with transaction.atomic():
|
11
11
|
seq = Sequence.objects.filter(
|
12
|
-
tenant=tenant
|
12
|
+
tenant=tenant, name=name
|
13
13
|
).select_for_update().first()
|
14
14
|
|
15
15
|
if seq is None and not create_if_none:
|
16
|
-
raise
|
16
|
+
raise ValueError(f'Sequence "{name}" does not exist.')
|
17
17
|
elif seq is None:
|
18
18
|
seq = Sequence(name=name, tenant=tenant)
|
19
19
|
seq.save()
|
@@ -1,15 +1,22 @@
|
|
1
1
|
import logging
|
2
|
-
from celery import shared_task
|
3
|
-
|
2
|
+
from celery import shared_task, current_app
|
3
|
+
from celery.schedules import crontab
|
4
4
|
from django.core import mail
|
5
5
|
from django.db import transaction
|
6
6
|
from django.utils.html import strip_tags
|
7
|
-
|
8
7
|
from .models import SystemMail
|
9
8
|
|
10
9
|
_logger = logging.getLogger(__name__)
|
11
10
|
|
12
11
|
|
12
|
+
@current_app.on_after_finalize.connect
|
13
|
+
def setup_periodic_tasks(sender, **kwargs):
|
14
|
+
sender.add_periodic_task(
|
15
|
+
crontab(hour='*', minute='*/5'),
|
16
|
+
run_mail_queue.s()
|
17
|
+
)
|
18
|
+
|
19
|
+
|
13
20
|
@shared_task()
|
14
21
|
def run_mail_queue():
|
15
22
|
with transaction.atomic():
|
@@ -6,9 +6,10 @@ from .context import (
|
|
6
6
|
)
|
7
7
|
from .components import (
|
8
8
|
ClientAction,
|
9
|
+
ActionMethod,
|
9
10
|
BreadCrumb,
|
10
11
|
TableField,
|
11
12
|
TableFieldAlignment,
|
12
13
|
TableFieldType
|
13
14
|
)
|
14
|
-
from .querystring import load_querystring,
|
15
|
+
from .querystring import load_querystring, build_querystring
|
@@ -1,5 +1,17 @@
|
|
1
1
|
from dataclasses import dataclass, field
|
2
2
|
from enum import Enum
|
3
|
+
from django.db.models import Model, QuerySet, Q
|
4
|
+
|
5
|
+
DEFAULT_PAGINATE_BY = 40
|
6
|
+
|
7
|
+
|
8
|
+
class ActionMethod(Enum):
|
9
|
+
|
10
|
+
HREF = 'href'
|
11
|
+
GET = 'hx-get'
|
12
|
+
POST = 'hx-post'
|
13
|
+
PUT = 'hx-put'
|
14
|
+
DELETE = 'hx-delete'
|
3
15
|
|
4
16
|
|
5
17
|
class TableFieldAlignment(Enum):
|
@@ -37,6 +49,7 @@ class BreadCrumb:
|
|
37
49
|
|
38
50
|
name: str
|
39
51
|
url: str
|
52
|
+
add_url_params: bool = True
|
40
53
|
|
41
54
|
|
42
55
|
@dataclass
|
@@ -44,8 +57,24 @@ class ClientAction:
|
|
44
57
|
|
45
58
|
name: str
|
46
59
|
url: str = ''
|
60
|
+
method: ActionMethod = ActionMethod.HREF
|
47
61
|
query_params: str = ''
|
48
62
|
attrs: list[tuple[str, str]] = field(default_factory=list)
|
49
63
|
submit: bool = False
|
50
64
|
form_id: str = 'form'
|
51
65
|
class_list: list[str] = field(default_factory=list)
|
66
|
+
add_url_params: bool = True
|
67
|
+
|
68
|
+
def attrs_str(self):
|
69
|
+
return ' '.join(['='.join(attr) for attr in self.attrs])
|
70
|
+
|
71
|
+
|
72
|
+
@dataclass
|
73
|
+
class List:
|
74
|
+
|
75
|
+
queryset: QuerySet
|
76
|
+
title: str = None
|
77
|
+
paginate_by: int = DEFAULT_PAGINATE_BY
|
78
|
+
breadcrumbs: list[BreadCrumb] = field(default_factory=list)
|
79
|
+
actions: list[ClientAction] = field(default_factory=list)
|
80
|
+
fields: list[TableField] = field(default_factory=list)
|
@@ -7,7 +7,7 @@ from django.core.paginator import Paginator
|
|
7
7
|
from django.forms import Form, ModelForm
|
8
8
|
from accrete.querystring import parse_querystring
|
9
9
|
|
10
|
-
from .querystring import load_querystring,
|
10
|
+
from .querystring import load_querystring, build_querystring
|
11
11
|
from .components import ClientAction, BreadCrumb, TableField
|
12
12
|
from .filter import Filter
|
13
13
|
|
@@ -43,16 +43,16 @@ class ListContext:
|
|
43
43
|
|
44
44
|
order = self.order_by or self.model._meta.ordering
|
45
45
|
|
46
|
-
pks = self.model.objects.filter(
|
47
|
-
|
48
|
-
).distinct().values_list('pk', flat=True)
|
46
|
+
# pks = self.model.objects.filter(
|
47
|
+
# parse_querystring(self.model, self.get_params.get('q', '[]'))
|
48
|
+
# ).distinct().values_list('pk', flat=True)
|
49
49
|
|
50
50
|
queryset = self.model.objects.select_related(
|
51
51
|
*self.select_related
|
52
52
|
).prefetch_related(
|
53
53
|
*self.prefetch_related
|
54
54
|
).filter(
|
55
|
-
|
55
|
+
parse_querystring(self.model, self.get_params.get('q', '[]'))
|
56
56
|
).annotate(
|
57
57
|
**self.get_annotations()
|
58
58
|
).order_by(
|
@@ -110,7 +110,7 @@ class ListContext:
|
|
110
110
|
'default_filter_term': self.default_filter_term,
|
111
111
|
'breadcrumbs': self.breadcrumbs,
|
112
112
|
'querystring': load_querystring(self.get_params),
|
113
|
-
'url_params':
|
113
|
+
'url_params': build_querystring(self.get_params),
|
114
114
|
'actions': self.actions,
|
115
115
|
'fields': self.fields
|
116
116
|
}
|
@@ -209,7 +209,7 @@ class DetailContext:
|
|
209
209
|
'paginate_by': paginate_by,
|
210
210
|
'detail_pagination': False,
|
211
211
|
'breadcrumbs': self.breadcrumbs,
|
212
|
-
'url_params':
|
212
|
+
'url_params': build_querystring(self.get_params, ['page']),
|
213
213
|
'actions': self.actions
|
214
214
|
}
|
215
215
|
if self.paginate_by > 0:
|
@@ -230,6 +230,7 @@ class FormContext:
|
|
230
230
|
add_default_actions: bool = True
|
231
231
|
discard_url: str = None
|
232
232
|
actions: list[ClientAction] = field(default_factory=list)
|
233
|
+
breadcrumbs: list[BreadCrumb] = field(default_factory=list)
|
233
234
|
|
234
235
|
def get_default_form_actions(self):
|
235
236
|
actions = [
|
@@ -268,17 +269,18 @@ class FormContext:
|
|
268
269
|
return self.title
|
269
270
|
try:
|
270
271
|
int(self.model.pk)
|
271
|
-
return
|
272
|
+
return _('Edit')
|
272
273
|
except TypeError:
|
273
|
-
return
|
274
|
+
return _('Add')
|
274
275
|
|
275
276
|
def dict(self):
|
276
277
|
ctx = {
|
277
278
|
'title': self.get_title(),
|
278
279
|
'form': self.form,
|
279
280
|
'form_id': self.form_id,
|
280
|
-
'url_params':
|
281
|
-
'actions': []
|
281
|
+
'url_params': build_querystring(self.get_params, ['page']),
|
282
|
+
'actions': [],
|
283
|
+
'breadcrumbs': self.breadcrumbs,
|
282
284
|
}
|
283
285
|
if self.add_default_actions:
|
284
286
|
ctx.update({'actions': self.get_default_form_actions()})
|
@@ -115,6 +115,28 @@ class Filter:
|
|
115
115
|
]
|
116
116
|
}
|
117
117
|
|
118
|
+
def get_choice_int_query_term(self, label, param, choices):
|
119
|
+
choices = [(choice[0], str(choice[1])) for choice in choices]
|
120
|
+
return {
|
121
|
+
'label': str(label),
|
122
|
+
'param': param,
|
123
|
+
'params': [
|
124
|
+
{
|
125
|
+
'label': str(self.LABEL_EXACT),
|
126
|
+
'data_type': 'selection',
|
127
|
+
'choices': choices,
|
128
|
+
'param': 'exact'
|
129
|
+
},
|
130
|
+
{
|
131
|
+
'label': str(self.LABEL_EXACT_NOT),
|
132
|
+
'data_type': 'selection',
|
133
|
+
'choices': choices,
|
134
|
+
'invert': True,
|
135
|
+
'param': 'exact'
|
136
|
+
}
|
137
|
+
]
|
138
|
+
}
|
139
|
+
|
118
140
|
def get_int_query_term(self, label, param):
|
119
141
|
return {
|
120
142
|
'label': str(label),
|
@@ -258,6 +280,8 @@ class Filter:
|
|
258
280
|
label, param, self.cast_decimal_places_to_step(field.decimal_places or 0)
|
259
281
|
)
|
260
282
|
elif internal_type in self.query_int_fields:
|
283
|
+
if field.choices:
|
284
|
+
return self.get_choice_int_query_term(label, param, field.choices)
|
261
285
|
return self.get_int_query_term(label, param)
|
262
286
|
elif internal_type in self.query_boolean_fields:
|
263
287
|
return self.get_boolean_query_term(label, param)
|
@@ -5,7 +5,7 @@ def load_querystring(get_params: dict) -> list:
|
|
5
5
|
return json.loads(get_params.get('q', '[]'))
|
6
6
|
|
7
7
|
|
8
|
-
def
|
8
|
+
def build_querystring(get_params: dict, extra_params: list[str] = None) -> str:
|
9
9
|
querystring = f'?q={get_params.get("q", "[]")}'
|
10
10
|
if paginate_by := get_params.get('paginate_by', False):
|
11
11
|
querystring += f'&paginate_by={paginate_by}'
|
@@ -229,6 +229,9 @@ function appendAfterTag(queryTagContainer) {
|
|
229
229
|
function resetInput() {
|
230
230
|
const input = document.getElementById('query-input');
|
231
231
|
const queryParam = getParamElement(input.getAttribute('data-default-term'))
|
232
|
+
if (!queryParam) {
|
233
|
+
return
|
234
|
+
}
|
232
235
|
const queryLabel = getCompleteQueryText(queryParam);
|
233
236
|
const queryNotificationLabel = document.getElementById('query-label');
|
234
237
|
queryNotificationLabel.innerText = queryLabel;
|
@@ -93,12 +93,14 @@
|
|
93
93
|
{% if action.submit %}
|
94
94
|
<input class="button is-fullwidth {{ action.class_list|join:' ' }}"
|
95
95
|
type="submit" form={{ action.form_id }} value="{{ action.name }}"
|
96
|
-
{
|
96
|
+
{{ action.attrs_str }}
|
97
97
|
>
|
98
98
|
{% else %}
|
99
99
|
<a class="button is-fullwidth {{ action.class_list|join:' ' }}"
|
100
|
-
|
101
|
-
|
100
|
+
{% if action.url %}
|
101
|
+
{{ action.method.value }}="{{ action.url }}{% if action.add_url_params %}{{ url_params|default_if_none:'?' }}{% endif %}{% if page %}&page={{ page.number }}{% endif %}{{ action.query_params }}"
|
102
|
+
{% endif %}
|
103
|
+
{{ action.attrs_str }}
|
102
104
|
>{{ action.name }}
|
103
105
|
</a>
|
104
106
|
{% endif %}
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<nav id="breadcrumbs" class="breadcrumb" aria-label="breadcrumbs" style="white-space: unset; word-break: break-word">
|
8
8
|
<ul>
|
9
9
|
{% for crumb in breadcrumbs %}
|
10
|
-
<li><a class="is-underlined" hx-get="{{ crumb.url|default_if_none:'#' }}{{ url_params }}"
|
10
|
+
<li><a class="is-underlined" hx-get="{{ crumb.url|default_if_none:'#' }}{% if crumb.add_url_params %}{{ url_params }}{% endif %}"
|
11
11
|
hx-target="body" hx-push-url="true" aria-current="page"
|
12
12
|
>{{ crumb.name }}</a></li>
|
13
13
|
{% endfor %}
|
@@ -35,12 +35,14 @@
|
|
35
35
|
{% if action.submit %}
|
36
36
|
<input class="button mr-2 {{ action.class_list|join:' ' }}"
|
37
37
|
type="submit" form={{ action.form_id }} value="{{ action.name }}"
|
38
|
-
{
|
38
|
+
{{ action.attrs_str }}
|
39
39
|
>
|
40
40
|
{% else %}
|
41
41
|
<a class="button mr-2 {{ action.class_list|join:' ' }}"
|
42
|
-
|
43
|
-
|
42
|
+
{% if action.url %}
|
43
|
+
{{ action.method.value }}="{{ action.url }}{% if action.add_url_params %}{{ url_params|default_if_none:'?' }}{% endif %}{% if page %}&page={{ page.number }}{% endif %}{{ action.query_params }}"
|
44
|
+
{% endif %}
|
45
|
+
{{ action.attrs_str }}
|
44
46
|
>{{ action.name }}
|
45
47
|
</a>
|
46
48
|
{% endif %}
|
@@ -292,7 +292,7 @@ class TenantModelForm(One2ManyModelForm):
|
|
292
292
|
return self.instance
|
293
293
|
|
294
294
|
|
295
|
-
def save_form(form, reraise=False):
|
295
|
+
def save_form(form, reraise=False, log=True):
|
296
296
|
form.is_saved = False
|
297
297
|
try:
|
298
298
|
if form.is_valid():
|
@@ -300,10 +300,11 @@ def save_form(form, reraise=False):
|
|
300
300
|
form.save()
|
301
301
|
form.is_saved = True
|
302
302
|
except Exception as e:
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
303
|
+
form.save_error = repr(e)
|
304
|
+
if log:
|
305
|
+
error_id = str(uuid4())[:8]
|
306
|
+
_logger.exception(f'{error_id}: {e}')
|
307
|
+
form.save_error_id = error_id
|
307
308
|
if reraise:
|
308
309
|
raise e
|
309
310
|
return form
|
File without changes
|
@@ -9,7 +9,6 @@ def current_year_start() -> datetime:
|
|
9
9
|
first_day = now.replace(
|
10
10
|
month=1, day=1, hour=0, minute=0, second=0, microsecond=0
|
11
11
|
)
|
12
|
-
# calendar.monthrange(date.year, date.month)[1]
|
13
12
|
return first_day
|
14
13
|
|
15
14
|
|
@@ -23,7 +22,6 @@ def current_year_end() -> datetime:
|
|
23
22
|
|
24
23
|
def current_month_start() -> datetime:
|
25
24
|
now = timezone.now()
|
26
|
-
monthrange = calendar.monthrange(now.year, now.month)
|
27
25
|
first_day = now.replace(
|
28
26
|
day=1, hour=0, minute=0, second=0, microsecond=0
|
29
27
|
)
|
@@ -37,3 +35,13 @@ def current_month_end() -> datetime:
|
|
37
35
|
day=monthrange[1], hour=23, minute=59, second=59, microsecond=999999
|
38
36
|
)
|
39
37
|
return last_day
|
38
|
+
|
39
|
+
|
40
|
+
def next_relative_month_start(start_date: date) -> date:
|
41
|
+
monthrange = calendar.monthrange(start_date.year, start_date.month)
|
42
|
+
return start_date.replace(day=monthrange[1]) + timedelta(days=1)
|
43
|
+
|
44
|
+
|
45
|
+
def next_relative_year_start(start_date: date) -> date:
|
46
|
+
current = current_year_end().date().replace(year=start_date.year)
|
47
|
+
return current + relativedelta(days=1)
|
@@ -4,7 +4,7 @@ build-backend = 'hatchling.build'
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = 'accrete'
|
7
|
-
version = '0.0.
|
7
|
+
version = '0.0.29'
|
8
8
|
authors = [
|
9
9
|
{ name='Benedikt Jilek', email='benedikt.jilek@pm.me' },
|
10
10
|
]
|
@@ -33,7 +33,8 @@ dev = [
|
|
33
33
|
]
|
34
34
|
contrib = [
|
35
35
|
'celery >= 5.3.4',
|
36
|
-
'django_celery_beat'
|
36
|
+
'django_celery_beat',
|
37
|
+
'sqlalchemy'
|
37
38
|
]
|
38
39
|
|
39
40
|
[tool.hatch.build]
|
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
|
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.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/breadcrumb.sass
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/dropdown.sass
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/level.sass
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/media.sass
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/message.sass
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/modal.sass
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/navbar.sass
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/components/pagination.sass
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/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.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/elements/container.sass
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/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.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/elements/notification.sass
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/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.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/form/checkbox-radio.sass
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/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.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/helpers/overflow.sass
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/helpers/position.sass
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/helpers/typography.sass
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/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.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/utilities/animations.sass
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/utilities/controls.sass
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/utilities/extends.sass
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/static/bulma/sass/utilities/functions.sass
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/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.27 → accrete-0.0.29}/accrete/contrib/ui/templates/django/forms/widgets/attrs.html
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/django/forms/widgets/email.html
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/django/forms/widgets/file.html
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/django/forms/widgets/input.html
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/django/forms/widgets/select.html
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/django/forms/widgets/text.html
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/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
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/onchange_form.html
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/pagination_detail.html
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/pagination_list.html
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/table_field_float.html
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/table_field_monetary.html
RENAMED
File without changes
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/ui/templates/ui/partials/table_field_string.html
RENAMED
File without changes
|
File without changes
|
{accrete-0.0.27/accrete/contrib/user → accrete-0.0.29/accrete/contrib/ui/templatetags}/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{accrete-0.0.27/accrete/contrib/user/migrations → accrete-0.0.29/accrete/contrib/user}/__init__.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
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user/templates/user/accrete_navbar_end.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
|
{accrete-0.0.27 → accrete-0.0.29}/accrete/contrib/user_registration/migrations/0001_initial.py
RENAMED
File without changes
|
{accrete-0.0.27/accrete → accrete-0.0.29/accrete/contrib/user_registration}/migrations/__init__.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
|