11import django_filters as filters
22
33from api .models import Country , DisasterType
4- from eap .models import EAPRegistration , EAPStatus , EAPType , SimplifiedEAP
4+ from eap .models import EAPRegistration , EAPStatus , EAPType , FullEAP , SimplifiedEAP
55
66
7- class BaseEAPFilterSet (filters .FilterSet ):
8- created_at__lte = filters .DateFilter (field_name = "created_at" , lookup_expr = "lte" , input_formats = ["%Y-%m-%d" ])
9- created_at__gte = filters .DateFilter (field_name = "created_at" , lookup_expr = "gte" , input_formats = ["%Y-%m-%d" ])
7+ class BaseFilterSet (filters .FilterSet ):
8+ created_at = filters .DateFilter (
9+ field_name = "created_at" ,
10+ lookup_expr = "exact" ,
11+ input_formats = ["%Y-%m-%d" ],
12+ )
13+ created_at__lte = filters .DateFilter (
14+ field_name = "created_at" ,
15+ lookup_expr = "lte" ,
16+ input_formats = ["%Y-%m-%d" ],
17+ )
18+ created_at__gte = filters .DateFilter (
19+ field_name = "created_at" ,
20+ lookup_expr = "gte" ,
21+ input_formats = ["%Y-%m-%d" ],
22+ )
23+
24+
25+ class EAPRegistrationFilterSet (BaseFilterSet ):
26+ eap_type = filters .ChoiceFilter (
27+ choices = EAPType .choices ,
28+ label = "EAP Type" ,
29+ )
30+ status = filters .ChoiceFilter (
31+ choices = EAPStatus .choices ,
32+ label = "EAP Status" ,
33+ )
34+
1035 # Country
1136 country = filters .ModelMultipleChoiceFilter (
1237 field_name = "country" ,
@@ -16,7 +41,10 @@ class BaseEAPFilterSet(filters.FilterSet):
1641 field_name = "national_society" ,
1742 queryset = Country .objects .all (),
1843 )
19- region = filters .NumberFilter (field_name = "country__region_id" , label = "Region" )
44+ region = filters .NumberFilter (
45+ field_name = "country__region_id" ,
46+ label = "Region" ,
47+ )
2048 partners = filters .ModelMultipleChoiceFilter (
2149 field_name = "partners" ,
2250 queryset = Country .objects .all (),
@@ -28,23 +56,45 @@ class BaseEAPFilterSet(filters.FilterSet):
2856 queryset = DisasterType .objects .all (),
2957 )
3058
59+ class Meta :
60+ model = EAPRegistration
61+ fields = ()
3162
32- class EAPRegistrationFilterSet (BaseEAPFilterSet ):
33- eap_type = filters .ChoiceFilter (
34- choices = EAPType .choices ,
35- label = "EAP Type" ,
63+
64+ class BaseEAPFilterSet (BaseFilterSet ):
65+ eap_registration = filters .ModelMultipleChoiceFilter (
66+ field_name = "eap_registration" ,
67+ queryset = EAPRegistration .objects .all (),
3668 )
37- status = filters .ChoiceFilter (
38- choices = EAPStatus .choices ,
39- label = "EAP Status" ,
69+
70+ seap_timeframe = filters .NumberFilter (
71+ field_name = "seap_timeframe" ,
72+ label = "SEAP Timeframe (in Years)" ,
4073 )
4174
42- class Meta :
43- model = EAPRegistration
44- fields = ()
75+ national_society = filters .ModelMultipleChoiceFilter (
76+ field_name = "eap_registration__national_society" ,
77+ queryset = Country .objects .all (),
78+ )
79+
80+ country = filters .ModelMultipleChoiceFilter (
81+ field_name = "eap_registration__country" ,
82+ queryset = Country .objects .all (),
83+ )
4584
85+ disaster_type = filters .ModelMultipleChoiceFilter (
86+ field_name = "eap_registration__disaster_type" ,
87+ queryset = DisasterType .objects .all (),
88+ )
4689
47- class SimplifiedEAPFilterSet (BaseEAPFilterSet ):
90+
91+ class SimplifiedEAPFilterSet (BaseEAPFilterSet , BaseFilterSet ):
4892 class Meta :
4993 model = SimplifiedEAP
5094 fields = ("eap_registration" ,)
95+
96+
97+ class FullEAPFilterSet (BaseEAPFilterSet ):
98+ class Meta :
99+ model = FullEAP
100+ fields = ("eap_registration" ,)
0 commit comments