The "Django Admin Search" is a advanced search modal for django admin
Project description
Django Admin Search
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:
-
Add to your INSTALLED_APPS, in settings.py:
INSTALLED_APPS = [ ... 'django_admin_search', ... ]
-
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', } ))
-
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:
-
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', } ))
-
add placeholder and mask
class YourFormSearch(Form): ... date = DateField(required=False, widget=TextInput( attrs={ 'data-mask': "00/00/0000", 'placeholder': 'MM/DD/YYYY' } ))
-
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:
Modal opened:
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for django-admin-search-0.3.11.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 396c8a94c5415087cf992b31674b53d8a488e42a8531ace570407bc7d15fc8ca |
|
MD5 | 998d93977702aae4e0abb37f3b5ac66f |
|
BLAKE2b-256 | 25f5aa5844f379a0e6f445f6547b49d6031c3f31491f5d9e6d99fb4292d54fe7 |