コード例 #1
0
class DashboardSensorDataFilter(filters.FilterSet):
    station = filters.ModelChoiceFilter(
        label="Station",
        name="sensor__station_id",
        queryset=Station.objects.filter(current_status='ACTIVE'),
        widget=forms.Select)
    start_date = filters.IsoDateTimeFilter(
        label="Start Date",
        name="sensor_data_dateTime",
        lookup_expr='gte',
        widget=forms.DateTimeInput(attrs={'type': 'datetime-local'}))
    end_date = filters.IsoDateTimeFilter(
        label="End Date",
        name="sensor_data_dateTime",
        lookup_expr='lte',
        widget=forms.DateTimeInput(attrs={'type': 'datetime-local'}))
    sensor_type = filters.ModelChoiceFilter(label="Sensor Type *",
                                            name="sensor__sensor_type_id",
                                            queryset=SensorType.objects.all(),
                                            widget=forms.Select,
                                            required=True)
    order_by_field = 'ordering'
    ordering = OrderingFilter(
        # fields(('model field name', 'parameter name'),)
        fields=(('sensor_data_dateTime', 'sensor_data_dateTime')))

    class Meta:
        model = SensorData
        fields = ['start_date', 'end_date', 'station', 'sensor_type']
コード例 #2
0
class PropertyOrderingFilterSet(PropertyFilterSet):

    first_last_name = OrderingFilter(
        label='first_last_name',
        fields=(
            ('first_name', 'first_name'),
            ('last_name', 'Last Name'),
            ('username', 'username'),
            ('age', 'age')

        ),
        field_labels={
            'first_name': 'First Name',
        }
    )
    property_first_last_name = PropertyOrderingFilter(
        label='property_first_last_name',
        fields=(
            ('prop_first_name', 'prop_first_name'),
            ('prop_last_name', 'Last Name'),
            ('prop_username', 'username'),
            ('prop_age', 'age')

        ),
        field_labels={
            'prop_first_name': 'First Name',
        }
    )

    class Meta:
        model = models.OrderingFilterModel
        exclude = ['first_name', 'last_name', 'username', 'age']
コード例 #3
0
ファイル: filters.py プロジェクト: lcuelloc/design_clothes
class AdminCategoryFilter(FilterSet):
    o = OrderingFilter(fields=(
        ('name', 'name'),
        ('slug', 'slug'),
    ))

    class Meta:
        model = Category
        fields = []
コード例 #4
0
    def test_translation_default_label(self):
        with translation.override('pl'):
            f = OrderingFilter(fields=['username'])

            self.assertEqual(f.field.choices, [
                ('', '---------'),
                ('username', 'Nazwa użytkownika'),
                ('-username', 'Nazwa użytkownika (malejąco)'),
            ])
コード例 #5
0
ファイル: product.py プロジェクト: lcuelloc/design_clothes
class AdminProductFilter(FilterSet):
    o = OrderingFilter(fields=(
        ('name', 'name'),
        ('slug', 'slug'),
    ))

    class Meta:
        model = Product
        fields = []
コード例 #6
0
    def test_choices_from_fields(self):
        f = OrderingFilter(fields=(('a', 'c'), ('b', 'd')), )

        self.assertSequenceEqual(f.field.choices, (
            ('c', 'C'),
            ('-c', 'C (descending)'),
            ('d', 'D'),
            ('-d', 'D (descending)'),
        ))
コード例 #7
0
class AdminCategoryDesignFilter(FilterSet):
    o = OrderingFilter(fields=(
        ('parent', 'parent'),
        ('name', 'name'),
        ('slug', 'slug'),
    ))

    class Meta:
        model = CategoryDesign
        fields = []
コード例 #8
0
class AdminPrintTypeFilter(FilterSet):
    o = OrderingFilter(fields=(
        ('name', 'name'),
        ('slug', 'slug'),
        ('price', 'price'),
    ))

    class Meta:
        model = PrintType
        fields = []
コード例 #9
0
    def test_choices_unaltered(self):
        # provided 'choices' should not be altered when 'fields' is present
        f = OrderingFilter(
            choices=(('a', 'A'), ('b', 'B')),
            fields=(('a', 'c'), ('b', 'd')),
        )

        self.assertSequenceEqual(f.field.choices, (
            ('a', 'A'),
            ('b', 'B'),
        ))
コード例 #10
0
class AdminColorFilter(FilterSet):
    o = OrderingFilter(
        fields=(
            ('name', 'name'),
            ('slug', 'slug'),
        )
    )

    class Meta:
        model = Color
        fields = []
コード例 #11
0
class UserFilter(filters.FilterSet):
    username = filters.CharFilter(field_name='username',
                                  lookup_expr='icontains_accinsensitive')

    order_by_field = 'username'

    ordering = OrderingFilter(fields=(('username', 'username'), ))

    class Meta:
        model = User
        fields = ('username', )
コード例 #12
0
class AdminDesignFilter(FilterSet):
    o = OrderingFilter(
        fields=(
            ('name', 'name'),
            ('slug', 'slug'),
            ('is_custom', 'is_custom'),
        )
    )

    class Meta:
        model = Design
        fields = []
コード例 #13
0
    def test_translation_override_label(self):
        with translation.override('pl'):
            f = OrderingFilter(
                fields=['username'],
                field_labels={'username': '******'},
            )

            self.assertEqual(f.field.choices, [
                ('', '---------'),
                ('username', 'BLABLA'),
                ('-username', 'BLABLA (malejąco)'),
            ])
コード例 #14
0
    def test_field_labels(self):
        f = OrderingFilter(
            fields=(('a', 'c'), ('b', 'd')),
            field_labels={'a': 'foo'},
        )

        self.assertSequenceEqual(f.field.choices, (
            ('c', 'foo'),
            ('-c', 'foo (descending)'),
            ('d', 'D'),
            ('-d', 'D (descending)'),
        ))
コード例 #15
0
    def test_field_labels_descending(self):
        f = OrderingFilter(fields=['username'],
                           field_labels={
                               'username': '******',
                               '-username': '******',
                           })

        self.assertEqual(f.field.choices, [
            ('', '---------'),
            ('username', 'BLABLA'),
            ('-username', 'XYZXYZ'),
        ])
コード例 #16
0
ファイル: location.py プロジェクト: lcuelloc/design_clothes
class AdminLocationFilter(FilterSet):
    o = OrderingFilter(fields=(
        ('region', 'region'),
        ('city', 'city'),
        ('commune', 'commune'),
        ('address', 'address'),
        ('number', 'number'),
        ('alias', 'alias'),
    ))

    class Meta:
        model = Location
        fields = []
コード例 #17
0
class MultiFilterTestFilterSet(PropertyFilterSet):
    number_order = OrderingFilter(fields=('number', 'number'))
    prop_number_order = PropertyOrderingFilter(fields=('prop_number', 'prop_number'))

    class Meta:
        model = models.MultiFilterTestModel
        fields = ['number', 'text', 'is_true', 'date', 'date_time']
        property_fields = [
            ('prop_number', PropertyNumberFilter, ['exact',]),
            ('prop_text', PropertyCharFilter, ['exact']),
            ('prop_is_true', PropertyBooleanFilter, ['exact']),
            ('prop_date', PropertyDateFilter, ['exact']),
            ('prop_date_time', PropertyDateTimeFilter, ['exact']),
            ]
コード例 #18
0
ファイル: views.py プロジェクト: natanshimeles/FoodBkEnd
class AllUserFilter(filters.FilterSet):
    q = django_filters.CharFilter(method='my_custom_filter')
    order_by_field = 'ordering'
    ordering = OrderingFilter(fields=(('id', 'position'), ))

    class Meta:
        model = User
        fields = ['q']

    def my_custom_filter(self, queryset, name, value):
        return User.objects.filter(
            Q(firstName__icontains=value) | Q(middleName__icontains=value)
            | Q(lastName__icontains=value) | Q(company_name__icontains=value)
            | Q(phone_no__icontains=value) | Q(tin_no__icontains=value))
コード例 #19
0
ファイル: filters.py プロジェクト: vanyukov/dharmadict
class TermFilter(FilterSet):
    order_by = OrderingFilter(
        fields = (
            ('id', 'id'),
            ('wylie', 'wylie'),
            ('sa2ru1', 'sa2ru1'),
            ('sa2en1', 'sa2en1'),
            ('sa2ru2', 'sa2ru2'),
            ('sa2en2', 'sa2en2'),
            ('sa2ru3', 'sa2ru3'),
            ('sa2en3', 'sa2en3'),
            ('tibetan', 'tibetan'),
            ('sanscrit', 'sanscrit'),
        )
    )

    search = CharFilter('search', method='search_filter')

    def search_filter(self, queryset:QuerySet, name, value):
        if value == "":
            return queryset.none()
        # qval = Q(wylie__istartswith=value) | Q(sa2ru1__istartswith=value) | Q(sa2en1__istartswith=value) | Q(sa2ru2__istartswith=value) | Q(sa2en2__istartswith=value) | Q(sa2ru3__istartswith=value) | Q(sa2en3__istartswith=value) | Q(tibetan__istartswith=value) | Q(sanscrit__istartswith=value)
        qval = Q(wylie__iexact=value) | Q(sa2ru1__iexact=value) | Q(sa2en1__iexact=value) | Q(sa2ru2__iexact=value) | Q(sa2en2__iexact=value) | Q(sa2ru3__iexact=value) | Q(sa2en3__iexact=value) | Q(tibetan__iexact=value) | Q(sanscrit__iexact=value)
            
        return queryset.filter(qval)

    class Meta:
        model = Term
        fields = {
            "wylie": ["icontains"],
            "sa2ru1": ["icontains"],
            "sa2en1": ["icontains"],
            "sa2ru2": ["icontains"],
            "sa2en2": ["icontains"],
            "sa2ru3": ["icontains"],
            "sa2en3": ["icontains"],
            "tibetan": ["icontains"],
            "sanscrit": ["icontains"],
        }
コード例 #20
0
ファイル: filters.py プロジェクト: vanyukov/dharmadict
class MeaningFilter(FilterSet):
    order_by = OrderingFilter(
        fields = (
            ('id', 'id'),
            ('meaning', 'meaning'),
        )
    )

    search = CharFilter('search', method='search_filter')

    def search_filter(self, queryset:QuerySet, name, value):
        if value == "":
            return queryset.none()
#        qval = Q(meaning__icontains=value)
        # qval = Q(meaning__istartswith=value)
        qval = Q(meaning__iexact=value)
        return queryset.filter(qval)

    class Meta:
        model = Meaning
        fields = {
            "meaning": ["iexact"],
            # "meaning": ["icontains"],
        }
コード例 #21
0
class SiaeOrderingFilter(FilterSet):
    # Mapping of the model property names -> query parameter names used to order the results:
    # - keys: the name of the property in the model in order to order the results
    # - values: the name of the ordering criterion in the query parameter
    # If you want to query https://some_api?o=cree_le, it will perform queryset.order_by("created_at")
    o = OrderingFilter(fields=SIAE_ORDERING_FILTER_MAPPING)
コード例 #22
0
ファイル: image.py プロジェクト: lcuelloc/design_clothes
class AdminImageFilter(FilterSet):
    o = OrderingFilter(fields=(('path', 'path'), ))

    class Meta:
        model = Image
        fields = []
コード例 #23
0
 def test_help_text(self):
     # regression test for #756 - the ususal CSV help_text is not relevant to ordering filters.
     self.assertEqual(OrderingFilter().field.help_text, '')
     self.assertEqual(OrderingFilter(help_text='a').field.help_text, 'a')
コード例 #24
0
    def test_widget(self):
        f = OrderingFilter()
        widget = f.field.widget

        self.assertIsInstance(widget, widgets.BaseCSVWidget)
        self.assertIsInstance(widget, forms.Select)
コード例 #25
0
 def test_filtering_skipped_with_none_value(self):
     qs = mock.Mock(spec=['order_by'])
     f = OrderingFilter()
     result = f.filter(qs, None)
     self.assertEqual(qs, result)
コード例 #26
0
ファイル: size.py プロジェクト: lcuelloc/design_clothes
class AdminSizeFilter(FilterSet):
    o = OrderingFilter(fields=(('name', 'name'), ))

    class Meta:
        model = Size
        fields = []
コード例 #27
0
ファイル: test_filters.py プロジェクト: msk7777/django-filter
 def test_filtering_with_fields(self):
     qs = mock.Mock(spec=['order_by'])
     f = OrderingFilter(fields={'a': 'b'})
     f.filter(qs, ['b', '-b'])
     qs.order_by.assert_called_once_with('a', '-a')
コード例 #28
0
ファイル: filters.py プロジェクト: paxman/odkop
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
コード例 #29
0
 def test_default_field(self):
     f = OrderingFilter()
     field = f.field
     self.assertIsInstance(field, forms.ChoiceField)
コード例 #30
0
ファイル: test_filters.py プロジェクト: msk7777/django-filter
 def test_filtering_descending(self):
     qs = mock.Mock(spec=['order_by'])
     f = OrderingFilter()
     f.filter(qs, ['-a'])
     qs.order_by.assert_called_once_with('-a')
コード例 #31
0
 def test_filtering_descending(self):
     qs = mock.Mock(spec=['order_by'])
     f = OrderingFilter()
     f.filter(qs, ['-a'])
     qs.order_by.assert_called_once_with('-a')
コード例 #32
0
ファイル: test_filters.py プロジェクト: msk7777/django-filter
 def test_filtering_skipped_with_none_value(self):
     qs = mock.Mock(spec=['order_by'])
     f = OrderingFilter()
     result = f.filter(qs, None)
     self.assertEqual(qs, result)
コード例 #33
0
 def test_filtering_with_fields(self):
     qs = mock.Mock(spec=['order_by'])
     f = OrderingFilter(fields={'a': 'b'})
     f.filter(qs, ['b', '-b'])
     qs.order_by.assert_called_once_with('a', '-a')