This is no longer necessary now that ReportView and HistoryView are not inheriting from models.IndexView - using IndexView for anything other than a listing of available models for editing is now considered invalid, and those things should inherit from BaseListingView instead.
along the way, make filtering work again by setting up a history_results view - the search/filter form in slim_header is hard-coded to use index_results_url as the action URL, which caused it to replace the results with a fragment from the index view instead.
BaseListingView now supports passing a django-filters filterset class as `self.filterset_class`, provides properties `filters` and `is_filtering`, and provides a `filter_queryset` method. If a filterset class is specified, this will be used to filter the queryset within `get_queryset`; `filters` and `is_filtering` will be added to the template context; and the `media` context variable will include the filter form's media.
Fixes #11405
Django 5.0 rejects `FormSubmission.objects.filter(page=page)` when `page` is an unsaved in-memory instance. Since these can clearly not have any submissions, return an empty queryset in this case.
Also add end-to-end tests for the create and edit views with FormSubmissionsPanel in place.
- Register the admin SlugInput as the default widget for model SlugField usage
- Add a docstring to SlugInput to make it a bit clearer what it's doing
- Add SlugInput to the admin widgets module exports file
- Copy form is still needed as it's not a model field but a form field
- Closes #11185
Before c8edfd13b2, empty q is considered invalid, so is_searching is False. After that commit, empty q is valid so set is_searching based on the truthiness of the search_query instead
The added CSS handles the case when nice padding is removed (to make the listing
go full-width) and no bulk actions are available (e.g. a ModelViewSet index view
or some other view that extends generic listing view).
This allows us to not rely on the full-width class (which should
eventually be removed) while correctly apply the spacing regardless
whether nice-padding is used or not, and whether bulk actions are
available or not.
If nice-padding is used, then the listing view will look as they
previously do.