Skip to main content

The "Django Admin Search" is a advanced search modal for django admin

Project description

Django Admin Search

Downloads Downloads Downloads

Coverage Quality Gate Status PyPI version
The "Django Admin Search" is a advanced search modal for django admin.

If you use or like the project, click Star and Watch to generate metrics and i evaluate project continuity.

Install:

pip install django-admin-search

Usage:

  1. Add to your INSTALLED_APPS, in settings.py:

    INSTALLED_APPS = [  
        ...
        'django_admin_search',
        ...
    ]
    
  2. Create a search form for model:

    from .models import Area
    from django.forms import ModelForm, Form
    from django.forms import DateField, CharField, ChoiceField, TextInput
    
    
    class YourFormSearch(Form):
        name = CharField(required=False)
        date = DateField(required=False, widget=TextInput(
            attrs={ 
                'filter_method': '__gte',
            }
        ))
    
  3. In your admin:

    from django_admin_search.admin import AdvancedSearchAdmin
    from .models import YourModel
    from .form import YourForm, YourFormSearch
    
    @register(YourModel)
    class YourAdmin(AdvancedSearchAdmin):
        form = YourForm
        search_form = YourFormSearch
    

Advanced:

  1. to multiple filters in same field:

    class YourFormSearch(Form):
        ...
        name = CharField(required=False)
        begin = DateField(required=False, widget=TextInput(
            attrs={
                'filter_field': 'date', 
                'filter_method': '__gte',
            }
        ))
        end = DateField(required=False, widget=TextInput(
            attrs={
                'filter_field': 'date', 
                'filter_method': '__lte',
            }
        ))
    
  2. add placeholder and mask

    class YourFormSearch(Form):
        ...
        date = DateField(required=False, widget=TextInput(
            attrs={
                'data-mask': "00/00/0000", 
                'placeholder': 'MM/DD/YYYY'
            }
        ))
    
  3. Custom filter query for a field

    from django_admin_search.admin import AdvancedSearchAdmin
    from .models import YourModel
    from .form import YourForm, YourFormSearch
    
    @register(YourModel)
    class YourAdmin(AdvancedSearchAdmin):
        def search_FieldNameHere(request, field_value, param_values):
            """
                intercept query filter for description field
            """
            query = Q()
            # your Q logic here
            return query
    

Images:

Button in admin list: input

Modal opened: modal

Development and Running the Tests

To do development work for Django Admin Search, clone it locally, make and activate a virtualenv for it, then from within the project directory:

pip install -e ".[dev]"

To run the tests:

pytest

If your work in high difficult test, and need to re run the test every time, use pytest-watch:

ptw  # this see file change and re run a test

when you need to see passed lines by test, run

pytest --cov-report html

after this, will be created a htmlcov folder in the root

To run sonar

pytest --cov-report xml
pylint ./django_admin_search/ --msg-template="{path}:{line}: [{msg_id}({symbol}), {obj}] {msg}" | tee pylint.txt
sonar-scanner

See your code quality in Sonar (in testing, no metrics to approve yet)

https://sonarcloud.io/dashboard?id=shinneider_django-admin-search

For future i want to run test's in Travis CI, to check if PR is Ok, but to be effective, i need to cover 80% or more of the code, help-me creating a test case, see this issue PR - 20

Need a Maintainer

In the last months i don't have much time, health problemas, change of country and others problems.
i have some surgeries for first part of 2022, and all of my current project don't use django-admin.
for these reasons, i need a help for a project continuation!!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-admin-search-0.3.15.tar.gz (49.5 kB view details)

Uploaded Source

Built Distribution

django_admin_search-0.3.15-py3-none-any.whl (50.6 kB view details)

Uploaded Python 3

File details

Details for the file django-admin-search-0.3.15.tar.gz.

File metadata

  • Download URL: django-admin-search-0.3.15.tar.gz
  • Upload date:
  • Size: 49.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for django-admin-search-0.3.15.tar.gz
Algorithm Hash digest
SHA256 75e457895a654d29db34379bde2228ce1b12b1e58150c13025a9d19ee22a4f2a
MD5 d572572d3bd64153020617c88f78dedb
BLAKE2b-256 e779f38ca6bd8a0629c2ce9ac91aa0133dd671abd0b40bc17817eaf41d75a0d7

See more details on using hashes here.

File details

Details for the file django_admin_search-0.3.15-py3-none-any.whl.

File metadata

File hashes

Hashes for django_admin_search-0.3.15-py3-none-any.whl
Algorithm Hash digest
SHA256 e9edd1b2a199aea245a6bbe495744dba0831269b4ce687441f7140e38476fc84
MD5 9ec2d0d2fe886934de25c5163eb86aae
BLAKE2b-256 8482206ea84bb747f9dc16348aa51ae5e860d5050fae20fe5e414f556287c906

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page