Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Support django-admin-numeric-filter #251

Merged
merged 13 commits into from
Apr 14, 2021
113 changes: 70 additions & 43 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ django-mptt = "^0.11.0"
django-treebeard = "^4.3.1"
django-import-export = "^2.4.0"
dj-database-url = "^0.5.0"
django-admin-numeric-filter = "^0.1.6"
django-admin-rangefilter = "^0.7.0"

[tool.poetry.urls]
"Bug Tracker" = "https://github.com/farridav/django-jazzmin/issues"
Expand Down Expand Up @@ -138,6 +140,8 @@ deps =
django-import-export
django2: Django<3
django3: Django<4
django-admin-numeric-filter
django-admin-rangefilter

[testenv:coveralls-django3-py39]
passenv = COVERALLS_REPO_TOKEN
Expand Down
26 changes: 20 additions & 6 deletions tests/test_admin_views.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import pytest

from jazzmin.compat import reverse
from .test_app.library.factories import BookFactory

from .test_app.library.books.models import Book
from .test_app.library.factories import BookFactory


@pytest.mark.django_db
Expand Down Expand Up @@ -131,10 +131,11 @@ def test_detail(admin_client):
"admin/widgets/foreign_key_raw_id.html": 1,
"admin/widgets/related_widget_wrapper.html": 4,
"admin/widgets/split_datetime.html": 2,
"django/forms/widgets/attrs.html": 46,
"django/forms/widgets/attrs.html": 47,
"django/forms/widgets/date.html": 5,
"django/forms/widgets/hidden.html": 6,
"django/forms/widgets/input.html": 18,
"django/forms/widgets/input.html": 19,
"django/forms/widgets/number.html": 1,
"django/forms/widgets/select.html": 6,
"django/forms/widgets/select_option.html": 21,
"django/forms/widgets/text.html": 4,
Expand All @@ -161,6 +162,7 @@ def test_detail(admin_client):
"django/forms/widgets/date.html",
"django/forms/widgets/hidden.html",
"django/forms/widgets/input.html",
"django/forms/widgets/number.html",
"django/forms/widgets/select.html",
"django/forms/widgets/select_option.html",
"django/forms/widgets/text.html",
Expand Down Expand Up @@ -208,10 +210,16 @@ def test_list(admin_client):
"django/forms/widgets/text.html": 5,
"django/forms/widgets/select_option.html": 4,
"django/forms/widgets/select.html": 2,
"django/forms/widgets/input.html": 21,
"django/forms/widgets/input.html": 28,
"django/forms/widgets/hidden.html": 11,
"django/forms/widgets/attrs.html": 27,
"django/forms/widgets/attrs.html": 34,
"jazzmin/includes/ui_builder_panel.html": 1,
"admin/filter_numeric_range.html": 1,
"admin/filter_numeric_single.html": 1,
"admin/filter_numeric_slider.html": 1,
"django/forms/widgets/date.html": 2,
"django/forms/widgets/number.html": 5,
"rangefilter/date_filter.html": 1,
}

# The templates that were used
Expand All @@ -238,6 +246,12 @@ def test_list(admin_client):
"django/forms/widgets/hidden.html",
"django/forms/widgets/attrs.html",
"jazzmin/includes/ui_builder_panel.html",
"admin/filter_numeric_range.html",
"admin/filter_numeric_single.html",
"admin/filter_numeric_slider.html",
"django/forms/widgets/date.html",
"django/forms/widgets/number.html",
"rangefilter/date_filter.html",
}


Expand Down
26 changes: 20 additions & 6 deletions tests/test_app/library/books/admin.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
from admin_numeric_filter.admin import (
NumericFilterModelAdmin,
RangeNumericFilter,
SingleNumericFilter,
SliderNumericFilter,
)
from django.contrib import admin
from django.contrib.admin.models import LogEntry
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
from django.utils.html import format_html
from django.utils.timesince import timesince
from import_export.admin import ImportExportMixin
from rangefilter.filter import DateRangeFilter

from jazzmin.utils import attr
from .models import Book, Author, Genre
from .resources import BookResource

from ..loans.admin import BookLoanInline
from .models import Author, Book, Genre
from .resources import BookResource

admin.site.unregister(User)

Expand All @@ -20,16 +27,23 @@ class BooksInline(admin.TabularInline):


@admin.register(Book)
class BookAdmin(ImportExportMixin, admin.ModelAdmin):
class BookAdmin(ImportExportMixin, NumericFilterModelAdmin):
resource_class = BookResource
fieldsets = (
("general", {"fields": ("title", "author", "library")}),
("other", {"fields": ("genre", "summary", "isbn", "published_on")}),
("other", {"fields": ("genre", "summary", "isbn", "published_on", "pages")}),
)
raw_id_fields = ("author",)
list_display = ("__str__", "title", "author")
list_display = ("__str__", "title", "author", "pages")
readonly_fields = ("__str__",)
list_filter = ("author", "genre")
list_filter = (
"author",
"genre",
("pages", SingleNumericFilter),
("pages", RangeNumericFilter),
("pages", SliderNumericFilter),
("last_print", DateRangeFilter),
)
list_per_page = 20
list_max_show_all = 100
list_editable = ("title",)
Expand Down
18 changes: 18 additions & 0 deletions tests/test_app/library/books/migrations/0004_book_pages.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 3.1.5 on 2021-01-18 15:37

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("books", "0003_auto_20201015_1222"),
]

operations = [
migrations.AddField(
model_name="book",
name="pages",
field=models.IntegerField(null=True),
),
]
Loading