Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/django_filters/rest_framework/filterset.py: 67%

23 statements  

« prev     ^ index     » next       coverage.py v6.4.4, created at 2023-07-17 14:22 -0600

1from copy import deepcopy 

2 

3from django.db import models 

4from django.utils.translation import gettext_lazy as _ 

5 

6from django_filters import filterset 

7 

8from .. import compat 

9from .filters import BooleanFilter, IsoDateTimeFilter 

10 

11FILTER_FOR_DBFIELD_DEFAULTS = deepcopy(filterset.FILTER_FOR_DBFIELD_DEFAULTS) 

12FILTER_FOR_DBFIELD_DEFAULTS.update( 

13 { 

14 models.DateTimeField: {"filter_class": IsoDateTimeFilter}, 

15 models.BooleanField: {"filter_class": BooleanFilter}, 

16 models.NullBooleanField: {"filter_class": BooleanFilter}, 

17 } 

18) 

19 

20 

21class FilterSet(filterset.FilterSet): 

22 FILTER_DEFAULTS = FILTER_FOR_DBFIELD_DEFAULTS 

23 

24 @property 

25 def form(self): 

26 form = super().form 

27 

28 if compat.is_crispy(): 28 ↛ 29line 28 didn't jump to line 29, because the condition on line 28 was never true

29 from crispy_forms.helper import FormHelper 

30 from crispy_forms.layout import Layout, Submit 

31 

32 layout_components = list(form.fields.keys()) + [ 

33 Submit("", _("Submit"), css_class="btn-default"), 

34 ] 

35 helper = FormHelper() 

36 helper.form_method = "GET" 

37 helper.template_pack = "bootstrap3" 

38 helper.layout = Layout(*layout_components) 

39 

40 form.helper = helper 

41 

42 return form