django-unfold 0.64.2__tar.gz → 0.66.0__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.
- {django_unfold-0.64.2 → django_unfold-0.66.0}/PKG-INFO +4 -2
- {django_unfold-0.64.2 → django_unfold-0.66.0}/pyproject.toml +1 -1
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/admin.py +15 -16
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/constance/settings.py +1 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/constance/templates/admin/constance/change_list.html +18 -18
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/constance/templates/admin/constance/includes/results_list.html +13 -11
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/location_field/templates/location_field/map_widget.html +1 -1
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/dataclasses.py +1 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/mixins/base_model_admin.py +1 -1
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/sites.py +45 -18
- django_unfold-0.66.0/src/unfold/static/unfold/css/styles.css +2 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/js/app.js +56 -11
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/styles.css +24 -10
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/change_form.html +6 -2
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/nav_sidebar.html +1 -1
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/components/button.html +1 -1
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/components/card.html +3 -3
- django_unfold-0.66.0/src/unfold/templates/unfold/components/layer.html +1 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/components/progress.html +8 -8
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/components/tracker.html +1 -1
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/app_list.html +1 -1
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/boolean.html +1 -1
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/command.html +1 -1
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/command_results.html +31 -12
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/header_back_button.html +1 -1
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/pagination_infinite.html +1 -1
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/search.html +1 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/site_dropdown.html +1 -1
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/widgets/clearable_file_input_small.html +1 -1
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templatetags/unfold.py +72 -22
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/views.py +2 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/widgets.py +5 -3
- django_unfold-0.64.2/src/unfold/static/unfold/css/styles.css +0 -2
- {django_unfold-0.64.2 → django_unfold-0.66.0}/LICENSE.md +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/README.md +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/__init__.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/apps.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/checks.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/components.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/__init__.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/constance/__init__.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/constance/apps.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/__init__.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/admin/__init__.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/admin/autocomplete_filters.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/admin/choice_filters.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/admin/datetime_filters.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/admin/dropdown_filters.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/admin/mixins.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/admin/numeric_filters.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/admin/text_filters.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/apps.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/forms.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/static/unfold/filters/css/nouislider/LICENSE +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/static/unfold/filters/css/nouislider/nouislider.min.css +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/static/unfold/filters/js/DateTimeShortcuts.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/static/unfold/filters/js/admin-numeric-filter.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/static/unfold/filters/js/nouislider/LICENSE +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/static/unfold/filters/js/nouislider/nouislider.min.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/static/unfold/filters/js/wnumb/LICENSE +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/static/unfold/filters/js/wnumb/wNumb.min.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_date_range.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_datetime_range.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_field.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_numeric_range.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_numeric_single.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_numeric_slider.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/forms/__init__.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/forms/apps.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/forms/static/unfold/forms/css/trix/LICENSE +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/forms/static/unfold/forms/css/trix/trix.css +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/forms/static/unfold/forms/js/trix/LICENSE +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/forms/static/unfold/forms/js/trix/trix.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/forms/static/unfold/forms/js/trix.config.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/forms/templates/unfold/forms/array.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/forms/templates/unfold/forms/helpers/toolbar.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/forms/templates/unfold/forms/wysiwyg.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/forms/widgets.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/guardian/__init__.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/guardian/apps.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/change_form.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/field.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_group.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_user.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/guardian/templates/unfold/guardian/group_form.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/guardian/templates/unfold/guardian/user_form.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/__init__.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/apps.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/forms.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/templates/admin/import_export/base.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_form.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_export.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_export_item.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_import.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_import_export.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_import_item.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/templates/admin/import_export/export.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/templates/admin/import_export/import.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_confirm.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_errors.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_form.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_preview.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_validation.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/import_export/templates/admin/import_export/resource_fields_list.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/inlines/__init__.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/inlines/admin.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/inlines/apps.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/inlines/checks.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/inlines/forms.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/location_field/__init__.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/location_field/apps.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/simple_history/__init__.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/simple_history/apps.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/simple_history/templates/simple_history/object_history.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/simple_history/templates/simple_history/object_history_form.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/simple_history/templates/simple_history/object_history_list.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/contrib/simple_history/templates/simple_history/submit_line.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/decorators.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/enums.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/exceptions.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/fields.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/forms.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/layout.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/mixins/__init__.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/mixins/action_model_admin.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/overrides.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/paginator.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/sections.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/settings.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/admin/js/admin/RelatedObjectLookups.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/admin/js/inlines.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/css/simplebar/LICENSE +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/css/simplebar/simplebar.css +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/fonts/inter/Inter-Bold.woff2 +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/fonts/inter/Inter-Medium.woff2 +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/fonts/inter/Inter-Regular.woff2 +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/fonts/inter/Inter-SemiBold.woff2 +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/fonts/inter/LICENSE +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/fonts/inter/styles.css +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/fonts/material-symbols/LICENSE +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/fonts/material-symbols/Material-Symbols-Outlined.woff2 +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/fonts/material-symbols/styles.css +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/js/alpine/LICENSE +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/js/alpine/alpine.anchor.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/js/alpine/alpine.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/js/alpine/alpine.persist.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/js/alpine/alpine.resize.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/js/alpine/alpine.sort.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/js/chart/LICENSE +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/js/chart/chart.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/js/htmx/LICENSE +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/js/htmx/htmx.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/js/select2.init.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/js/simplebar/LICENSE +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/static/unfold/js/simplebar/simplebar.js +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/actions.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/app_index.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/app_list.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/auth/user/add_form.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/auth/user/change_password.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/base.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/base_site.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/change_form_object_tools.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/change_list.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/change_list_object_tools.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/change_list_results.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/date_hierarchy.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/delete_confirmation.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/delete_selected_confirmation.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/edit_inline/stacked.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/edit_inline/tabular.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/filter.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/includes/fieldset.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/includes/object_delete_summary.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/index.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/login.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/object_history.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/pagination.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/search_form.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/admin/submit_line.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/auth/widgets/read_only_password_hash.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/registration/logged_out.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/registration/password_change_done.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/registration/password_change_form.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/components/chart/bar.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/components/chart/cohort.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/components/chart/line.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/components/container.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/components/flex.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/components/icon.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/components/navigation.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/components/separator.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/components/table.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/components/text.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/components/title.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/account_links.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/actions_row.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/add_link.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/app_list_default.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/attrs.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/breadcrumb_item.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/change_list_actions.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/change_list_filter.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/change_list_filter_actions.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/command_history.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/delete_submit_line.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/display_dropdown.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/display_header.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/display_label.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/edit_inline/tabular_delete.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/edit_inline/tabular_error.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/edit_inline/tabular_field.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/edit_inline/tabular_heading.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/edit_inline/tabular_row.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/edit_inline/tabular_title.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/empty_results.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/field.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/field_readonly.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/field_readonly_value.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/fieldset_row.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/fieldset_row_checkbox.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/fieldset_row_field.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/fieldsets_tabs.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/form_errors.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/form_label.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/header.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/header_title.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/help_text.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/history.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/label.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/language_form.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/language_switch.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/messages/debug.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/messages/error.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/messages/errornote.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/messages/info.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/messages/success.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/messages/warning.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/messages.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/navigation.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/navigation_header.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/pagination.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/pagination_current_item.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/pagination_default.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/pagination_ellipsis.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/pagination_inline.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/popup_header.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/search_results.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/shortcut.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/site_branding.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/site_icon.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/site_logo.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/submit.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/tab_action.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/tab_actions.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/tab_items.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/tab_list.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/theme_switch.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/unauthenticated_header.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/unauthenticated_title.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/userlinks.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/helpers/welcomemsg.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/layouts/base.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/layouts/base_simple.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/layouts/skeleton.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/layouts/unauthenticated.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/templatetags/preserve_changelist_filters.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/widgets/clearable_file_input.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/widgets/date.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/widgets/foreign_key_raw_id.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/widgets/radio.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/widgets/radio_option.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/widgets/range.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/widgets/related_widget_wrapper.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/widgets/select.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/widgets/split_datetime.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/widgets/split_datetime_vertical.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/widgets/split_money.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/widgets/text.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/widgets/textarea.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/widgets/time.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold/widgets/url.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/display_form.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/errors.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/errors_formset.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/field.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/inputs.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/layout/attrs.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/layout/baseinput.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/layout/button.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/layout/buttonholder.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/layout/checkbox.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/layout/column.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/layout/div.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/layout/field_errors.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/layout/fieldset.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/layout/fieldset_subheader.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/layout/help_text.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/layout/help_text_and_errors.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/layout/hr.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/layout/radio_checkbox_select.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/layout/row.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/layout/table_inline_formset.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/uni_form.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/whole_uni_form.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templates/unfold_crispy/whole_uni_formset.html +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templatetags/__init__.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/templatetags/unfold_list.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/typing.py +0 -0
- {django_unfold-0.64.2 → django_unfold-0.66.0}/src/unfold/utils.py +0 -0
@@ -1,8 +1,9 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: django-unfold
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.66.0
|
4
4
|
Summary: Modern Django admin theme for seamless interface development
|
5
5
|
License: MIT
|
6
|
+
License-File: LICENSE.md
|
6
7
|
Keywords: django,admin,tailwind,theme
|
7
8
|
Requires-Python: >=3.9
|
8
9
|
Classifier: Environment :: Web Environment
|
@@ -17,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
17
18
|
Classifier: Programming Language :: Python :: 3.11
|
18
19
|
Classifier: Programming Language :: Python :: 3.12
|
19
20
|
Classifier: Programming Language :: Python :: 3.13
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
20
22
|
Requires-Dist: django (>=4.2)
|
21
23
|
Project-URL: Homepage, https://unfoldadmin.com
|
22
24
|
Project-URL: Repository, https://github.com/unfoldadmin/django-unfold
|
@@ -63,30 +63,29 @@ class ModelAdmin(BaseModelAdminMixin, ActionModelAdminMixin, BaseModelAdmin):
|
|
63
63
|
warn_unsaved_form = False
|
64
64
|
checks_class = UnfoldModelAdminChecks
|
65
65
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
66
|
+
@property
|
67
|
+
def media(self):
|
68
|
+
if not hasattr(self, "request"):
|
69
|
+
return super().media
|
70
70
|
|
71
|
-
|
71
|
+
media = super().media
|
72
|
+
|
73
|
+
for filter in self.get_list_filter(self.request):
|
72
74
|
if (
|
73
75
|
isinstance(filter, (tuple, list))
|
74
76
|
and hasattr(filter[1], "form_class")
|
75
77
|
and hasattr(filter[1].form_class, "Media")
|
76
78
|
):
|
77
|
-
|
79
|
+
media += forms.Media(filter[1].form_class.Media)
|
78
80
|
elif hasattr(filter, "form_class") and hasattr(filter.form_class, "Media"):
|
79
|
-
|
81
|
+
media += forms.Media(filter.form_class.Media)
|
80
82
|
|
81
|
-
|
82
|
-
extra_context = {}
|
83
|
-
|
84
|
-
extra_context.update(
|
85
|
-
{
|
86
|
-
"media": self.media + additional_media,
|
87
|
-
}
|
88
|
-
)
|
83
|
+
return media
|
89
84
|
|
85
|
+
def changelist_view(
|
86
|
+
self, request: HttpRequest, extra_context: Optional[dict[str, str]] = None
|
87
|
+
) -> TemplateResponse:
|
88
|
+
self.request = request
|
90
89
|
return super().changelist_view(request, extra_context)
|
91
90
|
|
92
91
|
def get_fieldsets(self, request: HttpRequest, obj=None) -> FieldsetsType:
|
@@ -193,7 +192,7 @@ class ModelAdmin(BaseModelAdminMixin, ActionModelAdminMixin, BaseModelAdmin):
|
|
193
192
|
) -> dict[str, Any]:
|
194
193
|
formset_kwargs = super().get_formset_kwargs(request, obj, inline, prefix)
|
195
194
|
|
196
|
-
if hasattr(inline, "per_page"):
|
195
|
+
if hasattr(inline, "per_page") and inline.per_page:
|
197
196
|
formset_kwargs["request"] = request
|
198
197
|
formset_kwargs["per_page"] = inline.per_page
|
199
198
|
|
@@ -22,30 +22,30 @@
|
|
22
22
|
{{ field }}
|
23
23
|
{% endfor %}
|
24
24
|
|
25
|
-
|
26
|
-
<
|
27
|
-
|
25
|
+
<div class="border border-base-200 rounded-default overflow-x-auto simplebar-horizontal-scrollbar-top dark:border-base-800" data-simplebar data-simplebar-auto-hide="false">
|
26
|
+
<table class="w-full border-collapse">
|
27
|
+
{% if fieldsets %}
|
28
28
|
{% for fieldset in fieldsets %}
|
29
29
|
{% with config_values=fieldset.config_values %}
|
30
30
|
{% include "admin/constance/includes/results_list.html" %}
|
31
31
|
{% endwith %}
|
32
32
|
{% endfor %}
|
33
|
+
{% else %}
|
34
|
+
{% include "admin/constance/includes/results_list.html" %}
|
35
|
+
{% endif %}
|
33
36
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
{% else %}
|
47
|
-
{% include "admin/constance/includes/results_list.html" %}
|
48
|
-
{% endif %}
|
37
|
+
<tfoot>
|
38
|
+
<tr>
|
39
|
+
<td class="border-t border-base-200 px-3 py-2 dark:border-base-800" colspan="100%">
|
40
|
+
<div class="flex justify-end">
|
41
|
+
{% trans "Save" as title %}
|
42
|
+
{% include "unfold/helpers/submit.html" with title=title %}
|
43
|
+
</div>
|
44
|
+
</td>
|
45
|
+
</tr>
|
46
|
+
</tfoot>
|
47
|
+
</table>
|
48
|
+
</div>
|
49
49
|
</form>
|
50
50
|
</div>
|
51
51
|
</div>
|
@@ -1,19 +1,21 @@
|
|
1
1
|
{% load admin_list static i18n %}
|
2
2
|
|
3
3
|
<tbody {% if fieldset.collapse %} x-data="{ rowsOpen: false }" {% endif %}>
|
4
|
-
|
5
|
-
<
|
6
|
-
{
|
4
|
+
{% if fieldset.title %}
|
5
|
+
<tr {% if fieldset.collapse %} x-on:click="rowsOpen = !rowsOpen" {% endif %} class="{% if fieldset.collapse %}cursor-pointer{% endif %}">
|
6
|
+
<th class="bg-base-50 border-t border-base-200 font-semibold px-3 py-2 text-left text-font-important-light dark:text-font-important-dark dark:border-base-800 dark:bg-white/[.04] {% if forloop.first %}border-t-0{% endif %}" colspan="100%">
|
7
|
+
{{ fieldset.title }}
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
9
|
+
{% if fieldset.collapse %}
|
10
|
+
<span class="material-symbols-outlined float-right select-none transition-all" title="{% trans "Collapse" %}" x-bind:class="rowsOpen ? 'rotate-180' : ''">
|
11
|
+
expand_more
|
12
|
+
</span>
|
13
|
+
{% endif %}
|
14
|
+
</th>
|
15
|
+
</tr>
|
16
|
+
{% endif %}
|
15
17
|
|
16
|
-
<tr class="border-t border-base-200 dark:border-base-800 *:font-semibold *:px-3 *:py-2 *:text-left *:text-font-important-light dark:*:text-font-important-dark" {% if fieldset.collapse %}x-show="rowsOpen"{% endif %}>
|
18
|
+
<tr class="{% if fieldset.title %}border-t{% endif %} border-base-200 dark:border-base-800 *:font-semibold *:px-3 *:py-2 *:text-left *:text-font-important-light dark:*:text-font-important-dark" {% if fieldset.collapse %}x-show="rowsOpen"{% endif %}>
|
17
19
|
<th>{% trans "Name" %}</th>
|
18
20
|
<th>{% trans "Value" %}</th>
|
19
21
|
<th>{% trans "Default" %}</th>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div class="map-widget flex flex-col gap-2">
|
2
2
|
{{ field_input }}
|
3
3
|
|
4
|
-
<div id="map_{{ field_name }}" class="border gap-2 h-72 max-w-2xl rounded-default shadow-xs"></div>
|
4
|
+
<div id="map_{{ field_name }}" class="border gap-2 h-72 max-w-2xl rounded-default shadow-xs z-10"></div>
|
5
5
|
</div>
|
@@ -18,7 +18,7 @@ from unfold.overrides import FORMFIELD_OVERRIDES
|
|
18
18
|
|
19
19
|
|
20
20
|
class BaseModelAdminMixin:
|
21
|
-
def __init__(self, model: models.Model, admin_site: AdminSite) -> None:
|
21
|
+
def __init__(self, model: type[models.Model], admin_site: AdminSite) -> None:
|
22
22
|
overrides = copy.deepcopy(FORMFIELD_OVERRIDES)
|
23
23
|
|
24
24
|
for k, v in self.formfield_overrides.items():
|
@@ -6,6 +6,7 @@ from urllib.parse import parse_qs, urlparse
|
|
6
6
|
|
7
7
|
from django.contrib.admin import AdminSite
|
8
8
|
from django.core.cache import cache
|
9
|
+
from django.core.paginator import Paginator
|
9
10
|
from django.core.validators import EMPTY_VALUES
|
10
11
|
from django.http import HttpRequest, HttpResponse
|
11
12
|
from django.template.response import TemplateResponse
|
@@ -209,12 +210,23 @@ class UnfoldAdminSite(AdminSite):
|
|
209
210
|
return results
|
210
211
|
|
211
212
|
def _search_models(
|
212
|
-
self,
|
213
|
+
self,
|
214
|
+
request: HttpRequest,
|
215
|
+
app_list: list[dict[str, Any]],
|
216
|
+
search_term: str,
|
217
|
+
allowed_models: Optional[list[str]] = None,
|
213
218
|
) -> list[SearchResult]:
|
214
219
|
results = []
|
215
220
|
|
216
221
|
for app in app_list:
|
217
222
|
for model in app["models"]:
|
223
|
+
# Skip models which are not allowed
|
224
|
+
if isinstance(allowed_models, (list, tuple)):
|
225
|
+
if model["model"]._meta.label.lower() not in [
|
226
|
+
m.lower() for m in allowed_models
|
227
|
+
]:
|
228
|
+
continue
|
229
|
+
|
218
230
|
admin_instance = self._registry.get(model["model"])
|
219
231
|
search_fields = admin_instance.get_search_fields(request)
|
220
232
|
|
@@ -255,7 +267,8 @@ class UnfoldAdminSite(AdminSite):
|
|
255
267
|
) -> TemplateResponse:
|
256
268
|
start_time = time.time()
|
257
269
|
|
258
|
-
CACHE_TIMEOUT =
|
270
|
+
CACHE_TIMEOUT = 5 * 60
|
271
|
+
PER_PAGE = 100
|
259
272
|
|
260
273
|
search_term = request.GET.get("s")
|
261
274
|
extended_search = "extended" in request.GET
|
@@ -276,33 +289,50 @@ class UnfoldAdminSite(AdminSite):
|
|
276
289
|
results = cache_results
|
277
290
|
else:
|
278
291
|
results = self._search_apps(app_list, search_term)
|
279
|
-
search_models = self._get_config("COMMAND", request).get("search_models")
|
280
|
-
search_callback = self._get_config("COMMAND", request).get(
|
281
|
-
"search_callback"
|
282
|
-
)
|
283
292
|
|
284
293
|
if extended_search:
|
285
|
-
if search_callback
|
294
|
+
if search_callback := self._get_config("COMMAND", request).get(
|
295
|
+
"search_callback"
|
296
|
+
):
|
286
297
|
results.extend(
|
287
298
|
self._get_value(search_callback, request, search_term)
|
288
299
|
)
|
289
300
|
|
290
|
-
|
291
|
-
|
301
|
+
search_models = self._get_value(
|
302
|
+
self._get_config("COMMAND", request).get("search_models"), request
|
303
|
+
)
|
304
|
+
|
305
|
+
if search_models is True or isinstance(search_models, (list, tuple)):
|
306
|
+
allowed_models = (
|
307
|
+
search_models
|
308
|
+
if isinstance(search_models, (list, tuple))
|
309
|
+
else None
|
310
|
+
)
|
311
|
+
|
312
|
+
results.extend(
|
313
|
+
self._search_models(
|
314
|
+
request, app_list, search_term, allowed_models
|
315
|
+
)
|
316
|
+
)
|
292
317
|
|
293
318
|
cache.set(cache_key, results, timeout=CACHE_TIMEOUT)
|
294
319
|
|
295
320
|
execution_time = time.time() - start_time
|
321
|
+
paginator = Paginator(results, PER_PAGE)
|
322
|
+
|
323
|
+
show_history = self._get_value(
|
324
|
+
self._get_config("COMMAND", request).get("show_history"), request
|
325
|
+
)
|
296
326
|
|
297
327
|
return TemplateResponse(
|
298
328
|
request,
|
299
329
|
template=template_name,
|
300
330
|
context={
|
301
|
-
"
|
331
|
+
"page_obj": paginator,
|
332
|
+
"results": paginator.page(request.GET.get("page", 1)),
|
333
|
+
"page_counter": (int(request.GET.get("page", 1)) - 1) * PER_PAGE,
|
302
334
|
"execution_time": execution_time,
|
303
|
-
"command_show_history":
|
304
|
-
"show_history"
|
305
|
-
),
|
335
|
+
"command_show_history": show_history,
|
306
336
|
},
|
307
337
|
headers={
|
308
338
|
"HX-Trigger": "search",
|
@@ -356,11 +386,7 @@ class UnfoldAdminSite(AdminSite):
|
|
356
386
|
)
|
357
387
|
|
358
388
|
# Checks if any tab item is active and then marks the sidebar link as active
|
359
|
-
if (
|
360
|
-
tabs
|
361
|
-
and self._get_is_tab_active(request, tabs, link)
|
362
|
-
and "active" not in item
|
363
|
-
):
|
389
|
+
if tabs and self._get_is_tab_active(request, tabs, link):
|
364
390
|
item["active"] = True
|
365
391
|
|
366
392
|
# Link callback
|
@@ -582,6 +608,7 @@ class UnfoldAdminSite(AdminSite):
|
|
582
608
|
title=item.get("title"),
|
583
609
|
link=self._get_value(item["link"], *args),
|
584
610
|
icon=item.get("icon"),
|
611
|
+
attrs=item.get("attrs"),
|
585
612
|
)
|
586
613
|
for item in items
|
587
614
|
]
|