django-unfold 0.31.0__tar.gz → 0.33.0__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {django_unfold-0.31.0 → django_unfold-0.33.0}/PKG-INFO +122 -50
- {django_unfold-0.31.0 → django_unfold-0.33.0}/README.md +121 -49
- {django_unfold-0.31.0 → django_unfold-0.33.0}/pyproject.toml +1 -1
- django_unfold-0.33.0/src/unfold/static/unfold/css/styles.css +1 -0
- django_unfold-0.33.0/src/unfold/templates/admin/edit_inline/stacked.html +86 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/edit_inline/tabular.html +31 -23
- django_unfold-0.33.0/src/unfold/templates/unfold/components/card.html +27 -0
- django_unfold-0.33.0/src/unfold/templates/unfold/components/icon.html +1 -0
- django_unfold-0.33.0/src/unfold/templates/unfold/components/separator.html +1 -0
- django_unfold-0.33.0/src/unfold/templates/unfold/components/table.html +31 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/label.html +1 -2
- django_unfold-0.31.0/src/unfold/static/unfold/css/styles.css +0 -1
- django_unfold-0.31.0/src/unfold/templates/admin/edit_inline/stacked.html +0 -78
- django_unfold-0.31.0/src/unfold/templates/unfold/components/card.html +0 -23
- django_unfold-0.31.0/src/unfold/templates/unfold/components/separator.html +0 -1
- {django_unfold-0.31.0 → django_unfold-0.33.0}/LICENSE.md +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/__init__.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/admin.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/apps.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/checks.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/__init__.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/filters/__init__.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/filters/admin.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/filters/apps.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/filters/forms.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/filters/static/unfold/filters/css/nouislider.min.css +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/filters/static/unfold/filters/js/DateTimeShortcuts.js +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/filters/static/unfold/filters/js/admin-numeric-filter.js +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/filters/static/unfold/filters/js/nouislider.min.js +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/filters/static/unfold/filters/js/wNumb.min.js +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_date_range.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_datetime_range.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_field.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_numeric_range.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_numeric_single.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_numeric_slider.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/forms/__init__.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/forms/apps.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/forms/static/unfold/forms/css/trix.css +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/forms/static/unfold/forms/js/trix.config.js +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/forms/static/unfold/forms/js/trix.js +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/forms/templates/unfold/forms/array.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/forms/templates/unfold/forms/helpers/toolbar.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/forms/templates/unfold/forms/wysiwyg.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/forms/widgets.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/guardian/__init__.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/guardian/apps.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/change_form.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/field.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_group.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_user.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/guardian/templates/unfold/guardian/group_form.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/guardian/templates/unfold/guardian/user_form.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/__init__.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/apps.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/forms.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/templates/admin/import_export/base.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_form.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_export.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_export_item.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_import_export.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_import_item.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/templates/admin/import_export/export.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/templates/admin/import_export/import.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_confirm.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_errors.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_form.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_preview.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_validation.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/import_export/templates/admin/import_export/resource_fields_list.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/inlines/__init__.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/inlines/admin.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/inlines/apps.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/inlines/checks.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/inlines/forms.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/simple_history/__init__.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/simple_history/apps.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/simple_history/templates/simple_history/object_history.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/simple_history/templates/simple_history/object_history_form.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/simple_history/templates/simple_history/object_history_list.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/contrib/simple_history/templates/simple_history/submit_line.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/dataclasses.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/decorators.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/exceptions.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/fields.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/forms.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/settings.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/sites.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/static/unfold/css/simplebar.css +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/static/unfold/fonts/inter/Inter-Bold.woff2 +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/static/unfold/fonts/inter/Inter-Medium.woff2 +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/static/unfold/fonts/inter/Inter-Regular.woff2 +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/static/unfold/fonts/inter/Inter-SemiBold.woff2 +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/static/unfold/fonts/inter/styles.css +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/static/unfold/fonts/material-symbols/Material-Symbols-Outlined.woff2 +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/static/unfold/fonts/material-symbols/styles.css +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/static/unfold/js/alpine.anchor.js +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/static/unfold/js/alpine.js +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/static/unfold/js/alpine.persist.js +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/static/unfold/js/app.js +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/static/unfold/js/chart.js +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/static/unfold/js/htmx.js +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/static/unfold/js/simplebar.js +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/styles.css +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/actions.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/app_index.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/app_list.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/auth/user/add_form.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/auth/user/change_password.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/base.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/base_site.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/change_form.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/change_form_object_tools.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/change_list.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/change_list_object_tools.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/change_list_results.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/date_hierarchy.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/delete_confirmation.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/delete_selected_confirmation.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/filter.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/includes/fieldset.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/includes/object_delete_summary.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/index.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/login.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/nav_sidebar.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/object_history.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/pagination.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/search_form.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/admin/submit_line.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/auth/widgets/read_only_password_hash.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/registration/logged_out.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/registration/password_change_done.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/registration/password_change_form.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/change_list_filter.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/components/button.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/components/chart/bar.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/components/chart/line.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/components/container.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/components/flex.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/components/navigation.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/components/progress.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/components/text.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/components/title.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/account_links.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/actions_row.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/add_link.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/app_list.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/app_list_default.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/attrs.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/boolean.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/breadcrumb_item.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/display_header.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/display_label.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/field.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/field_readonly.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/field_readonly_value.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/fieldset_row.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/fieldsets_tabs.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/form_errors.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/form_label.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/header.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/help_text.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/history.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/messages/error.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/messages/errornote.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/messages/info.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/messages.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/navigation.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/pagination_current_item.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/pagination_ellipsis.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/search.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/search_results.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/site_icon.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/site_logo.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/submit.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/tab_action.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/tab_list.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/theme_switch.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/userlinks.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/helpers/welcomemsg.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/layouts/base.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/layouts/base_simple.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/layouts/skeleton.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/widgets/clearable_file_input.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/widgets/clearable_file_input_small.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/widgets/date.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/widgets/foreign_key_raw_id.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/widgets/radio.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/widgets/radio_option.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/widgets/range.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/widgets/related_widget_wrapper.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/widgets/split_datetime.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/widgets/split_datetime_vertical.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/widgets/split_money.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/widgets/textarea.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/widgets/textarea_expandable.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templates/unfold/widgets/time.html +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templatetags/__init__.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templatetags/unfold.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/templatetags/unfold_list.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/typing.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/utils.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/views.py +0 -0
- {django_unfold-0.31.0 → django_unfold-0.33.0}/src/unfold/widgets.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: django-unfold
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.33.0
|
4
4
|
Summary: Modern Django admin theme for seamless interface development
|
5
5
|
Home-page: https://unfoldadmin.com
|
6
6
|
License: MIT
|
@@ -85,9 +85,13 @@ Did you decide to start using Unfold but you don't have time to make the switch
|
|
85
85
|
- [Numeric filters](#numeric-filters)
|
86
86
|
- [Date/time filters](#datetime-filters)
|
87
87
|
- [Custom admin pages](#custom-admin-pages)
|
88
|
-
- [Nonrelated inlines](#nonrelated-inlines)
|
89
88
|
- [Display decorator](#display-decorator)
|
90
89
|
- [Change form tabs](#change-form-tabs)
|
90
|
+
- [Inlines](#inlines)
|
91
|
+
- [Custom title](#custom-title)
|
92
|
+
- [Hide title row](#hide-title-row)
|
93
|
+
- [Display as tabs](#display-as-tabs)
|
94
|
+
- [Nonrelated inlines](#nonrelated-inlines)
|
91
95
|
- [Third party packages](#third-party-packages)
|
92
96
|
- [django-celery-beat](#django-celery-beat)
|
93
97
|
- [django-guardian](#django-guardian)
|
@@ -102,6 +106,7 @@ Did you decide to start using Unfold but you don't have time to make the switch
|
|
102
106
|
- [Overriding template](#overriding-template)
|
103
107
|
- [Custom variables](#custom-variables)
|
104
108
|
- [Unfold components](#unfold-components)
|
109
|
+
- [Table component example](#table-component-example)
|
105
110
|
- [Unfold development](#unfold-development)
|
106
111
|
- [Pre-commit](#pre-commit)
|
107
112
|
- [Poetry configuration](#poetry-configuration)
|
@@ -774,41 +779,6 @@ The template is straightforward, extend from `unfold/layouts/base.html` and the
|
|
774
779
|
{% endblock %}
|
775
780
|
```
|
776
781
|
|
777
|
-
## Nonrelated inlines
|
778
|
-
|
779
|
-
To display inlines which are not related (no foreign key pointing at the main model) to the model instance in changeform, you can use nonrelated inlines which are included in `unfold.contrib.inlines` module. Make sure this module is included in `INSTALLED_APPS` in settings.py.
|
780
|
-
|
781
|
-
```python
|
782
|
-
from django.contrib.auth.models import User
|
783
|
-
from unfold.admin import ModelAdmin
|
784
|
-
from unfold.contrib.inlines.admin import NonrelatedTabularInline
|
785
|
-
from .models import OtherModel
|
786
|
-
|
787
|
-
class OtherNonrelatedInline(NonrelatedTabularInline): # NonrelatedStackedInline is available as well
|
788
|
-
model = OtherModel
|
789
|
-
fields = ["field1", "field2"] # Ignore property to display all fields
|
790
|
-
|
791
|
-
def get_form_queryset(self, obj):
|
792
|
-
"""
|
793
|
-
Gets all nonrelated objects needed for inlines. Method must be implemented.
|
794
|
-
"""
|
795
|
-
return self.model.objects.all()
|
796
|
-
|
797
|
-
def save_new_instance(self, parent, instance):
|
798
|
-
"""
|
799
|
-
Extra save method which can for example update inline instances based on current
|
800
|
-
main model object. Method must be implemented.
|
801
|
-
"""
|
802
|
-
pass
|
803
|
-
|
804
|
-
|
805
|
-
@admin.register(User)
|
806
|
-
class UserAdmin(ModelAdmin):
|
807
|
-
inlines = [OtherNonrelatedInline]
|
808
|
-
```
|
809
|
-
|
810
|
-
**NOTE:** credit for this functionality goes to [django-nonrelated-inlines](https://github.com/bhomnick/django-nonrelated-inlines)
|
811
|
-
|
812
782
|
## Display decorator
|
813
783
|
|
814
784
|
Unfold introduces it's own `unfold.decorators.display` decorator. By default it has exactly same behavior as native `django.contrib.admin.decorators.display` but it adds same customizations which helps to extends default logic.
|
@@ -935,6 +905,44 @@ class MyModelAdmin(ModelAdmin):
|
|
935
905
|
)
|
936
906
|
```
|
937
907
|
|
908
|
+
## Inlines
|
909
|
+
|
910
|
+
### Custom title
|
911
|
+
|
912
|
+
By default, the title available for each inline row is coming from the `__str__` implementation of the model. Unfold allows you to override this title by implementing `get_inline_title` on the model which can return your own custom title just for the inline.
|
913
|
+
|
914
|
+
```python
|
915
|
+
from unfold.admin import TabularInline
|
916
|
+
|
917
|
+
|
918
|
+
class User(models.Model):
|
919
|
+
# fiels, meta ...
|
920
|
+
|
921
|
+
def get_inline_title(self):
|
922
|
+
return "Custom title"
|
923
|
+
|
924
|
+
|
925
|
+
class MyInline(TabularInline):
|
926
|
+
model = User
|
927
|
+
```
|
928
|
+
|
929
|
+
### Hide title row
|
930
|
+
|
931
|
+
By applying `hide_title` attribute set to `True`, it is possible to hide the title row which is available for `StackedInline` or `TabularInline`. For `StackedInline` it is required to have disabled delete permission `can_delete` to be able to hide the title row, because the checkbox with the delete action is inside this title.
|
932
|
+
|
933
|
+
```python
|
934
|
+
# admin.py
|
935
|
+
|
936
|
+
from unfold.admin import TabularInline
|
937
|
+
|
938
|
+
|
939
|
+
class MyInline(TabularInline):
|
940
|
+
model = User
|
941
|
+
hide_title = True
|
942
|
+
```
|
943
|
+
|
944
|
+
### Display as tabs
|
945
|
+
|
938
946
|
Inlines can be grouped into tab navigation by specifying `tab` attribute in the inline class.
|
939
947
|
|
940
948
|
```python
|
@@ -948,6 +956,42 @@ class MyInline(TabularInline):
|
|
948
956
|
tab = True
|
949
957
|
```
|
950
958
|
|
959
|
+
### Nonrelated inlines
|
960
|
+
|
961
|
+
To display inlines which are not related (no foreign key pointing at the main model) to the model instance in changeform, you can use nonrelated inlines which are included in `unfold.contrib.inlines` module. Make sure this module is included in `INSTALLED_APPS` in settings.py.
|
962
|
+
|
963
|
+
```python
|
964
|
+
from django.contrib.auth.models import User
|
965
|
+
from unfold.admin import ModelAdmin
|
966
|
+
from unfold.contrib.inlines.admin import NonrelatedTabularInline
|
967
|
+
from .models import OtherModel
|
968
|
+
|
969
|
+
class OtherNonrelatedInline(NonrelatedTabularInline): # NonrelatedStackedInline is available as well
|
970
|
+
model = OtherModel
|
971
|
+
fields = ["field1", "field2"] # Ignore property to display all fields
|
972
|
+
|
973
|
+
def get_form_queryset(self, obj):
|
974
|
+
"""
|
975
|
+
Gets all nonrelated objects needed for inlines. Method must be implemented.
|
976
|
+
"""
|
977
|
+
return self.model.objects.all()
|
978
|
+
|
979
|
+
def save_new_instance(self, parent, instance):
|
980
|
+
"""
|
981
|
+
Extra save method which can for example update inline instances based on current
|
982
|
+
main model object. Method must be implemented.
|
983
|
+
"""
|
984
|
+
pass
|
985
|
+
|
986
|
+
|
987
|
+
@admin.register(User)
|
988
|
+
class UserAdmin(ModelAdmin):
|
989
|
+
inlines = [OtherNonrelatedInline]
|
990
|
+
```
|
991
|
+
|
992
|
+
**NOTE:** credit for this functionality goes to [django-nonrelated-inlines](https://github.com/bhomnick/django-nonrelated-inlines)
|
993
|
+
|
994
|
+
|
951
995
|
## Third party packages
|
952
996
|
|
953
997
|
### django-celery-beat
|
@@ -1278,19 +1322,47 @@ Below you can find a more complex example which is using multiple components and
|
|
1278
1322
|
|
1279
1323
|
#### List of available components <!-- omit from toc -->
|
1280
1324
|
|
1281
|
-
| Component | Description | Arguments
|
1282
|
-
| --------------------------------- | ------------------------------ |
|
1283
|
-
| unfold/components/
|
1284
|
-
| unfold/components/
|
1285
|
-
| unfold/components/
|
1286
|
-
| unfold/components/
|
1287
|
-
| unfold/components/
|
1288
|
-
| unfold/components/
|
1289
|
-
| unfold/components/
|
1290
|
-
| unfold/components/
|
1291
|
-
| unfold/components/
|
1292
|
-
| unfold/components/
|
1293
|
-
| unfold/components/
|
1325
|
+
| Component | Description | Arguments |
|
1326
|
+
| --------------------------------- | ------------------------------ | ------------------------------------ |
|
1327
|
+
| unfold/components/button.html | Basic button element | submit |
|
1328
|
+
| unfold/components/card.html | Card component | class, title, footer, label, icon |
|
1329
|
+
| unfold/components/chart/bar.html | Bar chart implementation | class, data, height, width |
|
1330
|
+
| unfold/components/chart/line.html | Line chart implementation | class, data, height, width |
|
1331
|
+
| unfold/components/container.html | Wrapper for settings max width | class |
|
1332
|
+
| unfold/components/flex.html | Flex items | class, col |
|
1333
|
+
| unfold/components/icon.html | Icon element | class |
|
1334
|
+
| unfold/components/navigation.html | List of navigation links | class, items |
|
1335
|
+
| unfold/components/progress.html | Percentual progress bar | class, value, title, description |
|
1336
|
+
| unfold/components/separator.html | Separator, horizontal rule | class |
|
1337
|
+
| unfold/components/table.html | Table | table, card_included, striped |
|
1338
|
+
| unfold/components/text.html | Paragraph of text | class |
|
1339
|
+
| unfold/components/title.html | Basic heading element | class |
|
1340
|
+
|
1341
|
+
|
1342
|
+
#### Table component example
|
1343
|
+
|
1344
|
+
```python
|
1345
|
+
from typing import Dict
|
1346
|
+
from django.http import HttpRequest
|
1347
|
+
|
1348
|
+
|
1349
|
+
def dashboard_callback(request: HttpRequest) -> Dict:
|
1350
|
+
return {
|
1351
|
+
"table_data": {
|
1352
|
+
"headers": ["col 1", "col 2"],
|
1353
|
+
"rows": [
|
1354
|
+
["a", "b"],
|
1355
|
+
["c", "d"],
|
1356
|
+
]
|
1357
|
+
}
|
1358
|
+
}
|
1359
|
+
```
|
1360
|
+
|
1361
|
+
```django-html
|
1362
|
+
{% component "unfold/components/card" with title="Card title" %}
|
1363
|
+
{% component "unfold/components/table.html" with table=table_data card_included=1 striped=1 %}{% encomponent %}
|
1364
|
+
{% endcomponent %}
|
1365
|
+
```
|
1294
1366
|
|
1295
1367
|
## Unfold development
|
1296
1368
|
|
@@ -61,9 +61,13 @@ Did you decide to start using Unfold but you don't have time to make the switch
|
|
61
61
|
- [Numeric filters](#numeric-filters)
|
62
62
|
- [Date/time filters](#datetime-filters)
|
63
63
|
- [Custom admin pages](#custom-admin-pages)
|
64
|
-
- [Nonrelated inlines](#nonrelated-inlines)
|
65
64
|
- [Display decorator](#display-decorator)
|
66
65
|
- [Change form tabs](#change-form-tabs)
|
66
|
+
- [Inlines](#inlines)
|
67
|
+
- [Custom title](#custom-title)
|
68
|
+
- [Hide title row](#hide-title-row)
|
69
|
+
- [Display as tabs](#display-as-tabs)
|
70
|
+
- [Nonrelated inlines](#nonrelated-inlines)
|
67
71
|
- [Third party packages](#third-party-packages)
|
68
72
|
- [django-celery-beat](#django-celery-beat)
|
69
73
|
- [django-guardian](#django-guardian)
|
@@ -78,6 +82,7 @@ Did you decide to start using Unfold but you don't have time to make the switch
|
|
78
82
|
- [Overriding template](#overriding-template)
|
79
83
|
- [Custom variables](#custom-variables)
|
80
84
|
- [Unfold components](#unfold-components)
|
85
|
+
- [Table component example](#table-component-example)
|
81
86
|
- [Unfold development](#unfold-development)
|
82
87
|
- [Pre-commit](#pre-commit)
|
83
88
|
- [Poetry configuration](#poetry-configuration)
|
@@ -750,41 +755,6 @@ The template is straightforward, extend from `unfold/layouts/base.html` and the
|
|
750
755
|
{% endblock %}
|
751
756
|
```
|
752
757
|
|
753
|
-
## Nonrelated inlines
|
754
|
-
|
755
|
-
To display inlines which are not related (no foreign key pointing at the main model) to the model instance in changeform, you can use nonrelated inlines which are included in `unfold.contrib.inlines` module. Make sure this module is included in `INSTALLED_APPS` in settings.py.
|
756
|
-
|
757
|
-
```python
|
758
|
-
from django.contrib.auth.models import User
|
759
|
-
from unfold.admin import ModelAdmin
|
760
|
-
from unfold.contrib.inlines.admin import NonrelatedTabularInline
|
761
|
-
from .models import OtherModel
|
762
|
-
|
763
|
-
class OtherNonrelatedInline(NonrelatedTabularInline): # NonrelatedStackedInline is available as well
|
764
|
-
model = OtherModel
|
765
|
-
fields = ["field1", "field2"] # Ignore property to display all fields
|
766
|
-
|
767
|
-
def get_form_queryset(self, obj):
|
768
|
-
"""
|
769
|
-
Gets all nonrelated objects needed for inlines. Method must be implemented.
|
770
|
-
"""
|
771
|
-
return self.model.objects.all()
|
772
|
-
|
773
|
-
def save_new_instance(self, parent, instance):
|
774
|
-
"""
|
775
|
-
Extra save method which can for example update inline instances based on current
|
776
|
-
main model object. Method must be implemented.
|
777
|
-
"""
|
778
|
-
pass
|
779
|
-
|
780
|
-
|
781
|
-
@admin.register(User)
|
782
|
-
class UserAdmin(ModelAdmin):
|
783
|
-
inlines = [OtherNonrelatedInline]
|
784
|
-
```
|
785
|
-
|
786
|
-
**NOTE:** credit for this functionality goes to [django-nonrelated-inlines](https://github.com/bhomnick/django-nonrelated-inlines)
|
787
|
-
|
788
758
|
## Display decorator
|
789
759
|
|
790
760
|
Unfold introduces it's own `unfold.decorators.display` decorator. By default it has exactly same behavior as native `django.contrib.admin.decorators.display` but it adds same customizations which helps to extends default logic.
|
@@ -911,6 +881,44 @@ class MyModelAdmin(ModelAdmin):
|
|
911
881
|
)
|
912
882
|
```
|
913
883
|
|
884
|
+
## Inlines
|
885
|
+
|
886
|
+
### Custom title
|
887
|
+
|
888
|
+
By default, the title available for each inline row is coming from the `__str__` implementation of the model. Unfold allows you to override this title by implementing `get_inline_title` on the model which can return your own custom title just for the inline.
|
889
|
+
|
890
|
+
```python
|
891
|
+
from unfold.admin import TabularInline
|
892
|
+
|
893
|
+
|
894
|
+
class User(models.Model):
|
895
|
+
# fiels, meta ...
|
896
|
+
|
897
|
+
def get_inline_title(self):
|
898
|
+
return "Custom title"
|
899
|
+
|
900
|
+
|
901
|
+
class MyInline(TabularInline):
|
902
|
+
model = User
|
903
|
+
```
|
904
|
+
|
905
|
+
### Hide title row
|
906
|
+
|
907
|
+
By applying `hide_title` attribute set to `True`, it is possible to hide the title row which is available for `StackedInline` or `TabularInline`. For `StackedInline` it is required to have disabled delete permission `can_delete` to be able to hide the title row, because the checkbox with the delete action is inside this title.
|
908
|
+
|
909
|
+
```python
|
910
|
+
# admin.py
|
911
|
+
|
912
|
+
from unfold.admin import TabularInline
|
913
|
+
|
914
|
+
|
915
|
+
class MyInline(TabularInline):
|
916
|
+
model = User
|
917
|
+
hide_title = True
|
918
|
+
```
|
919
|
+
|
920
|
+
### Display as tabs
|
921
|
+
|
914
922
|
Inlines can be grouped into tab navigation by specifying `tab` attribute in the inline class.
|
915
923
|
|
916
924
|
```python
|
@@ -924,6 +932,42 @@ class MyInline(TabularInline):
|
|
924
932
|
tab = True
|
925
933
|
```
|
926
934
|
|
935
|
+
### Nonrelated inlines
|
936
|
+
|
937
|
+
To display inlines which are not related (no foreign key pointing at the main model) to the model instance in changeform, you can use nonrelated inlines which are included in `unfold.contrib.inlines` module. Make sure this module is included in `INSTALLED_APPS` in settings.py.
|
938
|
+
|
939
|
+
```python
|
940
|
+
from django.contrib.auth.models import User
|
941
|
+
from unfold.admin import ModelAdmin
|
942
|
+
from unfold.contrib.inlines.admin import NonrelatedTabularInline
|
943
|
+
from .models import OtherModel
|
944
|
+
|
945
|
+
class OtherNonrelatedInline(NonrelatedTabularInline): # NonrelatedStackedInline is available as well
|
946
|
+
model = OtherModel
|
947
|
+
fields = ["field1", "field2"] # Ignore property to display all fields
|
948
|
+
|
949
|
+
def get_form_queryset(self, obj):
|
950
|
+
"""
|
951
|
+
Gets all nonrelated objects needed for inlines. Method must be implemented.
|
952
|
+
"""
|
953
|
+
return self.model.objects.all()
|
954
|
+
|
955
|
+
def save_new_instance(self, parent, instance):
|
956
|
+
"""
|
957
|
+
Extra save method which can for example update inline instances based on current
|
958
|
+
main model object. Method must be implemented.
|
959
|
+
"""
|
960
|
+
pass
|
961
|
+
|
962
|
+
|
963
|
+
@admin.register(User)
|
964
|
+
class UserAdmin(ModelAdmin):
|
965
|
+
inlines = [OtherNonrelatedInline]
|
966
|
+
```
|
967
|
+
|
968
|
+
**NOTE:** credit for this functionality goes to [django-nonrelated-inlines](https://github.com/bhomnick/django-nonrelated-inlines)
|
969
|
+
|
970
|
+
|
927
971
|
## Third party packages
|
928
972
|
|
929
973
|
### django-celery-beat
|
@@ -1254,19 +1298,47 @@ Below you can find a more complex example which is using multiple components and
|
|
1254
1298
|
|
1255
1299
|
#### List of available components <!-- omit from toc -->
|
1256
1300
|
|
1257
|
-
| Component | Description | Arguments
|
1258
|
-
| --------------------------------- | ------------------------------ |
|
1259
|
-
| unfold/components/
|
1260
|
-
| unfold/components/
|
1261
|
-
| unfold/components/
|
1262
|
-
| unfold/components/
|
1263
|
-
| unfold/components/
|
1264
|
-
| unfold/components/
|
1265
|
-
| unfold/components/
|
1266
|
-
| unfold/components/
|
1267
|
-
| unfold/components/
|
1268
|
-
| unfold/components/
|
1269
|
-
| unfold/components/
|
1301
|
+
| Component | Description | Arguments |
|
1302
|
+
| --------------------------------- | ------------------------------ | ------------------------------------ |
|
1303
|
+
| unfold/components/button.html | Basic button element | submit |
|
1304
|
+
| unfold/components/card.html | Card component | class, title, footer, label, icon |
|
1305
|
+
| unfold/components/chart/bar.html | Bar chart implementation | class, data, height, width |
|
1306
|
+
| unfold/components/chart/line.html | Line chart implementation | class, data, height, width |
|
1307
|
+
| unfold/components/container.html | Wrapper for settings max width | class |
|
1308
|
+
| unfold/components/flex.html | Flex items | class, col |
|
1309
|
+
| unfold/components/icon.html | Icon element | class |
|
1310
|
+
| unfold/components/navigation.html | List of navigation links | class, items |
|
1311
|
+
| unfold/components/progress.html | Percentual progress bar | class, value, title, description |
|
1312
|
+
| unfold/components/separator.html | Separator, horizontal rule | class |
|
1313
|
+
| unfold/components/table.html | Table | table, card_included, striped |
|
1314
|
+
| unfold/components/text.html | Paragraph of text | class |
|
1315
|
+
| unfold/components/title.html | Basic heading element | class |
|
1316
|
+
|
1317
|
+
|
1318
|
+
#### Table component example
|
1319
|
+
|
1320
|
+
```python
|
1321
|
+
from typing import Dict
|
1322
|
+
from django.http import HttpRequest
|
1323
|
+
|
1324
|
+
|
1325
|
+
def dashboard_callback(request: HttpRequest) -> Dict:
|
1326
|
+
return {
|
1327
|
+
"table_data": {
|
1328
|
+
"headers": ["col 1", "col 2"],
|
1329
|
+
"rows": [
|
1330
|
+
["a", "b"],
|
1331
|
+
["c", "d"],
|
1332
|
+
]
|
1333
|
+
}
|
1334
|
+
}
|
1335
|
+
```
|
1336
|
+
|
1337
|
+
```django-html
|
1338
|
+
{% component "unfold/components/card" with title="Card title" %}
|
1339
|
+
{% component "unfold/components/table.html" with table=table_data card_included=1 striped=1 %}{% encomponent %}
|
1340
|
+
{% endcomponent %}
|
1341
|
+
```
|
1270
1342
|
|
1271
1343
|
## Unfold development
|
1272
1344
|
|