Пример #1
0
class ZamowieniaFilter(FilterSet):
    min_price = NumberFilter(field_name='Cena', lookup_expr='gte')
    max_price = NumberFilter(field_name='Cena', lookup_expr='lte')

    class Meta:
        model = Zamowienia
        fields = ['min_price', 'max_price']
Пример #2
0
class GoodsFilter(FilterSet):
    """
    商品过滤类
    """
    price_min = NumberFilter(field_name='shop_price',
                             help_text='最低价格',
                             lookup_expr='gte')
    price_max = NumberFilter(field_name='shop_price',
                             help_text='最高价格',
                             lookup_expr='lte')
    # 商品一级分类,传入一级分类的ID
    top_category = NumberFilter(field_name='category',
                                method='top_category_filter',
                                help_text='一級分類')

    def top_category_filter(self, queryset, name, value):
        # 不管当前点击的是一级分类二级分类还是三级分类,都能找到
        return queryset.filter(
            Q(category_id=value)
            | Q(category_parent_category_id=value)
            | Q(category_parent_category_parent_category_id=value))

    class Meta:
        model = Goods
        fields = ['price_min', 'price_max', 'top_category', 'is_hot', 'is_new']
Пример #3
0
class StockFilter(FilterSet):
    min_stock = NumberFilter(name='quantity', lookup_expr='gte')
    max_stock = NumberFilter(name='quantity', lookup_expr='lte')

    class Meta:
        model = StockItem
        fields = ['quantity', 'part', 'location']
Пример #4
0
class OrderFilter(FilterSet):
    customer = NumberFilter(field_name="project__customer")
    acknowledged = NumberFilter(field_name="acknowledged")

    class Meta:
        model = models.Order
        fields = ("customer", "project", "acknowledged")
Пример #5
0
class CompetitionFilter(FilterSet):
    from_achievement_date = DateTimeFilter(
        name='distance_achievement_date', lookup_expr='gte')
    to_achievement_date = DateTimeFilter(
        name='distance_achievement_date', lookup_expr='lte')
    min_distance_in_feet = NumberFilter(
        name='distance_in_feet', lookup_expr='gte')
    max_distance_in_feet = NumberFilter(
        name='distance_in_feet', lookup_expr='lte')
    drone_name = AllValuesFilter(
        name='drone__name')
    pilot_name = AllValuesFilter(
        name='pilot__name')

    class Meta:
        model = Competition
        fields = (
            'distance_in_feet',
            'from_achievement_date',
            'to_achievement_date',
            'min_distance_in_feet',
            'max_distance_in_feet',
            'drone_name',
            'pilot_name',
        )
Пример #6
0
class ExpenseListFilter(FilterSet):
 
    #this filter is used to filter any substring in the name of the expense
    name__cont = CharFilter(field_name='name', lookup_expr='icontains')
    
    #this filter is used to filter expenses which are greater than equal to the given amount
    amount__gt = NumberFilter(field_name='amount', lookup_expr='gte')

    #this filter is used to filter expenses which are greater than equal to the given amount
    amount__lt = NumberFilter(field_name='amount', lookup_expr='lt')
 
    #this filter is used to filter expenses which have been created after the given date
    created__gt = DateTimeFilter(field_name='created', lookup_expr='gte')

    #this filter is used to filter expenses which have been created before the given date
    created__lt = DateTimeFilter(field_name='created', lookup_expr='lt')

    #this filter is used to filter expenses based on image attached or not
    image__exists = ChoiceFilter(method=filter_not_empty, choices=ADDRESSED_CHOICES, label='Status', field_name='image')


    class Meta:
        model = Expense
        fields = ('name', 'amount','created', 'image__exists')
        order_by = ['pk']
Пример #7
0
class StockFilter(django_filters.FilterSet):
    length = NumberFilter(lookup_expr='gte')
    width = NumberFilter(lookup_expr='gte')

    class Meta:
        model = Stock
        fields = '__all__'
Пример #8
0
class FiltersFilter(FilterSet):
    entry_id = NumberFilter(method='filter_entry_id')
    entry_id__in = CharFilter(method='filter_entry_id_in')
    indicator_id = NumberFilter(method='filter_indicator_id')
    indicator_id__in = CharFilter(method='filter_indicator_id_in')

    class Meta:
        model = Filters
        fields = {
            'name': ['exact', 'icontains', 'istartswith'],
            'description': ['exact', 'icontains', 'istartswith'],
            'metadata': ['exact', 'in'],
            'indicator__name': ['exact', 'in'],
            'heading__id': ['exact', 'in'],
            'heading__name': ['exact', 'in']
        }

    def filter_entry_id(self, queryset, name, value):
        name = 'id'
        return queryset.filter(**{name: value})

    def filter_entry_id_in(self, queryset, name, value):
        name = 'id__in'
        return queryset.filter(**{name: eval(value)})

    def filter_indicator_id(self, queryset, name, value):
        name = 'indicator__id'
        return queryset.filter(**{name: value})

    def filter_indicator_id_in(self, queryset, name, value):
        name = 'indicator__id__in'
        return queryset.filter(**{name: eval(value)})
Пример #9
0
class DocumentFilter(FilterSet):
    state = MultipleCharFilter(name='state', lookup_type='iexact')
    number = NumberFilter(name='number', lookup_type='iexact')
    customer = NumberFilter(name='customer__pk', lookup_type='iexact')
    customer_name = CharFilter(name='customer__name', lookup_type='icontains')
    customer_company = CharFilter(name='customer__company',
                                  lookup_type='icontains')
    provider_name = CharFilter(name='provider__name', lookup_type='icontains')
    provider_company = CharFilter(name='provider__company',
                                  lookup_type='icontains')
    issue_date = DateFilter(name='issue_date', lookup_type='iexact')
    due_date = DateFilter(name='due_date', lookup_type='iexact')
    paid_date = DateFilter(name='due_date', lookup_type='iexact')
    cancel_date = DateFilter(name='cancel_date', lookup_type='iexact')
    currency = MultipleCharFilter(name='currency', lookup_type='icontains')
    sales_tax_name = MultipleCharFilter(name='sales_tax_name',
                                        lookup_type='icontains')

    class Meta:
        model = Document
        fields = [
            'state', 'number', 'customer_name', 'customer_company',
            'provider_name', 'provider_company', 'issue_date', 'due_date',
            'paid_date', 'cancel_date', 'currency', 'sales_tax_name'
        ]
Пример #10
0
class DataFilter(FilterSet):
    min_case = NumberFilter(name='case_num', lookup_expr='gte')
    max_case = NumberFilter(name='case_num', lookup_expr='lt')

    class Meta:
        model = DataCollection
        fields = ['min_case', 'max_case']
Пример #11
0
class UQJFilterSet(FilterSet):
    question_event = NumberFilter(field_name='question__event')
    question = NumberFilter(field_name='question')

    class Meta:
        model = UserQuestionJunction
        fields = ['question', 'question_event']
Пример #12
0
class OrderFilter(FilterSet):
    customer = NumberFilter(name='project__customer')
    acknowledged = NumberFilter(field_name='acknowledged')

    class Meta:
        model = models.Order
        fields = ('customer', 'project', 'acknowledged')
Пример #13
0
class SearchFilter(Filterset):
    registNo = NumberFilter(name='registNo')
    siteDomain = NumberFilter(name='siteDomain')

    class Meta:
        model = Post
        fields = ['registNo', 'siteDomain']
Пример #14
0
class BranchFilter(FilterSet):
    branch = CharFilter(
        label=_('Branch'),
        method='branch_filter',
    )
    client = CharFilter(
        label=_('Client'),
        field_name='client__name',
        lookup_expr='icontains',
    )
    number_of_orders__gte = NumberFilter(
        label=_('Estimates from'),
        field_name='number_of_orders',
        lookup_expr='gte',
    )
    number_of_orders__lte = NumberFilter(
        label=_('Estimates to'),
        field_name='number_of_orders',
        lookup_expr='lte',
    )

    class Meta:
        model = Branch
        fields = []

    def branch_filter(self, queryset, name, value):
        return queryset.filter(
            Q(name__icontains=value) | Q(settlement__icontains=value) | Q(address__icontains=value)
        )
Пример #15
0
class ArticleFilter(FilterSet):

    quantity__gt = NumberFilter(name='quantity',
                                lookup_expr='gt',
                                label=_('quantity greater than'))
    purchasing_price__gt = NumberFilter(name='purchasing_price',
                                        lookup_expr='gt',
                                        label=_('greater than'))
    selling_price__gt = NumberFilter(name='selling_price',
                                     lookup_expr='gt',
                                     label=_('greater than'))
    losses = NumberFilter(label=_('Losses greater or equal'),
                          lookup_expr='gte')

    class Meta:
        model = Article
        fields = {
            'branch__name': ['icontains'],
            'name': ['icontains'],
            'category__name': ['icontains'],
            'id': ['exact'],
            'quantity': ['exact'],
            'solde': ['exact'],
            'arrival__nom': ['icontains'],
        }
Пример #16
0
class MyUsersFilter(FilterSet):

    from_birth_date = DateTimeFilter(
        field_name = 'profile__date_of_birth',
        lookup_expr = 'gte'
    )

    to_birth_date = DateTimeFilter(
        field_name = 'profile__date_of_birth',
        lookup_expr = 'lte'
    )

    max_age = NumberFilter(
        field_name = 'profile__age',
        lookup_expr = 'lte'
    )

    min_age = NumberFilter(
        field_name = 'profile__age',
        lookup_expr = 'gte'
    )

    class Meta:
        model = MyUser
        fields = (
            'from_birth_date',
            'to_birth_date',
            'max_age',
            'min_age',
            'is_superuser'
        )
Пример #17
0
class ProductFilter(FilterSet):
    title = CharFilter(field_name='title',
                       lookup_expr='icontains',
                       distinct=True)
    category = CharFilter(field_name='categories__title',
                          lookup_expr='icontains',
                          distinct=True)
    category_id = CharFilter(field_name='categories__id',
                             lookup_expr='icontains',
                             distinct=True)
    min_price = NumberFilter(field_name='variation__price',
                             lookup_expr='gte',
                             distinct=True)  # (some_price__gte=somequery)
    max_price = NumberFilter(field_name='variation__price',
                             lookup_expr='lte',
                             distinct=True)

    class Meta:
        model = Product
        fields = [
            'min_price',
            'max_price',
            'category',
            'title',
            'description',
        ]
Пример #18
0
class ActivityFilterGeneric(django_filters.FilterSet):
    child_age_young = NumberFilter(field_name='age_group_young', lookup_expr="lte", label="Activities this age and up")
    child_age_old = NumberFilter(field_name="age_group_old", lookup_expr="gte", label = "Activities for this age and below")
    
    class Meta:
        model = Activities
        fields = "__all__"
Пример #19
0
class ObrasUsuariosFilterSet(FilterSet):
    id_obra = NumberFilter(field_name='obra__id')
    id_usuario = NumberFilter(field_name='usuario__id')

    obra_pedido = NumberFilter(field_name='obra__pedido')
    obra_data_lancamento__gte = DateFilter(field_name='obra__data_lancamento',
                                           lookup_expr='gte')
    obra_data_lancamento__lte = DateFilter(field_name='obra__data_lancamento',
                                           lookup_expr='lte')
    obra_data_inicio__gte = DateFilter(field_name='obra__data_inicio',
                                       lookup_expr='gte')
    obra_data_inicio__lte = DateFilter(field_name='obra__data_inicio',
                                       lookup_expr='lte')
    obra_data_final__gte = DateFilter(field_name='obra__data_final',
                                      lookup_expr='gte')
    obra_data_final__lte = DateFilter(field_name='obra__data_final',
                                      lookup_expr='lte')

    usuario_cpf = CharFilter(field_name='usuario__cpf')
    usuario_matricula = NumberFilter(field_name='usuario__matricula')

    encarregado = BooleanFilter(field_name='encarregado')

    class Meta:
        model = ObrasUsuarios
        fields = ('id', 'encarregado')
Пример #20
0
class PlayerScoreFilter(filters.FilterSet):
    min_score = NumberFilter(
        name='score',lookup_expr='gte'
    )
    max_score = NumberFilter(
        name='score',lookup_expr='lte'
    )
    from_score_date = DateTimeFilter(
        name='score_date',
        lookup_expr='gte'
    )
    to_score_date = DateTimeFilter(
        name='score_date',
        lookup_expr='lte'
    )
    player_name = AllValuesFilter(
        name='player__name'
    )
    game_name = AllValuesFilter(
        name= 'game__name'
    )

    class Meta:
        model = PlayerScore
        fields = (
            'score',
            'from_score_date',
            'to_score_date',
            'min_score',
            'max_score',
            # player__name will be accessed as player_name
            'player_name',
            #game__name will be accessed as game_name
            'game_name'
        )
class ProductFilter(django_filters.FilterSet):
    name = CharFilter(field_name='name', lookup_expr='icontains')
    material = CharFilter(field_name='material', lookup_expr='icontains')
    cost_price_gte = CharFilter(field_name="cost_price", lookup_expr="gte")
    cost_price_lte = CharFilter(field_name="cost_price", lookup_expr="lte")
    sell_price_gte = CharFilter(field_name="sell_price", lookup_expr="gte")
    sell_price_lte = CharFilter(field_name="sell_price", lookup_expr="lte")
    units_gte = NumberFilter(field_name="units", lookup_expr="gte")
    units_lte = NumberFilter(field_name="units", lookup_expr="lte")

    def __init__(self, *args, **kwargs):
        super(ProductFilter, self).__init__(*args, **kwargs)
        self.filters['name'].label = "Nombre"
        self.filters['category'].label = "Categoría"
        self.filters['size'].label = "Tamaño"
        self.filters['material'].label = "Material"
        self.filters['cost_price_gte'].label = "Coste mayor o igual que"
        self.filters['cost_price_lte'].label = "Coste menor o igual que"
        self.filters[
            'sell_price_gte'].label = "Precio de venta mayor o igual que"
        self.filters[
            'sell_price_lte'].label = "Precio de venta menor o igual que"
        self.filters['units_gte'].label = "Nº de unidades mayor o igual que"
        self.filters['units_lte'].label = "Nº de unidades menor o igual que"

    class Meta:
        model = Product
        fields = '__all__'
        exclude = [
            'product_pic', 'date_created', 'description', 'cost_price',
            'sell_price', 'units'
        ]
Пример #22
0
class PlayerScoreFilter(FilterSet):
    min_score = NumberFilter(
        name='score', lookup_expr='gte',
    )
    max_score = NumberFilter(
        name='score', lookup_expr='lte'
    )
    from_score_date = DateTimeFilter(
        name='score_date', lookup_expr='gte'
    )
    to_score_date = DateTimeFilter(
        name='score_date', lookup_expr='lte'
    )
    player_name = AllValuesFilter(
        name='player__name'
    )
    game_name = AllValuesFilter(
        name='game__name'
    )

    class Meta:
        model = PlayerScore
        fields = (
            'score',
            'from_score_date',
            'to_score_date',
            'min_score',
            'max_score',
            'player_name',
            'game_name',
        )
Пример #23
0
class HistoryLinesFilter(filters.FilterSet):
    after = NumberFilter(name="line_number", lookup_expr=('gt'))
    before = NumberFilter(name="line_number", lookup_expr=('lt'))

    class Meta:
        model = models.HistoryLines
        fields = ('line_number', )
Пример #24
0
class ParagonFilter(FilterSet):
    min_price = NumberFilter(field_name='suma', lookup_expr='gte')
    max_price = NumberFilter(field_name='suma', lookup_expr='lte')

    class Meta:
        model = Paragon
        fields = ['min_price', 'max_price']
Пример #25
0
class TicketFilter(FilterSet):
    from_price = NumberFilter(field_name='price', lookup_expr='gte')
    to_price = NumberFilter(field_name='price', lookup_expr='lte')

    class Meta:
        model = Ticket
        fields = ['from_price', 'to_price']
Пример #26
0
class EpicFilterSet(FilterSet):
    finished = BooleanFilter(label=_("Finalizada"), method="finished_filter")
    current_progress__gte = NumberFilter(
        label=_("Avance actual mayor o igual que"),
        field_name="annotated_current_progress",
        lookup_expr="gte")
    current_progress__lte = NumberFilter(
        label=_("Avance actual menor o igual que"),
        field_name="annotated_current_progress",
        lookup_expr="lte")

    def finished_filter(self, queryset, field_name, value):
        condition = Q(annotated_current_progress=100)
        if value is True:
            return queryset.filter(condition)
        elif value is False:
            return queryset.exclude(condition)
        else:
            return queryset

    class Meta:
        model = Epic
        fields = {
            "id": ["exact", "in"],
            "name": ["icontains"],
            "description": ["icontains"],
            "external_reference": ["icontains"],
            "tags__name": ["in", "iexact", "icontains", "istartswith"],
        }
Пример #27
0
class UslugaFilter(FilterSet):
    min_price = NumberFilter(field_name='cena_netto', lookup_expr='gte')
    max_price = NumberFilter(field_name='cena_netto', lookup_expr='lte')

    class Meta:
        model = Usluga
        fields = ['min_price', 'max_price']
Пример #28
0
class BillingDocumentFilter(FilterSet):
    id = NumberFilter(name='id', lookup_expr='iexact')
    state = MultipleCharFilter(name='state', lookup_expr='iexact')
    number = NumberFilter(name='number', lookup_expr='iexact')
    customer = NumberFilter(name='customer__pk', lookup_expr='iexact')
    customer_name = CharFilter(name='customer__name', lookup_expr='icontains')
    customer_company = CharFilter(name='customer__company',
                                  lookup_expr='icontains')
    provider_name = CharFilter(name='provider__name', lookup_expr='icontains')
    provider_company = CharFilter(name='provider__company',
                                  lookup_expr='icontains')
    issue_date = DateFilter(name='issue_date', lookup_expr='iexact')
    due_date = DateFilter(name='due_date', lookup_expr='iexact')
    paid_date = DateFilter(name='due_date', lookup_expr='iexact')
    cancel_date = DateFilter(name='cancel_date', lookup_expr='iexact')
    currency = MultipleCharFilter(name='currency', lookup_expr='icontains')
    sales_tax_name = MultipleCharFilter(name='sales_tax_name',
                                        lookup_expr='icontains')
    is_overdue = BooleanFilter(name='overdue', method='filter_is_overdue')

    def filter_is_overdue(self, queryset, _, value):
        if value:
            return queryset.overdue()
        return queryset.not_overdue()

    class Meta:
        model = BillingDocumentBase
        fields = [
            'id', 'state', 'number', 'customer_name', 'customer_company',
            'provider_name', 'provider_company', 'issue_date', 'due_date',
            'paid_date', 'cancel_date', 'currency', 'sales_tax_name',
            'is_overdue'
        ]
Пример #29
0
class ReferenceByRankFilter(django_filters.FilterSet):
    title = CharFilter(field_name='title',
                       lookup_expr='icontains',
                       label='Title: ',
                       widget=forms.TextInput(attrs={'class': 'filter-field'}))
    project = ModelChoiceFilter(
        field_name='project',
        queryset=Project.objects.all(),
        label='Project: ',
        widget=forms.Select(attrs={'class': 'filter-field'}))
    user = ModelChoiceFilter(
        field_name='author',
        queryset=User.objects.all(),
        label='User: '******'class': 'filter-field'}))
    team = ModelChoiceFilter(
        field_name='team',
        queryset=Team.objects.all(),
        label='Team: ',
        widget=forms.Select(attrs={'class': 'filter-field'}))
    startYear = NumberFilter(
        field_name='year',
        lookup_expr='gte',
        label='From year: ',
        widget=forms.NumberInput(attrs={'class': 'filter-field'}))
    endYear = NumberFilter(
        field_name='year',
        lookup_expr='lte',
        label='To year: ',
        widget=forms.NumberInput(attrs={'class': 'filter-field'}))

    class Meta:
        model = Reference
        fields = ''
Пример #30
0
class OrderPaymentFilter(FilterSet):
    order_id = NumberFilter(name="order_event__id", label="orderId")
    customer_id = NumberFilter(name="customer__id", label="customerId")

    class Meta:
        model = OrderPayment
        fields = ['order_id', 'customer_id']