def test_filtering_ignores_lookup_type(self): qs = mock.Mock() value = mock.Mock(start=date(2015, 4, 7), stop=date(2015, 9, 6)) f = DateFromToRangeFilter(lookup_type='gte') f.filter(qs, value) qs.filter.assert_called_once_with( None__range=(date(2015, 4, 7), date(2015, 9, 6)))
def test_filtering_ignores_lookup_expr(self): qs = mock.Mock() value = mock.Mock(start=date(2015, 4, 7), stop=date(2015, 9, 6)) f = DateFromToRangeFilter(lookup_expr='gte') f.filter(qs, value) qs.filter.assert_called_once_with( None__range=(date(2015, 4, 7), date(2015, 9, 6)))
def test_filtering_range(self): qs = mock.Mock(spec=['filter']) value = mock.Mock(start=date(2015, 4, 7), stop=date(2015, 9, 6)) f = DateFromToRangeFilter() f.filter(qs, value) qs.filter.assert_called_once_with( None__range=(date(2015, 4, 7), date(2015, 9, 6)))
class PatientExternalTestFilter(filters.FilterSet): name = filters.CharFilter(field_name="name", lookup_expr="icontains") srf_id = filters.CharFilter(field_name="srf_id", lookup_expr="icontains") mobile_number = filters.CharFilter(field_name="mobile_number", lookup_expr="icontains") wards = MFilter(field_name="ward__id") districts = MFilter(field_name="district__id") local_bodies = MFilter(field_name="local_body__id") sample_collection_date = DateFromToRangeFilter( field_name="sample_collection_date") result_date = DateFromToRangeFilter(field_name="result_date") created_date = DateFromToRangeFilter(field_name="created_date")
class DestinationFilter(django_filters.FilterSet): description = django_filters.CharFilter(lookup_expr='icontains') price = RangeFilter() check_in_date = DateFromToRangeFilter() class Meta: model = Destination fields = ('check_in_date', 'price', 'description')
class AdvertisementFilter(filters.FilterSet): """Фильтры для объявлений.""" # TODO: задайте требуемые фильтры created_at = DateFromToRangeFilter() status = ChoiceFilter(choices=AdvertisementStatusChoices.choices) # creator = class Meta: model = Advertisement fields = ("status", "created_at", "creator")
def test_filtering_skipped_with_none_value(self): qs = mock.Mock(spec=['filter']) f = DateFromToRangeFilter() result = f.filter(qs, None) self.assertEqual(qs, result)
def test_default_field(self): f = DateFromToRangeFilter() field = f.field self.assertIsInstance(field, DateRangeField)
class IzsekFilter(FilterSet): naslov = CharFilter(name='posnetek', lookup_expr='naslov__icontains', label="Naslov", help_text="") vsebina = CharFilter(name='vsebina', lookup_expr='icontains', label="Vsebina", help_text="") datum = DateFromToRangeFilter(name='posnetek__datum', widget=RangePickerWidget(), label="Datum", help_text="") oddaja = CharFilter(name='posnetek__oddaja', widget=ListSelect2(url='oddaja-url'), label="Oddaja", help_text="") tip_oddaje = CharFilter(lookup_expr='posnetek__oddaja__tip', widget=ListSelect2(url='tip-url'), label="Tip oddaje", help_text="") program = CharFilter(lookup_expr='posnetek__oddaja__program', widget=ListSelect2(url='program-url'), label="S programa", help_text="") o = OrderingFilter(fields=( ('posnetek__datum', 'datum'), ('posnetek__dolzina', 'dolzina'), ), field_labels={ 'datum': 'Datum', 'dolzina': 'Dolzina', }) class Meta: model = Izsek fields = {} order_by_field = '-posnetek__datum' def __init__(self, *args, **kwargs): super(IzsekFilter, self).__init__(*args, **kwargs) #ugh if self.data == {}: self.queryset = Posnetek.objects.all().order_by("-datum") @property def qs(self): qs = super(IzsekFilter, self).qs if hasattr(self.form, 'cleaned_data'): value = self.form.cleaned_data.get('vsebina', None) #dovolj dobro bo if value: qs = qs.extra( select={ 'snippet': "ts_headline('simple', \"vsebina\", plainto_tsquery(%s), 'StartSel=<span> , StopSel= </span>,MaxFragments=0,HighlightAll=TRUE')" }, select_params=[value, "style='background:lightblue;'"], ) return qs