django-unfold 0.33.0__tar.gz → 0.34.0__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {django_unfold-0.33.0 → django_unfold-0.34.0}/PKG-INFO +17 -1
- {django_unfold-0.33.0 → django_unfold-0.34.0}/README.md +16 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/pyproject.toml +1 -1
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/admin.py +5 -9
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_date_range.html +1 -1
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_datetime_range.html +1 -1
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_numeric_range.html +1 -1
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_numeric_single.html +1 -1
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_numeric_slider.html +1 -1
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/templates/unfold/guardian/group_form.html +10 -10
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/templates/unfold/guardian/user_form.html +10 -10
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_confirm.html +1 -1
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_errors.html +3 -3
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_preview.html +6 -6
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_validation.html +8 -8
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/simple_history/templates/simple_history/object_history_list.html +18 -18
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/fields.py +2 -2
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/forms.py +2 -1
- django_unfold-0.34.0/src/unfold/static/unfold/css/styles.css +1 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/styles.css +6 -10
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/actions.html +14 -12
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/app_list.html +3 -5
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/change_list.html +4 -4
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/change_list_results.html +4 -4
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/delete_confirmation.html +9 -9
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/delete_selected_confirmation.html +9 -9
- django_unfold-0.34.0/src/unfold/templates/admin/edit_inline/stacked.html +92 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/edit_inline/tabular.html +11 -11
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/filter.html +5 -5
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/includes/object_delete_summary.html +2 -2
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/object_history.html +9 -9
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/pagination.html +3 -3
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/submit_line.html +7 -7
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/change_list_filter.html +3 -3
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/progress.html +1 -1
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/table.html +4 -4
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/title.html +1 -1
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/account_links.html +2 -2
- django_unfold-0.34.0/src/unfold/templates/unfold/helpers/actions_row.html +21 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/add_link.html +2 -2
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/app_list.html +7 -7
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/app_list_default.html +7 -7
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/breadcrumb_item.html +1 -1
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/display_header.html +4 -2
- django_unfold-0.34.0/src/unfold/templates/unfold/helpers/field_readonly_value.html +1 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/fieldset_row.html +1 -1
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/fieldsets_tabs.html +1 -1
- django_unfold-0.34.0/src/unfold/templates/unfold/helpers/help_text.html +5 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/history.html +3 -3
- django_unfold-0.34.0/src/unfold/templates/unfold/helpers/label.html +16 -0
- django_unfold-0.34.0/src/unfold/templates/unfold/helpers/messages.html +20 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/navigation.html +1 -1
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/search_results.html +2 -2
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/site_icon.html +1 -1
- django_unfold-0.34.0/src/unfold/templates/unfold/helpers/tab_action.html +5 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/tab_list.html +9 -5
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/theme_switch.html +2 -2
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/welcomemsg.html +5 -3
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/layouts/skeleton.html +2 -2
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/clearable_file_input.html +2 -2
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/clearable_file_input_small.html +2 -2
- django_unfold-0.34.0/src/unfold/templates/unfold/widgets/foreign_key_raw_id.html +19 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/radio_option.html +1 -1
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/split_datetime.html +2 -2
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/split_datetime_vertical.html +2 -2
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templatetags/unfold_list.py +6 -7
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/widgets.py +10 -5
- django_unfold-0.33.0/src/unfold/static/unfold/css/styles.css +0 -1
- django_unfold-0.33.0/src/unfold/templates/admin/edit_inline/stacked.html +0 -86
- django_unfold-0.33.0/src/unfold/templates/unfold/helpers/actions_row.html +0 -19
- django_unfold-0.33.0/src/unfold/templates/unfold/helpers/field_readonly_value.html +0 -1
- django_unfold-0.33.0/src/unfold/templates/unfold/helpers/help_text.html +0 -5
- django_unfold-0.33.0/src/unfold/templates/unfold/helpers/label.html +0 -16
- django_unfold-0.33.0/src/unfold/templates/unfold/helpers/messages.html +0 -9
- django_unfold-0.33.0/src/unfold/templates/unfold/helpers/tab_action.html +0 -5
- django_unfold-0.33.0/src/unfold/templates/unfold/widgets/foreign_key_raw_id.html +0 -15
- {django_unfold-0.33.0 → django_unfold-0.34.0}/LICENSE.md +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/__init__.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/apps.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/checks.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/__init__.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/__init__.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/admin.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/apps.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/forms.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/static/unfold/filters/css/nouislider.min.css +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/static/unfold/filters/js/DateTimeShortcuts.js +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/static/unfold/filters/js/admin-numeric-filter.js +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/static/unfold/filters/js/nouislider.min.js +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/static/unfold/filters/js/wNumb.min.js +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_field.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/__init__.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/apps.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/static/unfold/forms/css/trix.css +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/static/unfold/forms/js/trix.config.js +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/static/unfold/forms/js/trix.js +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/templates/unfold/forms/array.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/templates/unfold/forms/helpers/toolbar.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/templates/unfold/forms/wysiwyg.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/widgets.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/__init__.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/apps.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/change_form.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/field.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_group.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_user.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/__init__.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/apps.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/forms.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/base.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_form.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_export.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_export_item.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_import_export.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_import_item.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/export.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/import.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_form.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/resource_fields_list.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/inlines/__init__.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/inlines/admin.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/inlines/apps.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/inlines/checks.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/inlines/forms.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/simple_history/__init__.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/simple_history/apps.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/simple_history/templates/simple_history/object_history.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/simple_history/templates/simple_history/object_history_form.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/simple_history/templates/simple_history/submit_line.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/dataclasses.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/decorators.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/exceptions.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/settings.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/sites.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/css/simplebar.css +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/fonts/inter/Inter-Bold.woff2 +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/fonts/inter/Inter-Medium.woff2 +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/fonts/inter/Inter-Regular.woff2 +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/fonts/inter/Inter-SemiBold.woff2 +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/fonts/inter/styles.css +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/fonts/material-symbols/Material-Symbols-Outlined.woff2 +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/fonts/material-symbols/styles.css +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/js/alpine.anchor.js +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/js/alpine.js +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/js/alpine.persist.js +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/js/app.js +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/js/chart.js +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/js/htmx.js +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/js/simplebar.js +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/app_index.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/auth/user/add_form.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/auth/user/change_password.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/base.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/base_site.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/change_form.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/change_form_object_tools.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/change_list_object_tools.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/date_hierarchy.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/includes/fieldset.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/index.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/login.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/nav_sidebar.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/search_form.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/auth/widgets/read_only_password_hash.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/registration/logged_out.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/registration/password_change_done.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/registration/password_change_form.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/button.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/card.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/chart/bar.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/chart/line.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/container.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/flex.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/icon.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/navigation.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/separator.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/text.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/attrs.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/boolean.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/display_label.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/field.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/field_readonly.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/form_errors.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/form_label.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/header.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/messages/error.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/messages/errornote.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/messages/info.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/pagination_current_item.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/pagination_ellipsis.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/search.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/site_logo.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/submit.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/userlinks.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/layouts/base.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/layouts/base_simple.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/date.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/radio.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/range.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/related_widget_wrapper.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/split_money.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/textarea.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/textarea_expandable.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/time.html +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templatetags/__init__.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templatetags/unfold.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/typing.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/utils.py +0 -0
- {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/views.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: django-unfold
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.34.0
|
4
4
|
Summary: Modern Django admin theme for seamless interface development
|
5
5
|
Home-page: https://unfoldadmin.com
|
6
6
|
License: MIT
|
@@ -111,6 +111,7 @@ Did you decide to start using Unfold but you don't have time to make the switch
|
|
111
111
|
- [Pre-commit](#pre-commit)
|
112
112
|
- [Poetry configuration](#poetry-configuration)
|
113
113
|
- [Compiling Tailwind](#compiling-tailwind)
|
114
|
+
- [Design system](#design-system)
|
114
115
|
- [Using VS Code with containers](#using-vs-code-with-containers)
|
115
116
|
- [Development server](#development-server)
|
116
117
|
- [Compiling Tailwind in devcontainer](#compiling-tailwind-in-devcontainer)
|
@@ -374,6 +375,9 @@ class CustomAdminClass(ModelAdmin):
|
|
374
375
|
# Position horizontal scrollbar in changelist at the top
|
375
376
|
list_horizontal_scrollbar_top = False
|
376
377
|
|
378
|
+
# Dsable select all action in changelist
|
379
|
+
list_disable_select_all = False
|
380
|
+
|
377
381
|
# Custom actions
|
378
382
|
actions_list = [] # Displayed above the results list
|
379
383
|
actions_row = [] # Displayed in a table row in results list
|
@@ -1402,6 +1406,17 @@ Some components like datepickers, calendars or selectors in admin was not possib
|
|
1402
1406
|
|
1403
1407
|
**Note:** most of the custom styles located in style.css are created via `@apply some-tailwind-class;` as is not possible to manually add CSS class to element which are for example created via jQuery.
|
1404
1408
|
|
1409
|
+
|
1410
|
+
### Design system
|
1411
|
+
|
1412
|
+
| Component | Classes |
|
1413
|
+
| --------------------------------- | ------------------------------------------------------ |
|
1414
|
+
| Regular text | text-gray-600 dark:text-gray-300 |
|
1415
|
+
| Hover regular text | text-gray-700 dark:text-gray-200 |
|
1416
|
+
| Headings | font-semibold text-gray-900 dark:text-gray-100 |
|
1417
|
+
| Icon | text-gray-400 dark:text-gray-500 |
|
1418
|
+
| Hover icon | hover:text-gray-500 dark:hover:text-gray-400 |
|
1419
|
+
|
1405
1420
|
### Using VS Code with containers
|
1406
1421
|
|
1407
1422
|
Unfold already contains prepared support for VS Code development. After cloning the project locally, open the main folder in VS Code (in terminal `code .`). Immediately, you would see a message from VS Code **Folder contains a Dev Container configuration file. Reopen folder to develop in a container** which will inform you that the support for containers is prepared. Confirm the message by clicking on **Reopen in Container**. If the message is not there, you can still manually open the project in a container by running the command **Dev Containers: Reopen in Container**.
|
@@ -1424,4 +1439,5 @@ The container has already a node preinstalled so it is possible to compile a new
|
|
1424
1439
|
- [Material Icons](https://fonts.google.com/icons) - Icons from Google Fonts
|
1425
1440
|
- [Trix](https://trix-editor.org/) - WYSIWYG editor
|
1426
1441
|
- [Alpine.js](https://alpinejs.dev/) - JavaScript interactions
|
1442
|
+
- [Chart.js](https://github.com/chartjs/Chart.js/) - Chart components
|
1427
1443
|
|
@@ -87,6 +87,7 @@ Did you decide to start using Unfold but you don't have time to make the switch
|
|
87
87
|
- [Pre-commit](#pre-commit)
|
88
88
|
- [Poetry configuration](#poetry-configuration)
|
89
89
|
- [Compiling Tailwind](#compiling-tailwind)
|
90
|
+
- [Design system](#design-system)
|
90
91
|
- [Using VS Code with containers](#using-vs-code-with-containers)
|
91
92
|
- [Development server](#development-server)
|
92
93
|
- [Compiling Tailwind in devcontainer](#compiling-tailwind-in-devcontainer)
|
@@ -350,6 +351,9 @@ class CustomAdminClass(ModelAdmin):
|
|
350
351
|
# Position horizontal scrollbar in changelist at the top
|
351
352
|
list_horizontal_scrollbar_top = False
|
352
353
|
|
354
|
+
# Dsable select all action in changelist
|
355
|
+
list_disable_select_all = False
|
356
|
+
|
353
357
|
# Custom actions
|
354
358
|
actions_list = [] # Displayed above the results list
|
355
359
|
actions_row = [] # Displayed in a table row in results list
|
@@ -1378,6 +1382,17 @@ Some components like datepickers, calendars or selectors in admin was not possib
|
|
1378
1382
|
|
1379
1383
|
**Note:** most of the custom styles located in style.css are created via `@apply some-tailwind-class;` as is not possible to manually add CSS class to element which are for example created via jQuery.
|
1380
1384
|
|
1385
|
+
|
1386
|
+
### Design system
|
1387
|
+
|
1388
|
+
| Component | Classes |
|
1389
|
+
| --------------------------------- | ------------------------------------------------------ |
|
1390
|
+
| Regular text | text-gray-600 dark:text-gray-300 |
|
1391
|
+
| Hover regular text | text-gray-700 dark:text-gray-200 |
|
1392
|
+
| Headings | font-semibold text-gray-900 dark:text-gray-100 |
|
1393
|
+
| Icon | text-gray-400 dark:text-gray-500 |
|
1394
|
+
| Hover icon | hover:text-gray-500 dark:hover:text-gray-400 |
|
1395
|
+
|
1381
1396
|
### Using VS Code with containers
|
1382
1397
|
|
1383
1398
|
Unfold already contains prepared support for VS Code development. After cloning the project locally, open the main folder in VS Code (in terminal `code .`). Immediately, you would see a message from VS Code **Folder contains a Dev Container configuration file. Reopen folder to develop in a container** which will inform you that the support for containers is prepared. Confirm the message by clicking on **Reopen in Container**. If the message is not there, you can still manually open the project in a container by running the command **Dev Containers: Reopen in Container**.
|
@@ -1400,3 +1415,4 @@ The container has already a node preinstalled so it is possible to compile a new
|
|
1400
1415
|
- [Material Icons](https://fonts.google.com/icons) - Icons from Google Fonts
|
1401
1416
|
- [Trix](https://trix-editor.org/) - WYSIWYG editor
|
1402
1417
|
- [Alpine.js](https://alpinejs.dev/) - JavaScript interactions
|
1418
|
+
- [Chart.js](https://github.com/chartjs/Chart.js/) - Chart components
|
@@ -84,7 +84,7 @@ FORMFIELD_OVERRIDES = {
|
|
84
84
|
models.UUIDField: {"widget": UnfoldAdminUUIDInputWidget},
|
85
85
|
models.TextField: {"widget": UnfoldAdminTextareaWidget},
|
86
86
|
models.NullBooleanField: {"widget": UnfoldAdminNullBooleanSelectWidget},
|
87
|
-
models.BooleanField: {"widget":
|
87
|
+
models.BooleanField: {"widget": UnfoldBooleanSwitchWidget},
|
88
88
|
models.IntegerField: {"widget": UnfoldAdminIntegerFieldWidget},
|
89
89
|
models.BigIntegerField: {"widget": UnfoldAdminBigIntegerFieldWidget},
|
90
90
|
models.DecimalField: {"widget": UnfoldAdminDecimalFieldWidget},
|
@@ -119,7 +119,9 @@ FORMFIELD_OVERRIDES_INLINE.update(
|
|
119
119
|
}
|
120
120
|
)
|
121
121
|
|
122
|
-
checkbox = UnfoldBooleanWidget(
|
122
|
+
checkbox = UnfoldBooleanWidget(
|
123
|
+
{"class": "action-select", "aria-label": _("Select record")}, lambda value: False
|
124
|
+
)
|
123
125
|
|
124
126
|
helpers.AdminField = UnfoldAdminField
|
125
127
|
|
@@ -231,6 +233,7 @@ class ModelAdmin(ModelAdminMixin, BaseModelAdmin):
|
|
231
233
|
list_horizontal_scrollbar_top = False
|
232
234
|
list_filter_submit = False
|
233
235
|
list_fullwidth = False
|
236
|
+
list_disable_select_all = False
|
234
237
|
compressed_fields = False
|
235
238
|
readonly_preprocess_fields = {}
|
236
239
|
checks_class = UnfoldModelAdminChecks
|
@@ -414,13 +417,6 @@ class ModelAdmin(ModelAdminMixin, BaseModelAdmin):
|
|
414
417
|
if extra_context is None:
|
415
418
|
extra_context = {}
|
416
419
|
|
417
|
-
new_formfield_overrides = copy.deepcopy(self.formfield_overrides)
|
418
|
-
new_formfield_overrides.update(
|
419
|
-
{models.BooleanField: {"widget": UnfoldBooleanSwitchWidget}}
|
420
|
-
)
|
421
|
-
|
422
|
-
self.formfield_overrides = new_formfield_overrides
|
423
|
-
|
424
420
|
actions = []
|
425
421
|
if object_id:
|
426
422
|
for action in self.get_actions_detail(request, object_id):
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
{% with choices.0 as choice %}
|
4
4
|
<div class="flex flex-col mb-6">
|
5
|
-
<h3 class="font-
|
5
|
+
<h3 class="font-semibold mb-2 text-gray-900 dark:text-gray-100">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
|
6
6
|
|
7
7
|
<div class="flex flex-col space-y-4">
|
8
8
|
{% for field in choice.form %}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
{% with choices.0 as choice %}
|
4
4
|
<div class="flex flex-col mb-6">
|
5
|
-
<h3 class="font-
|
5
|
+
<h3 class="font-semibold mb-2 text-gray-900 dark:text-gray-100">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
|
6
6
|
|
7
7
|
<div class="flex flex-col space-y-4">
|
8
8
|
{% for field in choice.form %}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
{% with choices.0 as choice %}
|
4
4
|
<div class="flex flex-col mb-6">
|
5
|
-
<h3 class="font-
|
5
|
+
<h3 class="font-semibold mb-2 text-gray-900 dark:text-gray-100">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
|
6
6
|
|
7
7
|
<div class="flex flex-row gap-4">
|
8
8
|
{% for field in choice.form %}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
{% with choices.0 as choice %}
|
4
4
|
<div class="flex flex-col mb-6">
|
5
|
-
<h3 class="font-
|
5
|
+
<h3 class="font-semibold mb-2 text-gray-900 dark:text-gray-100">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
|
6
6
|
|
7
7
|
{% for field in choice.form %}
|
8
8
|
<div class="flex flex-row flex-wrap group relative{% if field.errors %} errors{% endif %}">
|
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
{% with choices.0 as choice %}
|
5
5
|
<div class="admin-numeric-filter-wrapper mb-6">
|
6
|
-
<h3 class="font-
|
6
|
+
<h3 class="font-semibold mb-2 text-gray-900 dark:text-gray-100">
|
7
7
|
{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}
|
8
8
|
</h3>
|
9
9
|
|
@@ -3,25 +3,25 @@
|
|
3
3
|
<form method="post">
|
4
4
|
{% csrf_token %}
|
5
5
|
|
6
|
-
<h2 class="font-
|
6
|
+
<h2 class="font-semibold mb-3 text-gray-900 dark:text-gray-100">
|
7
7
|
{% trans "Group permissions" %}
|
8
8
|
</h2>
|
9
9
|
|
10
10
|
{% if groups_perms.items %}
|
11
|
-
<table id="group-permissions" class="border-gray-200 border-spacing-none border-separate mb-6
|
12
|
-
<thead class="hidden lg:table-header-group">
|
11
|
+
<table id="group-permissions" class="border-gray-200 border-spacing-none border-separate mb-6 w-full lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
|
12
|
+
<thead class="hidden lg:table-header-group text-gray-900 dark:text-gray-100">
|
13
13
|
<tr>
|
14
|
-
<th class="align-middle font-medium px-3 py-2 text-left
|
14
|
+
<th class="align-middle font-medium px-3 py-2 text-left">
|
15
15
|
{% trans "Group" %}
|
16
16
|
</th>
|
17
17
|
|
18
18
|
{% for perm in model_perms %}
|
19
|
-
<th class="align-middle font-medium px-3 py-2 text-left
|
19
|
+
<th class="align-middle font-medium px-3 py-2 text-left">
|
20
20
|
{{ perm.name }}
|
21
21
|
</th>
|
22
22
|
{% endfor %}
|
23
23
|
|
24
|
-
<th class="align-middle font-medium px-3 py-2 text-right
|
24
|
+
<th class="align-middle font-medium px-3 py-2 text-right">
|
25
25
|
{% trans "Action" %}
|
26
26
|
</th>
|
27
27
|
</tr>
|
@@ -30,14 +30,14 @@
|
|
30
30
|
<tbody>
|
31
31
|
{% for group, group_perms in groups_perms.items %}
|
32
32
|
<tr class="block border mb-3 rounded-md shadow-sm lg:table-row lg:border-none lg:mb-0 lg:shadow-none dark:border-gray-800">
|
33
|
-
<th class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left
|
34
|
-
<span
|
33
|
+
<th class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans "User" %}">
|
34
|
+
<span>
|
35
35
|
{{ group }}
|
36
36
|
</span>
|
37
37
|
</th>
|
38
38
|
|
39
39
|
{% for perm in model_perms %}
|
40
|
-
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left
|
40
|
+
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{{ perm.name }}">
|
41
41
|
{% if perm.codename in group_perms %}
|
42
42
|
{% include "unfold/helpers/boolean.html" with value=False %}
|
43
43
|
{% else %}
|
@@ -46,7 +46,7 @@
|
|
46
46
|
</td>
|
47
47
|
{% endfor %}
|
48
48
|
|
49
|
-
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-right
|
49
|
+
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-right before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans "Action" %}">
|
50
50
|
<a href="group-manage/{{ group.id|safe }}/" class="hover:text-gray-700 dark:hover:text-white">
|
51
51
|
{% trans "Edit" %}
|
52
52
|
</a>
|
@@ -3,25 +3,25 @@
|
|
3
3
|
<form method="post">
|
4
4
|
{% csrf_token %}
|
5
5
|
|
6
|
-
<h2 class="font-medium mb-3
|
6
|
+
<h2 class="font-medium mb-3 text-gray-700 dark:text-gray-200">
|
7
7
|
{% trans "User permissions" %}
|
8
8
|
</h2>
|
9
9
|
|
10
10
|
{% if users_perms.items %}
|
11
|
-
<table id="user-permissions" class="border-gray-200 border-spacing-none border-separate mb-6
|
12
|
-
<thead class="hidden lg:table-header-group">
|
11
|
+
<table id="user-permissions" class="border-gray-200 border-spacing-none border-separate mb-6 w-full lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
|
12
|
+
<thead class="hidden lg:table-header-group text-gray-900 dark:text-gray-100">
|
13
13
|
<tr>
|
14
|
-
<th class="align-middle font-medium px-3 py-2 text-left
|
14
|
+
<th class="align-middle font-medium px-3 py-2 text-left">
|
15
15
|
{% trans "User" %}
|
16
16
|
</th>
|
17
17
|
|
18
18
|
{% for perm in model_perms %}
|
19
|
-
<th class="align-middle font-medium px-3 py-2 text-left
|
19
|
+
<th class="align-middle font-medium px-3 py-2 text-left">
|
20
20
|
{{ perm.name }}
|
21
21
|
</th>
|
22
22
|
{% endfor %}
|
23
23
|
|
24
|
-
<th class="align-middle font-medium px-3 py-2 text-right
|
24
|
+
<th class="align-middle font-medium px-3 py-2 text-right">
|
25
25
|
{% trans "Action" %}
|
26
26
|
</th>
|
27
27
|
</tr>
|
@@ -30,14 +30,14 @@
|
|
30
30
|
<tbody>
|
31
31
|
{% for user, user_perms in users_perms.items %}
|
32
32
|
<tr class="block border mb-3 rounded-md shadow-sm lg:table-row lg:border-none lg:mb-0 lg:shadow-none dark:border-gray-800">
|
33
|
-
<th class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left
|
34
|
-
<span
|
33
|
+
<th class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans "User" %}">
|
34
|
+
<span>
|
35
35
|
{{ user }}
|
36
36
|
</span>
|
37
37
|
</th>
|
38
38
|
|
39
39
|
{% for perm in model_perms %}
|
40
|
-
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left
|
40
|
+
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{{ perm.name }}">
|
41
41
|
{% if perm.codename in group_perms %}
|
42
42
|
{% include "unfold/helpers/boolean.html" with value=False %}
|
43
43
|
{% else %}
|
@@ -46,7 +46,7 @@
|
|
46
46
|
</td>
|
47
47
|
{% endfor %}
|
48
48
|
|
49
|
-
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-right
|
49
|
+
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-right before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans "Action" %}">
|
50
50
|
<a href="user-manage/{{ user.id|safe }}/" class="hover:text-gray-700 dark:hover:text-white">
|
51
51
|
{% trans "Edit" %}
|
52
52
|
</a>
|
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
{{ confirm_form.as_p }}
|
8
8
|
|
9
|
-
<p class="font-
|
9
|
+
<p class="font-semibold p-4 text-sm text-gray-900 dark:text-gray-100">
|
10
10
|
{% trans "Below is a preview of data to be imported. If you are satisfied with the results, click 'Confirm import'" %}
|
11
11
|
</p>
|
12
12
|
|
@@ -14,8 +14,8 @@
|
|
14
14
|
{% for line, errors in result.row_errors %}
|
15
15
|
{% for error in errors %}
|
16
16
|
<li x-data="{ open: false }">
|
17
|
-
<div class="bg-red-50 border border-red-200 cursor-pointer mb-4 rounded shadow-sm text-red-500
|
18
|
-
<div class="border-b border-red-200 flex flex-row font-
|
17
|
+
<div class="bg-red-50 border border-red-200 cursor-pointer mb-4 rounded shadow-sm text-red-500 dark:bg-red-500/20 dark:border-red-500/20" x-on:click="open = ! open">
|
18
|
+
<div class="border-b border-red-200 flex flex-row font-semibold py-3 px-4 dark:border-red-500/20">
|
19
19
|
{% trans "Line number" %}: {{ line }} - {{ error.error }}
|
20
20
|
</div>
|
21
21
|
|
@@ -26,7 +26,7 @@
|
|
26
26
|
</div>
|
27
27
|
</div>
|
28
28
|
|
29
|
-
<div class="block border leading-relaxed rounded p-4
|
29
|
+
<div class="block border leading-relaxed mb-4 rounded p-4 traceback dark:border-gray-800 dark:text-gray-300 " x-show="open">
|
30
30
|
{{ error.traceback|linebreaks }}
|
31
31
|
</div>
|
32
32
|
</li>
|
@@ -1,13 +1,13 @@
|
|
1
1
|
{% load admin_urls i18n import_export_tags unfold %}
|
2
2
|
|
3
3
|
{% block preview %}
|
4
|
-
<table class="border-gray-200 border-spacing-none border-separate
|
5
|
-
<thead class="hidden lg:table-header-group">
|
4
|
+
<table class="border-gray-200 border-spacing-none border-separate w-full lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
|
5
|
+
<thead class="hidden lg:table-header-group text-gray-900 dark:text-gray-100">
|
6
6
|
<tr>
|
7
|
-
<th class="align-middle capitalize font-
|
7
|
+
<th class="align-middle capitalize font-semibold px-3 py-2 text-left"></th>
|
8
8
|
|
9
9
|
{% for field in result.diff_headers %}
|
10
|
-
<th class="align-middle capitalize font-
|
10
|
+
<th class="align-middle capitalize font-semibold px-3 py-2 text-left">
|
11
11
|
{{ field }}
|
12
12
|
</th>
|
13
13
|
{% endfor %}
|
@@ -17,7 +17,7 @@
|
|
17
17
|
<tbody>
|
18
18
|
{% for row in result.valid_rows %}
|
19
19
|
<tr class="{{ row.import_type }} {% cycle '' 'bg-gray-50 dark:bg-white/[.02]' %} block border mb-3 rounded-md shadow-sm lg:table-row lg:border-none lg:mb-0 lg:shadow-none dark:border-gray-800">
|
20
|
-
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left
|
20
|
+
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:block before:capitalize before:content-[attr(data-label)] before:mr-auto lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
|
21
21
|
{% if row.import_type == 'new' %}
|
22
22
|
{% trans "New" %}
|
23
23
|
{% elif row.import_type == 'skip' %}
|
@@ -30,7 +30,7 @@
|
|
30
30
|
</td>
|
31
31
|
|
32
32
|
{% for field in row.diff %}
|
33
|
-
<td data-label="{{ result.diff_headers|index:forloop.counter0 }}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left
|
33
|
+
<td data-label="{{ result.diff_headers|index:forloop.counter0 }}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:block before:capitalize before:content-[attr(data-label)] before:mr-auto lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
|
34
34
|
{{ field }}
|
35
35
|
</td>
|
36
36
|
{% endfor %}
|
@@ -15,19 +15,19 @@
|
|
15
15
|
</div>
|
16
16
|
</div>
|
17
17
|
|
18
|
-
<table class="border-gray-200 border-spacing-none border-separate
|
19
|
-
<thead class="hidden lg:table-header-group">
|
18
|
+
<table class="border-gray-200 border-spacing-none border-separate w-full lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
|
19
|
+
<thead class="hidden lg:table-header-group font-semibold text-gray-900 dark:text-gray-100">
|
20
20
|
<tr>
|
21
|
-
<th class="align-middle capitalize
|
21
|
+
<th class="align-middle capitalize px-3 py-2 text-left">
|
22
22
|
{% trans "Row" %}
|
23
23
|
</th>
|
24
24
|
|
25
|
-
<th class="align-middle capitalize
|
25
|
+
<th class="align-middle capitalize px-3 py-2 text-left">
|
26
26
|
{% trans "Errors" %}
|
27
27
|
</th>
|
28
28
|
|
29
29
|
{% for field in result.diff_headers %}
|
30
|
-
<th class="align-middle capitalize
|
30
|
+
<th class="align-middle capitalize px-3 py-2 text-left">
|
31
31
|
{{ field }}
|
32
32
|
</th>
|
33
33
|
{% endfor %}
|
@@ -37,11 +37,11 @@
|
|
37
37
|
<tbody>
|
38
38
|
{% for row in result.invalid_rows %}
|
39
39
|
<tr class="{% cycle '' 'bg-gray-50 dark:bg-white/[.02]' %} block border mb-3 rounded-md shadow-sm lg:table-row lg:border-none lg:mb-0 lg:shadow-none dark:border-gray-800">
|
40
|
-
<td data-label="{% trans "Row" %}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left
|
40
|
+
<td data-label="{% trans "Row" %}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:block before:capitalize before:content-[attr(data-label)] before:mr-auto lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
|
41
41
|
{{ row.number }}
|
42
42
|
</td>
|
43
43
|
|
44
|
-
<td data-label="{% trans "Errors" %}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left
|
44
|
+
<td data-label="{% trans "Errors" %}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:block before:capitalize before:content-[attr(data-label)] before:mr-auto lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
|
45
45
|
<div>
|
46
46
|
<span class="bg-red-600 font-semibold ml-2 px-1 rounded-sm text-xs text-white">{{ row.error_count }}</span>
|
47
47
|
</div>
|
@@ -77,7 +77,7 @@
|
|
77
77
|
</td>
|
78
78
|
|
79
79
|
{% for field in row.values %}
|
80
|
-
<td data-label="{{ result.diff_headers|index:forloop.counter0 }}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:block before:capitalize before:content-[attr(data-label)] before:mr-auto
|
80
|
+
<td data-label="{{ result.diff_headers|index:forloop.counter0 }}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:block before:capitalize before:content-[attr(data-label)] before:mr-auto lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
|
81
81
|
{{ field }}
|
82
82
|
</td>
|
83
83
|
{% endfor %}
|
@@ -3,36 +3,36 @@
|
|
3
3
|
{% load admin_urls %}
|
4
4
|
{% load getattribute from getattributes %}
|
5
5
|
|
6
|
-
<table id="change-history" class="border-gray-200 border-spacing-none border-separate mb-6
|
7
|
-
<thead class="hidden lg:table-header-group">
|
6
|
+
<table id="change-history" class="border-gray-200 border-spacing-none border-separate mb-6 w-full lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
|
7
|
+
<thead class="hidden text-gray-900 lg:table-header-group dark:text-gray-100">
|
8
8
|
<tr>
|
9
|
-
<th class="align-middle font-medium px-3 py-2 text-left
|
9
|
+
<th class="align-middle font-medium px-3 py-2 text-left ">
|
10
10
|
{% trans 'Object' %}
|
11
11
|
</th>
|
12
12
|
|
13
13
|
{% for column in history_list_display %}
|
14
|
-
<th class="align-middle font-medium px-3 py-2 text-left
|
14
|
+
<th class="align-middle font-medium px-3 py-2 text-left ">
|
15
15
|
{% trans column %}
|
16
16
|
</th>
|
17
17
|
{% endfor %}
|
18
18
|
|
19
|
-
<th class="align-middle font-medium px-3 py-2 text-left
|
19
|
+
<th class="align-middle font-medium px-3 py-2 text-left">
|
20
20
|
{% trans 'Date/time' %}
|
21
21
|
</th>
|
22
22
|
|
23
|
-
<th class="align-middle font-medium px-3 py-2 text-left
|
23
|
+
<th class="align-middle font-medium px-3 py-2 text-left">
|
24
24
|
{% trans 'Comment' %}
|
25
25
|
</th>
|
26
26
|
|
27
|
-
<th class="align-middle font-medium px-3 py-2 text-left
|
27
|
+
<th class="align-middle font-medium px-3 py-2 text-left">
|
28
28
|
{% trans 'Changed by' %}
|
29
29
|
</th>
|
30
30
|
|
31
|
-
<th class="align-middle font-medium px-3 py-2 text-left
|
31
|
+
<th class="align-middle font-medium px-3 py-2 text-left">
|
32
32
|
{% trans 'Change reason' %}
|
33
33
|
</th>
|
34
34
|
|
35
|
-
<th class="align-middle font-medium px-3 py-2 text-left
|
35
|
+
<th class="align-middle font-medium px-3 py-2 text-left">
|
36
36
|
{% trans 'Changes' %}
|
37
37
|
</th>
|
38
38
|
</tr>
|
@@ -41,27 +41,27 @@
|
|
41
41
|
<tbody>
|
42
42
|
{% for record in historical_records %}
|
43
43
|
<tr class="block border mb-3 rounded-md shadow-sm lg:table-row lg:border-none lg:mb-0 lg:shadow-none dark:border-gray-800">
|
44
|
-
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left
|
44
|
+
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Object' %}">
|
45
45
|
<a href="{% url opts|admin_urlname:'simple_history' object.pk record.pk %}">
|
46
46
|
{{ record.history_object }}
|
47
47
|
</a>
|
48
48
|
</td>
|
49
49
|
|
50
50
|
{% for column in history_list_display %}
|
51
|
-
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left
|
51
|
+
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans column %}">
|
52
52
|
{{ record|getattribute:column }}
|
53
53
|
</th>
|
54
54
|
{% endfor %}
|
55
55
|
|
56
|
-
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left
|
56
|
+
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Date/time' %}">
|
57
57
|
{{ record.history_date }}
|
58
58
|
</td>
|
59
59
|
|
60
|
-
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left
|
60
|
+
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Comment' %}">
|
61
61
|
{{ record.get_history_type_display }}
|
62
62
|
</td>
|
63
63
|
|
64
|
-
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left
|
64
|
+
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Changed by' %}">
|
65
65
|
{% if record.history_user %}
|
66
66
|
{% url admin_user_view record.history_user_id as admin_user_url %}
|
67
67
|
|
@@ -75,17 +75,17 @@
|
|
75
75
|
{% endif %}
|
76
76
|
</td>
|
77
77
|
|
78
|
-
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left
|
78
|
+
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Change reason' %}">
|
79
79
|
{{ record.history_change_reason }}
|
80
80
|
</td>
|
81
81
|
|
82
|
-
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left
|
82
|
+
<td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Changes' %}">
|
83
83
|
{% block history_delta_changes %}
|
84
84
|
{% if record.history_delta_changes %}
|
85
85
|
<ul>
|
86
86
|
{% for change in record.history_delta_changes %}
|
87
87
|
<li class="flex flex-row gap-2">
|
88
|
-
<strong class="font-medium
|
88
|
+
<strong class="font-medium">
|
89
89
|
{{ change.field }}:
|
90
90
|
</strong>
|
91
91
|
|
@@ -97,7 +97,7 @@
|
|
97
97
|
{% endif %}
|
98
98
|
|
99
99
|
{% if change.old and change.new %}
|
100
|
-
<span class="align-text-top material-symbols-outlined md-18
|
100
|
+
<span class="align-text-top material-symbols-outlined md-18 ">arrow_right_alt</span>
|
101
101
|
{% endif %}
|
102
102
|
|
103
103
|
{% if change.new %}
|
@@ -95,7 +95,7 @@ class UnfoldAdminReadonlyField(helpers.AdminReadonlyField):
|
|
95
95
|
current_app=self.model_admin.admin_site.name,
|
96
96
|
)
|
97
97
|
return format_html(
|
98
|
-
'<a href="{}" class="text-primary-600
|
98
|
+
'<a href="{}" class="text-primary-600 dark:text-primary-500">{}</a>',
|
99
99
|
url,
|
100
100
|
remote_obj,
|
101
101
|
)
|
@@ -148,7 +148,7 @@ class UnfoldAdminReadonlyField(helpers.AdminReadonlyField):
|
|
148
148
|
return conditional_escape(result_repr)
|
149
149
|
elif isinstance(f, models.URLField):
|
150
150
|
return format_html(
|
151
|
-
'<a href="{}" class="text-primary-600
|
151
|
+
'<a href="{}" class="text-primary-600 dark:text-primary-500">{}</a>',
|
152
152
|
value,
|
153
153
|
value,
|
154
154
|
)
|
@@ -36,6 +36,7 @@ class ActionForm(forms.Form):
|
|
36
36
|
widget=forms.Select(
|
37
37
|
{
|
38
38
|
"class": " ".join([*SELECT_CLASSES, "max-w-full", "lg:!w-64"]),
|
39
|
+
"aria-label": _("Select action to run"),
|
39
40
|
"x-model": "action",
|
40
41
|
}
|
41
42
|
),
|
@@ -97,7 +98,7 @@ class UserChangeForm(BaseUserChangeForm):
|
|
97
98
|
self.fields["password"].help_text = _(
|
98
99
|
"Raw passwords are not stored, so there is no way to see this "
|
99
100
|
"user’s password, but you can change the password using "
|
100
|
-
'<a href="{}" class="text-primary-600
|
101
|
+
'<a href="{}" class="text-primary-600 dark:text-primary-500">this form</a>.'
|
101
102
|
)
|
102
103
|
|
103
104
|
password = self.fields.get("password")
|