From a14f49c4b2648bfb9440366a23972b6f9fa271bb Mon Sep 17 00:00:00 2001 From: Hannes Ljungberg Date: Tue, 13 Apr 2021 20:36:24 +0200 Subject: [PATCH] [3.2] Adjust contrib.admin (#589) --- django-stubs/contrib/admin/__init__.pyi | 3 ++- django-stubs/contrib/admin/decorators.pyi | 22 +++++++++++++++++++++- django-stubs/contrib/admin/filters.pyi | 4 ++++ django-stubs/contrib/admin/sites.pyi | 2 ++ 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/django-stubs/contrib/admin/__init__.pyi b/django-stubs/contrib/admin/__init__.pyi index 5737e42..b201e4a 100644 --- a/django-stubs/contrib/admin/__init__.pyi +++ b/django-stubs/contrib/admin/__init__.pyi @@ -1,4 +1,4 @@ -from .decorators import register as register +from .decorators import action as action, register as register from .filters import ( AllValuesFieldListFilter as AllValuesFieldListFilter, BooleanFieldListFilter as BooleanFieldListFilter, @@ -9,6 +9,7 @@ from .filters import ( RelatedFieldListFilter as RelatedFieldListFilter, RelatedOnlyFieldListFilter as RelatedOnlyFieldListFilter, SimpleListFilter as SimpleListFilter, + EmptyFieldListFilter as EmptyFieldListFilter, ) from .helpers import ACTION_CHECKBOX_NAME as ACTION_CHECKBOX_NAME from .options import ( diff --git a/django-stubs/contrib/admin/decorators.pyi b/django-stubs/contrib/admin/decorators.pyi index 3fdfae2..c0fa9a7 100644 --- a/django-stubs/contrib/admin/decorators.pyi +++ b/django-stubs/contrib/admin/decorators.pyi @@ -1,6 +1,26 @@ -from typing import Any, Callable, Optional, Type +from typing import Callable, Optional, Type, Sequence, Union, TypeVar, Any +from django.contrib.admin import ModelAdmin from django.contrib.admin.sites import AdminSite +from django.db.models import Combinable, QuerySet from django.db.models.base import Model +from django.db.models.expressions import BaseExpression +from django.http import HttpRequest +_ModelT = TypeVar("_ModelT", bound=Model) + +def action( + function: Optional[Callable[[ModelAdmin, HttpRequest, QuerySet], None]] = ..., + *, + permissions: Optional[Sequence[str]] = ..., + description: Optional[str] = ..., +) -> Callable: ... +def display( + function: Optional[Callable[[_ModelT], Any]] = ..., + *, + boolean: Optional[bool] = ..., + ordering: Optional[Union[str, Combinable, BaseExpression]] = ..., + description: Optional[str] = ..., + empty_value: Optional[str] = ..., +) -> Callable: ... def register(*models: Type[Model], site: Optional[AdminSite] = ...) -> Callable: ... diff --git a/django-stubs/contrib/admin/filters.pyi b/django-stubs/contrib/admin/filters.pyi index 3cba3ad..2e1cbe0 100644 --- a/django-stubs/contrib/admin/filters.pyi +++ b/django-stubs/contrib/admin/filters.pyi @@ -108,3 +108,7 @@ class RelatedOnlyFieldListFilter(RelatedFieldListFilter): lookup_val_isnull: None title: str used_parameters: Dict[Any, Any] + +class EmptyFieldListFilter(FieldListFilter): + lookup_kwarg: str = ... + lookup_val: None = ... diff --git a/django-stubs/contrib/admin/sites.pyi b/django-stubs/contrib/admin/sites.pyi index f6b35ba..0feb34d 100644 --- a/django-stubs/contrib/admin/sites.pyi +++ b/django-stubs/contrib/admin/sites.pyi @@ -40,6 +40,8 @@ class AdminSite: password_change_template: Optional[str] = ... password_change_done_template: Optional[str] = ... name: str = ... + enable_nav_sidebar: bool = ... + final_catch_all_view: bool = ... _empty_value_display: str = ... _registry: Dict[Type[Model], ModelAdmin] _global_actions: Dict[str, _ActionCallback]