3535
3636
3737class WebhookFilterSet (BaseFilterSet ):
38+ q = django_filters .CharFilter (
39+ method = 'search' ,
40+ label = 'Search' ,
41+ )
3842 content_types = ContentTypeFilter ()
3943 http_method = django_filters .MultipleChoiceFilter (
4044 choices = WebhookHttpMethodChoices
@@ -47,37 +51,93 @@ class Meta:
4751 'http_method' , 'http_content_type' , 'secret' , 'ssl_verification' , 'ca_file_path' ,
4852 ]
4953
54+ def search (self , queryset , name , value ):
55+ if not value .strip ():
56+ return queryset
57+ return queryset .filter (
58+ Q (name__icontains = value ) |
59+ Q (payload_url__icontains = value )
60+ )
61+
5062
5163class CustomFieldFilterSet (BaseFilterSet ):
64+ q = django_filters .CharFilter (
65+ method = 'search' ,
66+ label = 'Search' ,
67+ )
5268 content_types = ContentTypeFilter ()
5369
5470 class Meta :
5571 model = CustomField
5672 fields = ['id' , 'content_types' , 'name' , 'required' , 'filter_logic' , 'weight' ]
5773
74+ def search (self , queryset , name , value ):
75+ if not value .strip ():
76+ return queryset
77+ return queryset .filter (
78+ Q (name__icontains = value ) |
79+ Q (label__icontains = value ) |
80+ Q (description__icontains = value )
81+ )
82+
5883
5984class CustomLinkFilterSet (BaseFilterSet ):
85+ q = django_filters .CharFilter (
86+ method = 'search' ,
87+ label = 'Search' ,
88+ )
6089
6190 class Meta :
6291 model = CustomLink
6392 fields = ['id' , 'content_type' , 'name' , 'link_text' , 'link_url' , 'weight' , 'group_name' , 'new_window' ]
6493
94+ def search (self , queryset , name , value ):
95+ if not value .strip ():
96+ return queryset
97+ return queryset .filter (
98+ Q (name__icontains = value ) |
99+ Q (link_text__icontains = value ) |
100+ Q (link_url__icontains = value ) |
101+ Q (group_name__icontains = value )
102+ )
103+
65104
66105class ExportTemplateFilterSet (BaseFilterSet ):
106+ q = django_filters .CharFilter (
107+ method = 'search' ,
108+ label = 'Search' ,
109+ )
67110
68111 class Meta :
69112 model = ExportTemplate
70113 fields = ['id' , 'content_type' , 'name' ]
71114
115+ def search (self , queryset , name , value ):
116+ if not value .strip ():
117+ return queryset
118+ return queryset .filter (
119+ Q (name__icontains = value ) |
120+ Q (description__icontains = value )
121+ )
122+
72123
73124class ImageAttachmentFilterSet (BaseFilterSet ):
125+ q = django_filters .CharFilter (
126+ method = 'search' ,
127+ label = 'Search' ,
128+ )
74129 created = django_filters .DateTimeFilter ()
75130 content_type = ContentTypeFilter ()
76131
77132 class Meta :
78133 model = ImageAttachment
79134 fields = ['id' , 'content_type_id' , 'object_id' , 'name' ]
80135
136+ def search (self , queryset , name , value ):
137+ if not value .strip ():
138+ return queryset
139+ return queryset .filter (name__icontains = value )
140+
81141
82142class JournalEntryFilterSet (ChangeLoggedModelFilterSet ):
83143 q = django_filters .CharFilter (
0 commit comments