mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	Fix implementation of django-filter
This commit is contained in:
		| @@ -17,6 +17,10 @@ Changelog | ||||
|   declaring ``PAPERLESS_DBUSER`` in your environment.  This will attempt to | ||||
|   connect to your Postgres database without a password unless you also set | ||||
|   ``PAPERLESS_DBPASS``. | ||||
| * A bug was found in the REST API filter system that was the result of an | ||||
|   update of django-filter some time ago.  This has now been patched `#412`_. | ||||
|   Thanks to `thepill`_ for spotting it! | ||||
|  | ||||
|  | ||||
| 2.3.0 | ||||
| ===== | ||||
| @@ -520,6 +524,7 @@ bulk of the work on this big change. | ||||
| .. _dubit0: https://github.com/dubit0 | ||||
| .. _ahyear: https://github.com/ahyear | ||||
| .. _jonaswinkler: https://github.com/jonaswinkler | ||||
| .. _thepill: https://github.com/thepill | ||||
|  | ||||
| .. _#20: https://github.com/danielquinn/paperless/issues/20 | ||||
| .. _#44: https://github.com/danielquinn/paperless/issues/44 | ||||
| @@ -607,6 +612,7 @@ bulk of the work on this big change. | ||||
| .. _#400: https://github.com/danielquinn/paperless/pull/400 | ||||
| .. _#401: https://github.com/danielquinn/paperless/pull/401 | ||||
| .. _#405: https://github.com/danielquinn/paperless/pull/405 | ||||
| .. _#412: https://github.com/danielquinn/paperless/issues/412 | ||||
|  | ||||
| .. _pipenv: https://docs.pipenv.org/ | ||||
| .. _a new home on Docker Hub: https://hub.docker.com/r/danielquinn/paperless/ | ||||
|   | ||||
| @@ -1,8 +1,14 @@ | ||||
| from django_filters.rest_framework import CharFilter, FilterSet, BooleanFilter | ||||
| from django_filters.rest_framework import CharFilter, FilterSet, BooleanFilter, ModelChoiceFilter | ||||
|  | ||||
| from .models import Correspondent, Document, Tag | ||||
|  | ||||
|  | ||||
| CHAR_KWARGS = ( | ||||
|     "startswith", "endswith", "contains", | ||||
|     "istartswith", "iendswith", "icontains" | ||||
| ) | ||||
|  | ||||
|  | ||||
| class CorrespondentFilterSet(FilterSet): | ||||
|  | ||||
|     class Meta: | ||||
| @@ -31,34 +37,24 @@ class TagFilterSet(FilterSet): | ||||
|  | ||||
| class DocumentFilterSet(FilterSet): | ||||
|  | ||||
|     CHAR_KWARGS = { | ||||
|         "lookup_expr": ( | ||||
|             "startswith", | ||||
|             "endswith", | ||||
|             "contains", | ||||
|             "istartswith", | ||||
|             "iendswith", | ||||
|             "icontains" | ||||
|     tags_empty = BooleanFilter( | ||||
|         label="Is tagged", | ||||
|         field_name="tags", | ||||
|         lookup_expr="isnull", | ||||
|         exclude=True | ||||
|     ) | ||||
|     } | ||||
|  | ||||
|     correspondent__name = CharFilter( | ||||
|         field_name="correspondent__name", **CHAR_KWARGS) | ||||
|     correspondent__slug = CharFilter( | ||||
|         field_name="correspondent__slug", **CHAR_KWARGS) | ||||
|     tags__name = CharFilter( | ||||
|         field_name="tags__name", **CHAR_KWARGS) | ||||
|     tags__slug = CharFilter( | ||||
|         field_name="tags__slug", **CHAR_KWARGS) | ||||
|     tags__empty = BooleanFilter( | ||||
|         field_name="tags", lookup_expr="isnull", distinct=True) | ||||
|  | ||||
|     class Meta: | ||||
|         model = Document | ||||
|         fields = { | ||||
|             "title": [ | ||||
|                 "startswith", "endswith", "contains", | ||||
|                 "istartswith", "iendswith", "icontains" | ||||
|             ], | ||||
|             "content": ["contains", "icontains"], | ||||
|  | ||||
|             "title": CHAR_KWARGS, | ||||
|             "content": ("contains", "icontains"), | ||||
|  | ||||
|             "correspondent__name": CHAR_KWARGS, | ||||
|             "correspondent__slug": CHAR_KWARGS, | ||||
|  | ||||
|             "tags__name": CHAR_KWARGS, | ||||
|             "tags__slug": CHAR_KWARGS, | ||||
|  | ||||
|         } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Daniel Quinn
					Daniel Quinn