Skip to content

Commit 941a975

Browse files
committed
5.0: Update django.contrib.admin
1 parent 5c6b4b1 commit 941a975

File tree

8 files changed

+20
-31
lines changed

8 files changed

+20
-31
lines changed

django-stubs/contrib/admin/__init__.pyi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ from .filters import SimpleListFilter as SimpleListFilter
1515
from .options import HORIZONTAL as HORIZONTAL
1616
from .options import VERTICAL as VERTICAL
1717
from .options import ModelAdmin as ModelAdmin
18+
from .options import ShowFacets as ShowFacets
1819
from .options import StackedInline as StackedInline
1920
from .options import TabularInline as TabularInline
2021
from .sites import AdminSite as AdminSite

django-stubs/contrib/admin/exceptions.pyi

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@ from django.core.exceptions import SuspiciousOperation
22

33
class DisallowedModelAdminLookup(SuspiciousOperation): ...
44
class DisallowedModelAdminToField(SuspiciousOperation): ...
5+
class AlreadyRegistered(Exception): ...
6+
class NotRegistered(Exception): ...

django-stubs/contrib/admin/filters.pyi

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ from typing import Any, ClassVar
44

55
from django.contrib.admin.options import ModelAdmin
66
from django.contrib.admin.views.main import ChangeList
7+
from django.db.models.aggregates import Count
78
from django.db.models.base import Model
89
from django.db.models.fields import Field
910
from django.db.models.fields.related import RelatedField
1011
from django.db.models.query import QuerySet
12+
from django.db.models.query_utils import Q
1113
from django.http.request import HttpRequest
1214
from django.utils.datastructures import _ListOrTuple
1315
from django.utils.functional import _StrOrPromise
@@ -32,13 +34,17 @@ class ListFilter:
3234
def queryset(self, request: HttpRequest, queryset: QuerySet) -> QuerySet | None: ...
3335
def expected_parameters(self) -> list[str | None]: ...
3436

35-
class SimpleListFilter(ListFilter):
37+
class FacetsMixin:
38+
def get_facet_counts(self, pk_attname: str, filtered_qs: QuerySet[Model]) -> dict[str, Count]: ...
39+
def get_facet_queryset(self, changelist: ChangeList) -> dict[str, int]: ...
40+
41+
class SimpleListFilter(FacetsMixin, ListFilter):
3642
parameter_name: str | None
3743
lookup_choices: list[tuple[str, _StrOrPromise]]
3844
def value(self) -> str | None: ...
3945
def lookups(self, request: HttpRequest, model_admin: ModelAdmin) -> Iterable[tuple[str, _StrOrPromise]] | None: ...
4046

41-
class FieldListFilter(ListFilter):
47+
class FieldListFilter(FacetsMixin, ListFilter):
4248
list_separator: ClassVar[str]
4349
field: Field
4450
field_path: str
@@ -117,3 +123,4 @@ class RelatedOnlyFieldListFilter(RelatedFieldListFilter): ...
117123
class EmptyFieldListFilter(FieldListFilter):
118124
lookup_kwarg: str
119125
lookup_val: str | None
126+
def get_lookup_condition(self) -> Q: ...

django-stubs/contrib/admin/options.pyi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ from typing_extensions import TypeAlias, TypedDict
3838

3939
IS_POPUP_VAR: str
4040
TO_FIELD_VAR: str
41+
IS_FACETS_VAR: str
4142
HORIZONTAL: Literal[1]
4243
VERTICAL: Literal[2]
4344

django-stubs/contrib/admin/sites.pyi

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ else:
2828
_ViewType = TypeVar("_ViewType", bound=Callable[..., HttpResponse])
2929
_ActionCallback: TypeAlias = Callable[[ModelAdmin, HttpRequest, QuerySet], TemplateResponse | None]
3030

31-
class AlreadyRegistered(Exception): ...
32-
class NotRegistered(Exception): ...
33-
3431
class AdminSite:
3532
site_title: _StrOrPromise
3633
site_header: _StrOrPromise

django-stubs/contrib/admin/utils.pyi

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ from django.db.models.deletion import Collector
1313
from django.db.models.fields import Field, reverse_related
1414
from django.db.models.options import Options
1515
from django.db.models.query import QuerySet
16+
from django.db.models.query_utils import Q
1617
from django.forms.forms import BaseForm
1718
from django.forms.formsets import BaseFormSet
1819
from django.http.request import HttpRequest
@@ -24,7 +25,11 @@ _T = TypeVar("_T")
2425
class FieldIsAForeignKeyColumnName(Exception): ...
2526

2627
def lookup_spawns_duplicates(opts: Options, lookup_path: str) -> bool: ...
27-
def prepare_lookup_value(key: str, value: datetime.datetime | str) -> bool | datetime.datetime | str: ...
28+
def get_last_value_from_parameters(parameters: dict[str, list[str] | str], key: str) -> str | None: ...
29+
def prepare_lookup_value(
30+
key: str, value: list[bool | datetime.datetime | str] | datetime.datetime | str, separator: str
31+
) -> list[bool | datetime.datetime | str] | bool | datetime.datetime | str: ...
32+
def build_q_object_from_lookup_parameters(parameters: dict[str, list[str]]) -> Q: ...
2833
def quote(s: int | str | UUID) -> str: ...
2934
def unquote(s: str) -> str: ...
3035
def flatten(fields: Any) -> list[Callable | str]: ...

django-stubs/contrib/admin/views/main.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class ChangeList:
7777
def get_ordering_field(self, field_name: Callable | str) -> Expression | str | None: ...
7878
def get_ordering(self, request: HttpRequest, queryset: QuerySet) -> list[Expression | str]: ...
7979
def get_ordering_field_columns(self) -> dict[int, Literal["desc", "asc"]]: ...
80-
def get_queryset(self, request: HttpRequest) -> QuerySet: ...
80+
def get_queryset(self, request: HttpRequest, exclude_parameters: list[str | None] | None = ...) -> QuerySet: ...
8181
filter_specs: list[ListFilter]
8282
has_filters: bool
8383
has_active_filters: bool

scripts/stubtest/allowlist_todo_django50.txt

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,6 @@
22
# Only discrepancies that appeared after Django 4.2 -> 5.0 update.
33
# Unsorted: there are real problems and things we can really ignore.
44

5-
django.contrib.admin.AllValuesFieldListFilter.get_facet_counts
6-
django.contrib.admin.BooleanFieldListFilter.get_facet_counts
7-
django.contrib.admin.ChoicesFieldListFilter.get_facet_counts
8-
django.contrib.admin.DateFieldListFilter.get_facet_counts
9-
django.contrib.admin.EmptyFieldListFilter.get_facet_counts
10-
django.contrib.admin.EmptyFieldListFilter.get_lookup_condition
11-
django.contrib.admin.RelatedFieldListFilter.get_facet_counts
12-
django.contrib.admin.ShowFacets
13-
django.contrib.admin.SimpleListFilter.get_facet_counts
14-
django.contrib.admin.exceptions.AlreadyRegistered
15-
django.contrib.admin.exceptions.NotRegistered
16-
django.contrib.admin.filters.AllValuesFieldListFilter.get_facet_counts
17-
django.contrib.admin.filters.BooleanFieldListFilter.get_facet_counts
18-
django.contrib.admin.filters.ChoicesFieldListFilter.get_facet_counts
19-
django.contrib.admin.filters.DateFieldListFilter.get_facet_counts
20-
django.contrib.admin.filters.EmptyFieldListFilter.get_facet_counts
21-
django.contrib.admin.filters.EmptyFieldListFilter.get_lookup_condition
22-
django.contrib.admin.filters.FacetsMixin
23-
django.contrib.admin.filters.RelatedFieldListFilter.get_facet_counts
24-
django.contrib.admin.filters.SimpleListFilter.get_facet_counts
25-
django.contrib.admin.options.IS_FACETS_VAR
26-
django.contrib.admin.utils.build_q_object_from_lookup_parameters
27-
django.contrib.admin.utils.get_last_value_from_parameters
28-
django.contrib.admin.views.main.ChangeList.get_queryset
295
django.contrib.contenttypes.fields.GenericForeignKey.get_content_type
306
django.contrib.contenttypes.fields.GenericForeignKey.get_prefetch_querysets
317
django.contrib.contenttypes.prefetch

0 commit comments

Comments
 (0)