Metadata-Version: 2.1
Name: django-adminfilters
Version: 2.5.0
Summary: Django mixin to easily add buttons to any ModelAdmin
Project-URL: Homepage, https://github.com/saxix/django-adminfilterst
Project-URL: Documentation, https://github.com/saxix/django-adminfilters
Classifier: Environment :: Web Environment
Classifier: Operating System :: OS Independent
Classifier: Framework :: Django
Classifier: Framework :: Django :: 4.2
Classifier: Framework :: Django :: 5.0
Classifier: Framework :: Django :: 5.1
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Intended Audience :: Developers
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS
Provides-Extra: docs
Requires-Dist: mkdocs>=1.6.1; extra == "docs"
Requires-Dist: markdown-include; extra == "docs"
Requires-Dist: mkdocs-material>=9.5.36; extra == "docs"
Requires-Dist: mkdocs-awesome-pages-plugin>=2.9.3; extra == "docs"
Requires-Dist: mkdocstrings-python; extra == "docs"
Requires-Dist: mdx-gh-links>=0.4; extra == "docs"

django-adminfilters
===================

Collection of extra filters for the Django admin site

Demo can be found at https://django-adminfilters.herokuapp.com/demo/artist/

[![Pypi](https://badge.fury.io/py/django-adminfilters.svg)](https://badge.fury.io/py/django-adminfilters)
[![coverage](https://codecov.io/github/saxix/django-adminfilters/coverage.svg?branch=develop)](https://codecov.io/github/saxix/django-adminfilters?branch=develop)
[![Test](https://github.com/saxix/django-adminfilters/actions/workflows/test.yml/badge.svg)](https://github.com/saxix/django-adminfilters/actions/workflows/test.yml)
[![ReadTheDocs](https://readthedocs.org/projects/django-adminfilters/badge/?version=latest)](https://django-adminfilters.readthedocs.io/en/latest/)


https://user-images.githubusercontent.com/27282/153727131-d875f946-a8a8-4d89-be83-1d8cb5c9391a.mp4


Filters
=======

* Autocomplete
  * AutocompleteFilter
* Simple
  * ValueFilter
* Combobox
  * AllValuesComboFilter
  * RelatedFieldComboFilter
  * ChoicesFieldComboFilter
* Dates
  * DateRangeFilter
* Radio
  * AllValuesRadioFilter
  * RelatedFieldRadioFilter
  * ChoicesFieldRadioFilter
  * BooleanRadioFilter
* Checkbox
  * RelatedFieldCheckBoxFilter
* Multiple
  * MultiValueFilter
* ManyToMany
  * IntersectionFieldListFilter
  * UnionFieldListFilter
* JSON
  * JsonFieldFilter
* Number
  * NumberFilter
* Special
  * QueryStringFilter
  * DjangoLookupFilter
  * PermissionPrefixFilter

FYI
====

Filters management (save/retrieve), is handled by an optional application `adminfilters.depot` that,
due to the Django filters internal design, it uses GET method to save filter definition to the database.
When you use `FilterDepotManager` to save a filter, the call is *idempotent* but not *safe*.


Usage examples
==============

```python
class MyModel(models.Model):
    index = models.CharField(max_length=255)
    name = models.CharField(max_length=255)
    age = models.IntegerField()
    flag = models.CharField(default="1", choices=(("0", "Flag 1"), ("1", "Flag 2"))
    household = models.ForeignKey("Household")
    custom = JSONField(default=dict, blank=True)


class MyModelAdmin(ModelAdmin):
    list_filter = (
        FilterDepotManager,  # needs `adminfilters.depot` app
        QueryStringFilter,
        DjangoLookupFilter,
        ("custom", JsonFieldFilter.factory(can_negate=False, options=True)),
        ("flag", ChoicesFieldComboFilter),
        ("household", AutoCompleteFilter)
        ("name", ValueFilter.factory(lookup="istartswith"),
        ("age", NumberFilter),
    )
```


Run demo app
============

```sh
git clone https://github.com/saxix/django-adminfilters.git
cd django-adminfilters
python3 -m venv .venv
source .venv/bin/activate
make develop
make demo
```

Project links
-------------

* Project home page: https://github.com/saxix/django-adminfilters
* Download: http://pypi.python.org/pypi/django-adminfilters/
* Documentation: https://django-adminfilters.readthedocs.io/en/latest/
