コード例 #1
0
ファイル: filters.py プロジェクト: Gokulraam2257/erp-software
class CustomerFilter(django_filters.FilterSet):
    
    # start_date = DateFilter(field_name="created_at",lookup_expr='gte')
    
    '''
    Date range filter
    # lookup_expr gives the result in which data is greater or equal to given date
    # gte=greater than equals--created_at is my models of Product
    '''
    
    # end_date = DateFilter(field_name="created_at",lookup_expr='lte')#lte=less than equals
    
    name = CharFilter(field_name="name",lookup_expr='icontains')
    # --->icontains means igonring casesensitive
    #u--->sing this i can search even with single character
    
    
    class Meta:
        model = Customer#make filter for model Customer
        
        fields = ('name',)#generate filter form with all first_name
コード例 #2
0
class UserFilter(FilterSet):
    fullName = CharFilter(name='full_name', method='full_name_filter')

    class Meta:
        model = Client
        fields = ['is_active']

    def full_name_filter(self, queryset, name, value):
        try:
            first_name, last_name = value.split()

            return queryset.filter(
                (Q(first_name__icontains=first_name)
                 & Q(last_name__icontains=last_name))).filter(is_active=True)
        except ValueError:
            first_name = value
            last_name = value

            return queryset.filter(
                Q(first_name__icontains=value)
                | Q(last_name__icontains=value)).filter(is_active=True)
コード例 #3
0
ファイル: filters.py プロジェクト: gusreyes01/saleor-old-1
class SaleFilter(SortedFilterSet):
    name = CharFilter(
        label=pgettext_lazy("Sale list filter label", "Name"), lookup_expr="icontains"
    )
    categories = ModelMultipleChoiceFilter(
        label=pgettext_lazy("Sale list filter label", "Categories"),
        field_name="categories",
        queryset=Category.objects.all(),
    )
    type = ChoiceFilter(
        label=pgettext_lazy("Sale list filter label", "Discount type"),
        choices=DISCOUNT_TYPE_CHOICES,
        empty_label=pgettext_lazy("Filter empty choice label", "All"),
        widget=forms.Select,
    )
    value = RangeFilter(label=pgettext_lazy("Sale list filter label", "Value"))
    date = DateFromToRangeFilter(
        label=pgettext_lazy("Sale list sorting filter label", "Period of validity"),
        field_name="created",
        widget=DateRangeWidget,
        method=filter_by_date_range,
    )
    sort_by = OrderingFilter(
        label=pgettext_lazy("Sale list filter label", "Sort by"),
        fields=SORT_BY_FIELDS_SALE.keys(),
        field_labels=SORT_BY_FIELDS_SALE,
    )

    class Meta:
        model = Sale
        fields = []

    def get_summary_message(self):
        counter = self.qs.count()
        return npgettext(
            "Number of matching records in the dashboard sales list",
            "Found %(counter)d matching sale",
            "Found %(counter)d matching sales",
            number=counter,
        ) % {"counter": counter}
コード例 #4
0
ファイル: filters.py プロジェクト: emorozov/silver
class CustomerFilter(FilterSet):
    active = BooleanFilter(field_name='is_active', lookup_expr='iexact')
    email = CharFilter(field_name='email', lookup_expr='icontains')
    company = CharFilter(field_name='company', lookup_expr='icontains')
    first_name = CharFilter(field_name='first_name', lookup_expr='icontains')
    last_name = CharFilter(field_name='last_name', lookup_expr='icontains')
    country = CharFilter(field_name='country', lookup_expr='icontains')
    sales_tax_name = CharFilter(field_name='sales_tax_name',
                                lookup_expr='icontains')
    sales_tax_number = CharFilter(field_name='sales_tax_number',
                                  lookup_expr='icontains')
    consolidated_billing = CharFilter(field_name='consolidated_billing',
                                      lookup_expr='icontains')
    reference = MultipleCharFilter(field_name='customer_reference',
                                   lookup_expr='iexact')

    class Meta:
        model = Customer
        fields = [
            'email', 'first_name', 'last_name', 'company', 'active', 'country',
            'reference', 'sales_tax_name', 'consolidated_billing',
            'sales_tax_number'
        ]
コード例 #5
0
class ObjectProcessFilter(django_filters.FilterSet):
    src_objecthashkey = CharFilter(label='Object Source', field_name='src_objecthashkey', lookup_expr='icontains', widget=forms.TextInput(attrs={'class': 'form-control'}))
    dest_objecthashkey = CharFilter(label='Object Destinitions', field_name='dest_objecthashkey', lookup_expr='icontains', widget=forms.TextInput(attrs={'class': 'form-control'}))
    processenginehashkey = CharFilter(label='Process Engine', field_name='processenginehashkey', lookup_expr='icontains', widget=forms.TextInput(attrs={'class': 'form-control'}))
    userhashkey = CharFilter(label='User', field_name='userhashkey', lookup_expr='icontains', widget=forms.TextInput(attrs={'class': 'form-control'}))
    sourcesystemcreatedby = CharFilter(label='Created By', field_name='sourcesystemcreatedby', lookup_expr='icontains', widget=forms.TextInput(attrs={'class': 'form-control'}))
    sourcesystemcreatedtime = CharFilter(label='Created At', field_name='sourcesystemcreatedtime', lookup_expr='icontains', widget=forms.TextInput(attrs={'class': 'form-control'}))
    
    class Meta:
        model = ObjectProcess
        fields = '__all__'

        exclude = ('objectprocesshashkey')
    
    def __init__(self, *args, **kwargs):
        super(ObjectProcessFilter, self).__init__(*args, **kwargs)
コード例 #6
0
ファイル: filters.py プロジェクト: tanjibpa/alrawaa
class ProductFilter(SortedFilterSet):
    name = CharFilter(label=pgettext_lazy('Product list filter label', 'Name'),
                      lookup_expr='icontains')
    categories = ModelMultipleChoiceFilter(label=pgettext_lazy(
        'Product list filter label', 'Categories'),
                                           name='categories',
                                           queryset=Category.objects.all())
    price = RangeFilter(label=pgettext_lazy('Product list filter label',
                                            'Price'),
                        name='price',
                        widget=PriceRangeWidget)
    is_published = ChoiceFilter(
        label=pgettext_lazy('Product list filter label', 'Is published'),
        choices=PUBLISHED_CHOICES,
        empty_label=pgettext_lazy('Filter empty choice label', 'All'),
        widget=forms.Select)
    is_featured = ChoiceFilter(
        label=pgettext_lazy('Product list is featured filter label',
                            'Is featured'),
        choices=FEATURED_CHOICES,
        empty_label=pgettext_lazy('Filter empty choice label', 'All'),
        widget=forms.Select)
    sort_by = OrderingFilter(label=pgettext_lazy('Product list filter label',
                                                 'Sort by'),
                             fields=PRODUCT_SORT_BY_FIELDS.keys(),
                             field_labels=PRODUCT_SORT_BY_FIELDS)

    class Meta:
        model = Product
        fields = []

    def get_summary_message(self):
        counter = self.qs.count()
        return npgettext(
            'Number of matching records in the dashboard products list',
            'Found %(counter)d matching product',
            'Found %(counter)d matching products',
            number=counter) % {
                'counter': counter
            }
コード例 #7
0
ファイル: filters.py プロジェクト: jcmarsh/drseus
class event(FilterSet):
    def __init__(self, *args, **kwargs):
        if not event_choices['level'] and kwargs['queryset'].count():
            update_choices()
        super().__init__(*args, **kwargs)
        for attribute in event_choices:
            self.filters[attribute].extra.update(
                choices=event_choices[attribute])
            self.filters[attribute].widget.attrs['size'] = min(
                len(event_choices[attribute]), 50)

    description = CharFilter(label='Description',
                             lookup_type='icontains',
                             widget=Textarea(attrs={
                                 'class': 'form-control',
                                 'rows': 3
                             }),
                             help_text='')
    type = MultipleChoiceFilter(
        label='Type',
        widget=SelectMultiple(attrs={'class': 'form-control'}),
        help_text='')
    level = MultipleChoiceFilter(
        label='Level',
        widget=SelectMultiple(attrs={'class': 'form-control'}),
        help_text='')
    source = MultipleChoiceFilter(
        label='Source',
        widget=SelectMultiple(attrs={'class': 'form-control'}),
        help_text='')
    success = BooleanFilter(label='Success',
                            widget=Select(choices=(('3', 'Unknown'),
                                                   ('1', 'True'), ('0',
                                                                   'False')),
                                          attrs={'class': 'form-control'}),
                            help_text='')

    class Meta:
        exclude = ('campaign', 'result', 'timestamp')
        model = models.event
コード例 #8
0
class ClientFilter(FilterSet):
    name = CharFilter(name='name', method='name_filter')
    with_matter = BooleanFilter(name='with_matter',
                                method="with_matter_filter")
    with_open_matter = BooleanFilter(name='with_open_matter',
                                     method="with_open_matter_filter")

    class Meta:
        model = Client
        fields = ['contact__first_name', 'matters__id']

    def name_filter(self, queryset, name, value):
        try:
            first_name, last_name = value.split()

            return queryset.filter(
                Q(organisation__name__icontains=value)
                | (Q(contact__first_name__icontains=first_name)
                   & Q(contact__last_name__icontains=last_name)))
        except ValueError:
            first_name = value
            last_name = value

            return queryset.filter(
                Q(organisation__name__icontains=value)
                | Q(contact__first_name__icontains=value)
                | Q(contact__last_name__icontains=value))

    def with_matter_filter(self, queryset, name, value):
        if value is True:
            return queryset.exclude(matters=None)
        else:
            return queryset.all()

    def with_open_matter_filter(self, queryset, name, value):
        if value is True:
            clients = queryset.filter(matters__billable_status=1)
            return clients.distinct()
        else:
            return queryset.all()
コード例 #9
0
class ReportFilter(DojoFilter):
    name = CharFilter(lookup_expr='icontains')
    type = MultipleChoiceFilter(choices=[])
    format = MultipleChoiceFilter(choices=[])
    requester = ModelMultipleChoiceFilter(queryset=Dojo_User.objects.all())
    datetime = DateTimeFilter()
    status = MultipleChoiceFilter(choices=[])

    o = OrderingFilter(
        # tuple-mapping retains order
        fields=(
            ('datetime', 'datetime'),
            ('name', 'name'),
            ('type', 'type'),
            ('format', 'format'),
            ('requester', 'requester'),
        ),
        field_labels={
            'datetime': 'Date',
        })

    class Meta:
        model = Report
        exclude = ['task_id', 'file']

    def __init__(self, *args, **kwargs):
        super(ReportFilter, self).__init__(*args, **kwargs)
        type = dict()
        type = dict([report.type, report.type]
                    for report in self.queryset.distinct()
                    if report.type is not None)
        type = collections.OrderedDict(sorted(type.items()))
        self.form.fields['type'].choices = type.items()

        status = dict()
        status = dict([report.status, report.status]
                      for report in self.queryset.distinct()
                      if report.status is not None)
        status = collections.OrderedDict(sorted(status.items()))
        self.form.fields['status'].choices = status.items()
コード例 #10
0
ファイル: filters.py プロジェクト: hi-lap/longan.store
class VoucherFilter(SortedFilterSet):
    name = CharFilter(label=pgettext_lazy('Voucher list name filter label',
                                          'Name'),
                      lookup_expr='icontains')
    type = ChoiceFilter(field_name='discount_value_type',
                        label=pgettext_lazy(
                            'Sale list is sale type filter label',
                            'Discount type'),
                        choices=DISCOUNT_TYPE_CHOICES,
                        empty_label=pgettext_lazy('Filter empty choice label',
                                                  'All'),
                        widget=forms.Select)
    discount_value = RangeFilter(
        label=pgettext_lazy('Sale list filter label', 'Discount_value'))
    date = DateFromToRangeFilter(label=pgettext_lazy(
        'Voucher list sorting filter label', 'Period of validity'),
                                 field_name='created',
                                 widget=DateRangeWidget,
                                 method=filter_by_date_range)
    min_amount_spent = RangeFilter(label=pgettext_lazy(
        'Voucher list sorting filter', 'Minimum amount spent'),
                                   field_name='min_amount_spent')
    sort_by = OrderingFilter(label=pgettext_lazy(
        'Voucher list sorting filter label', 'Sort by'),
                             fields=SORT_BY_FIELDS_LABELS_VOUCHER.keys(),
                             field_labels=SORT_BY_FIELDS_LABELS_VOUCHER)

    class Meta:
        model = Voucher
        fields = []

    def get_summary_message(self):
        counter = self.qs.count()
        return npgettext(
            'Number of matching records in the dashboard vouchers list',
            'Found %(counter)d matching voucher',
            'Found %(counter)d matching vouchers',
            number=counter) % {
                'counter': counter
            }
コード例 #11
0
ファイル: filters.py プロジェクト: code-yogi/nova
class VM_PORF_CXC_Filter(filters.FilterSet):

    cuenta_desc = CharFilter(name="cuenta_desc", lookup_expr="contains")
    doc_fecha_lm_ini = DateFilter(name="doc_fecha_lm", lookup_expr="gte")
    doc_fecha_lm_fin = DateFilter(name="doc_fecha_lm", lookup_expr="lte")

    class Meta:
        model = VM_PORF_CXC
        fields = [
            'doc_compania',
            'anio',
            'periodo',
            'doc_tipo',
            'doc_numero',
            'doc_fecha_lm_ini',
            'doc_fecha_lm_fin',
            'un_proyecto',
            'un',
            'cuenta_desc',
            'cuenta_clase',
            'cuenta_porf_clase',
        ]
コード例 #12
0
class PopularCategoryFilter(SortedFilterSet):
    category__name = CharFilter(label=pgettext_lazy(
        'Category list filter label', 'Name'),
                                lookup_expr='icontains')
    sort_by = OrderingFilter(label=pgettext_lazy('Category list filter label',
                                                 'Sort by'),
                             fields=SORT_BY_FIELDS.keys(),
                             field_labels=SORT_BY_FIELDS)

    class Meta:
        model = PopularCategory
        fields = []

    def get_summary_message(self):
        counter = self.qs.count()
        return npgettext(
            'Number of matching records in the dashboard popular categories list',
            'Found %(counter)d matching popular category',
            'Found %(counter)d matching popular categories',
            number=counter) % {
                'counter': counter
            }
コード例 #13
0
class OrgsMediaFilter(django_filters.FilterSet):

    title = CharFilter(field_name="title",
                       lookup_expr='icontains',
                       label=_('كلمات من عنوان المحتوى'))

    start_date_pub = DateFilter(field_name="created_at",
                                lookup_expr='gte',
                                label=_('تاريخ نشر المحتوى / من :'))
    end_date_pub = DateFilter(field_name="created_at",
                              lookup_expr='lte',
                              label=_('إلى :'))

    class Meta:
        model = OrgData
        fields = [
            'user',
            'org_name',
            'title',
            'start_date_pub',
            'end_date_pub',
        ]
コード例 #14
0
ファイル: filters.py プロジェクト: stephenaiesi/saleor
class SaleFilter(SortedFilterSet):
    name = CharFilter(label=pgettext_lazy('Sale list filter label', 'Name'),
                      lookup_expr='icontains')
    categories = ModelMultipleChoiceFilter(label=pgettext_lazy(
        'Sale list filter label', 'Categories'),
                                           name='categories',
                                           queryset=Category.objects.all())
    type = ChoiceFilter(label=pgettext_lazy('Sale list filter label',
                                            'Discount type'),
                        choices=DISCOUNT_TYPE_CHOICES,
                        empty_label=pgettext_lazy('Filter empty choice label',
                                                  'All'),
                        widget=forms.Select)
    value = RangeFilter(label=pgettext_lazy('Sale list filter label', 'Value'))
    sort_by = OrderingFilter(label=pgettext_lazy('Sale list filter label',
                                                 'Sort by'),
                             fields=SORT_BY_FIELDS_SALE.keys(),
                             field_labels=SORT_BY_FIELDS_SALE)

    class Meta:
        model = Sale
        fields = []
コード例 #15
0
class CollectionExtensionFilter(SortedFilterSet):
    collection__name = CharFilter(label=pgettext_lazy(
        'Collection list filter label', 'Name'),
                                  lookup_expr='icontains')
    sort_by = OrderingFilter(label=pgettext_lazy(
        'Collection list filter label', 'Sort by'),
                             fields=SORT_BY_FIELDS.keys(),
                             field_labels=SORT_BY_FIELDS)

    class Meta:
        model = CollectionExtension
        fields = []

    def get_summary_message(self):
        counter = self.qs.count()
        return npgettext(
            'Number of matching records in the dashboard collection extensions list',
            'Found %(counter)d matching collection extension',
            'Found %(counter)d matching collection extensions',
            number=counter) % {
                'counter': counter
            }
コード例 #16
0
class GoodsFilter(filters.FilterSet):
    # 初始化过滤对象,对goods的价格小于等于或大于等于过滤
    pricemin = NumberFilter(field_name='shop_price', lookup_expr='gte')
    pricemax = NumberFilter(field_name='shop_price', lookup_expr='lte')
    # SQL的搜索过滤
    name = CharFilter(field_name='name', lookup_expr='icontains')

    # 根据一级类别的id过滤出属于一级类别的所有的商品
    top_category = NumberFilter(method='top_catetory_filter')

    def top_catetory_filter(self, queryset, name, value):
        # 这里的queryset返回的是Goods的实例列表,过滤商品类别等于value的实例或者商品类别的父类别等于value的实例或者商品类别的爷爷类别等于value的实例
        # 这里category、parent_category都是外键,那么要获取外键的ID,直接在后面加上_id即可获取
        # 这里主要逻辑的实现是基于Goods这个Model有一个外键category属于GoodCategory这个Model, 这样就可以使用获取一个商品后,找到其一级类别,最后根据过滤规则判断是否这个一级类别的值等于value, 如果等于,那么这个商品将会保留下来
        queryset = queryset.filter(Q(category_id = value) | \
                                   Q(category__parent_category_id = value) | \
                                   Q(category__parent_category__parent_category_id = value))
        return queryset

    class Meta:
        model = Goods
        fields = ['pricemin', 'pricemax', 'name', 'is_hot', 'is_new']
コード例 #17
0
class LinkedProductFilter(SortedFilterSet):
    name = CharFilter(label=pgettext_lazy('Linked product list filter label',
                                          'Name'),
                      lookup_expr='icontains')
    sort_by = OrderingFilter(label=pgettext_lazy(
        'Linked product list filter label', 'Sort by'),
                             fields=SORT_BY_FIELDS.keys(),
                             field_labels=SORT_BY_FIELDS)

    class Meta:
        model = LinkedProduct
        fields = []

    def get_summary_message(self):
        counter = self.qs.count()
        return npgettext(
            'Number of matching records in the dashboard linked products list',
            'Found %(counter)d matching linked product',
            'Found %(counter)d matching linked products',
            number=counter) % {
                'counter': counter
            }
コード例 #18
0
class SkillFilter(SortedFilterSet):
    name = CharFilter(label=pgettext_lazy('Skill list filter label', 'Name'),
                      lookup_expr='icontains')
    category = ModelMultipleChoiceFilter(label=pgettext_lazy(
        'Skill list filter label', 'Category'),
                                         field_name='category',
                                         queryset=Category.objects.all())
    skill_type = ModelMultipleChoiceFilter(label=pgettext_lazy(
        'Skill list filter label', 'Skill type'),
                                           field_name='skill_type',
                                           queryset=SkillType.objects.all())
    price = RangeFilter(label=pgettext_lazy('Skill list filter label',
                                            'Price'),
                        field_name='price',
                        widget=MoneyRangeWidget)
    is_published = ChoiceFilter(label=pgettext_lazy('Skill list filter label',
                                                    'Is published'),
                                choices=PUBLISHED_CHOICES,
                                empty_label=pgettext_lazy(
                                    'Filter empty choice label', 'All'),
                                widget=forms.Select)
    sort_by = OrderingFilter(label=pgettext_lazy('Skill list filter label',
                                                 'Sort by'),
                             fields=SKILL_SORT_BY_FIELDS.keys(),
                             field_labels=SKILL_SORT_BY_FIELDS)

    class Meta:
        model = Skill
        fields = []

    def get_summary_message(self):
        counter = self.qs.count()
        return npgettext(
            'Number of matching records in the dashboard skills list',
            'Found %(counter)d matching skill',
            'Found %(counter)d matching skills',
            number=counter) % {
                'counter': counter
            }
コード例 #19
0
ファイル: filters.py プロジェクト: hi-lap/longan.store
class MenuFilter(SortedFilterSet):
    name = CharFilter(label=pgettext_lazy('Menu list filter label',
                                          'Menu name'),
                      lookup_expr='icontains')
    sort_by = OrderingFilter(label=pgettext_lazy('Menu list filter label',
                                                 'Sort by'),
                             fields=MENU_SORT_BY_FIELDS.keys(),
                             field_labels=MENU_SORT_BY_FIELDS)

    class Meta:
        model = Menu
        fields = []

    def get_summary_message(self):
        counter = self.qs.count()
        return npgettext(
            'Number of matching records in the dashboard menus list',
            'Found %(counter)d matching menu',
            'Found %(counter)d matching menus',
            number=counter) % {
                'counter': counter
            }
コード例 #20
0
class ColumnFilter(FilterSet):
    database = ModelChoiceFilter(queryset=Database.objects.filter(enable=True),
                                 method='database_filter',
                                 label='',
                                 empty_label='Choose a database')
    table = ModelChoiceFilter(queryset=Table.objects.all(), label='')
    word = CharFilter(method='word_filter',
                      label='',
                      widget=TextInput(attrs={'placeholder': 'Search a word'}))

    def database_filter(self, queryset, name, value):
        return queryset.filter(table__database=value)

    def word_filter(self, queryset, name, value):
        return queryset.filter(
            Q(name__icontains=value) | Q(comment__icontains=value)
            | Q(table__name__icontains=value)
            | Q(table__comment__icontains=value))

    class Meta:
        model = Column
        fields = ['database', 'table', 'word']
コード例 #21
0
class ReleaseComponentFilter(ComposeFilterSet):
    name = MultiValueFilter()
    release = MultiValueFilter(name='release__release_id')
    global_component = MultiValueFilter(name='global_component__name')
    bugzilla_component = MultiValueFilter(name='bugzilla_component__name')
    brew_package = MultiValueFilter()
    active = CaseInsensitiveBooleanFilter()
    type = CharFilter(name='type__name')
    dist_git_branch = MethodFilter(action='filter_by_dist_git_branch',
                                   widget=SelectMultiple)

    @value_is_not_empty
    def filter_by_dist_git_branch(self, qs, value):
        q = Q(dist_git_branch__in=value) | Q(
            release__releasedistgitmapping__dist_git_branch__in=value,
            dist_git_branch__isnull=True)
        return qs.filter(q)

    class Meta:
        model = ReleaseComponent
        fields = ('name', 'release', 'global_component', 'active',
                  'bugzilla_component', 'type', 'dist_git_branch')
コード例 #22
0
ファイル: filters.py プロジェクト: Eyad-Khalile/SCM_02
class OrgsRapportFilter(django_filters.FilterSet):

    title = CharFilter(field_name="title",
                       lookup_expr='icontains',
                       label=_('كلمات من عنوان التقرير'))

    start_date_pub = DateFilter(field_name="created_at",
                                lookup_expr='gte',
                                label=_('تاريخ نشر التقرير / من :'))
    end_date_pub = DateFilter(field_name="created_at",
                              lookup_expr='lte',
                              label=_('إلى :'))

    class Meta:
        model = OrgRapport
        fields = [
            'org_name',
            'title',
            'domain',
            'start_date_pub',
            'end_date_pub',
        ]
コード例 #23
0
 class Meta:
     _list_fields = (
         'id',
         'some_binfile',
         'some_namedbinfile',
         'some_namedbinimage',
         'some_multiplenamedbinfile',
         'some_multiplenamedbinimage',
     )
     _override_list_fields = dict(
         some_binfile=fields.BinFileInStringField(required=False),
         some_namedbinfile=fields.NamedBinaryFileInJsonField(
             required=False),
         some_namedbinimage=fields.NamedBinaryImageInJsonField(
             required=False),
         some_multiplenamedbinfile=fields.
         MultipleNamedBinaryFileInJsonField(required=False),
         some_multiplenamedbinimage=fields.
         MultipleNamedBinaryImageInJsonField(required=False))
     _filterset_fields = {
         'some_binfile': CharFilter(label='Some label for binfile')
     }
コード例 #24
0
class BillingDocumentFilter(FilterSet):
    state = CharFilter(name='state', lookup_type='iexact')
    number = NumberFilter(name='number', 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 = CharFilter(name='currency', lookup_type='icontains')
    sales_tax_name = CharFilter(name='sales_tax_name', lookup_type='icontains')

    class Meta:
        fields = ['state', 'number', 'customer_name', 'customer_company',
                  'issue_date', 'due_date', 'paid_date', 'cancel_date',
                  'currency', 'sales_tax_name']
コード例 #25
0
ファイル: filters.py プロジェクト: mokhnatkin/operrisk
class IncidentFilter(django_filters.FilterSet):
    categories = Category.objects.all()
    subcategories = Subcategory.objects.all()
    statuses = Incident.INCIDENT_STATUSES

    name = CharFilter(lookup_expr='icontains', label='Название')
    status = ChoiceFilter(choices=statuses, label='Статус')
    category = ModelChoiceFilter(queryset=categories, label='Категория')
    subcategory = ModelChoiceFilter(queryset=subcategories, label='Причина')
    loss_amount__gt = NumberFilter(field_name='loss_amount',
                                   lookup_expr='gt',
                                   label='Убыток больше чем...')
    loss_amount__lt = NumberFilter(field_name='loss_amount',
                                   lookup_expr='lt',
                                   label='Убыток меньше чем...')
    incident_year = NumberFilter(field_name='incident_date',
                                 lookup_expr='year',
                                 label='Год инцидента')

    class Meta:
        model = Incident
        fields = ['id', 'status', 'name', 'category', 'subcategory']
コード例 #26
0
class ProductTypeFilter(SortedFilterSet):
    name = CharFilter(label=pgettext_lazy('Product type list filter label',
                                          'Name'),
                      lookup_expr='icontains')
    sort_by = OrderingFilter(label=pgettext_lazy(
        'Product type list filter label', 'Sort by'),
                             fields=PRODUCT_TYPE_SORT_BY_FIELDS.keys(),
                             field_labels=PRODUCT_TYPE_SORT_BY_FIELDS)

    class Meta:
        model = ProductType
        fields = ['name', 'product_attributes', 'variant_attributes']

    def get_summary_message(self):
        counter = self.qs.count()
        return npgettext(
            'Number of matching records in the dashboard product types list',
            'Found %(counter)d matching product type',
            'Found %(counter)d matching product types',
            number=counter) % {
                'counter': counter
            }
コード例 #27
0
class ImageFilter(SortedFilterSet):
    name = CharFilter(label=pgettext_lazy('Image list filter label', 'Name'),
                      lookup_expr='icontains')
    sort_by = OrderingFilter(label=pgettext_lazy('Image list filter label',
                                                 'Sort by'),
                             fields=IMAGE_SORT_BY_FIELDS.keys(),
                             field_labels=IMAGE_SORT_BY_FIELDS)

    class Meta:
        model = ImageData
        fields = []

    def get_summary_message(self):
        counter = self.qs.count()
        return npgettext(
            'Number of matching records in the dashboard '
            'image list',
            'Found %(counter)d matching attribute',
            'Found %(counter)d matching attributes',
            number=counter) % {
                'counter': counter
            }
コード例 #28
0
ファイル: filters.py プロジェクト: Gokulraam2257/erp-software
class ProductFilter(django_filters.FilterSet):

    # start_date = DateFilter(field_name="created_at",lookup_expr='gte')
    '''
    Date range filter
    # lookup_expr gives the result in which data is greater or equal to given date
    # gte=greater than equals--created_at is my models of Product
    '''

    # end_date = DateFilter(field_name="created_at",lookup_expr='lte')#lte=less than equals
    # name = django_filters.DateFilter(widget=DateInput(attrs={'class':'datepicker','placeholder':'Search for ...'}))

    name = CharFilter(field_name="name", lookup_expr='icontains')

    # --->icontains means igonring casesensitive
    #u--->sing this i can search even with single character

    class Meta:
        model = Product  #make filter for model Product

        fields = '__all__'  #generate filter form with all models
        exclude = ['created_at', 'description', 'category', 'price']
コード例 #29
0
ファイル: filters.py プロジェクト: surfedushare/search-portal
class CollectionFilter(filters.FilterSet):
    """
    Provides filtering functionality for collections requests
    """

    material_id = CharFilter(method="filter_by_material_id")

    @staticmethod
    def filter_by_material_id(qs, name, value):
        """
        Filters collections which contain material
        :param qs: queryset instance
        :param name: query parameter name
        :param value: query parameter value (external id of material)
        :return: updated queryset
        """

        return qs.filter(materials__external_id=value)

    class Meta:
        model = Collection
        fields = ('material_id', 'publish_status',)
コード例 #30
0
ファイル: filters.py プロジェクト: rajeshanjara/saleor
class OrderFilter(SortedFilterSet):
    id = NumberFilter(label=pgettext_lazy('Order list filter label', 'ID'))
    name_or_email = CharFilter(label=pgettext_lazy('Order list filter label',
                                                   'Customer name or email'),
                               method='filter_by_order_customer')
    created = DateFromToRangeFilter(label=pgettext_lazy(
        'Order list filter label', 'Placed on'),
                                    name='created',
                                    widget=DateRangeWidget)
    status = ChoiceFilter(label=pgettext_lazy('Order list filter label',
                                              'Order status'),
                          choices=OrderStatus.CHOICES,
                          empty_label=pgettext_lazy(
                              'Filter empty choice label', 'All'),
                          widget=forms.Select)
    payment_status = ChoiceFilter(
        label=pgettext_lazy('Order list filter label', 'Payment status'),
        name='payments__status',
        choices=PaymentStatus.CHOICES,
        empty_label=pgettext_lazy('Filter empty choice label', 'All'),
        widget=forms.Select)
    total_net = RangeFilter(label=pgettext_lazy('Order list filter label',
                                                'Total'),
                            widget=PriceRangeWidget)
    sort_by = OrderingFilter(label=pgettext_lazy('Order list filter label',
                                                 'Sort by'),
                             fields=SORT_BY_FIELDS,
                             field_labels=SORT_BY_FIELDS_LABELS)

    class Meta:
        model = Order
        fields = []

    def filter_by_order_customer(self, queryset, name, value):
        return queryset.filter(
            Q(user__email__icontains=value)
            | Q(user__default_billing_address__first_name__icontains=value)
            | Q(user__default_billing_address__last_name__icontains=value))