Пример #1
0
class ProjectFilter(filters.FilterSet):
    create_date = DateFromToRangeFilter()
    update_date = DateFromToRangeFilter()

    class Meta:
        model = Project
        fields = [
            'pid', 'status', 'demand__name', 'action_user__username',
            'create_date', 'update_date'
        ]
Пример #2
0
class BaseTransectFilterSet(OrFilterSetMixin, GeoFilterSet):
    id = BaseInFilter(method="id_lookup")
    site_id = BaseInFilter(method="id_lookup")
    site_name = BaseInFilter(method="char_lookup")
    site_within = GeometryFilter(field_name="location", lookup_expr='within')
    country_id = BaseInFilter(method='id_lookup')
    country_name = BaseInFilter(method="char_lookup")
    sample_date = DateFromToRangeFilter()
    tag_id = BaseInFilter(field_name='tags', method='json_id_lookup')
    tag_name = BaseInFilter(field_name='tags', method='json_name_lookup')
    management_id = BaseInFilter(method="id_lookup")
    management_name = BaseInFilter(method="full_management_name")
    management_est_year = DateFromToRangeFilter()
    management_size = RangeFilter()
    management_party = BaseInFilter(field_name="management_parties",
                                    method="char_lookup")
    management_compliance = BaseInFilter(method="char_lookup")
    management_rule = BaseInFilter(field_name="management_rules",
                                   method="char_lookup")
    current_name = BaseInFilter(method="char_lookup")
    tide_name = BaseInFilter(method="char_lookup")
    visibility_name = BaseInFilter(method="char_lookup")

    class Meta:
        fields = [
            "site_id",
            "site_name",
            "site_within",
            "country_id",
            "country_name",
            "sample_date",
            "tag_id",
            "tag_name",
            "reef_type",
            "reef_zone",
            "reef_exposure",
            "management_id",
            "management_name",
            "management_est_year",
            "management_size",
            "management_party",
            "management_compliance",
            "management_rule",
            "current_name",
            "tide_name",
            "visibility_name",
        ]

    def full_management_name(self, queryset, name, value):
        fields = ["management_name", "management_name_secondary"]
        return self.str_or_lookup(queryset,
                                  fields,
                                  value,
                                  lookup_expr="icontains")
Пример #3
0
class ValuationFilter(django_filters.FilterSet):
    date = DateFromToRangeFilter(field_name='date_created')
    date_updated = DateFromToRangeFilter(field_name='last_update')

    def __init__(self, data=None, queryset=None, *, request=None, prefix=None):
        super(ValuationFilter, self).__init__(data=data, queryset=queryset, request=request, prefix=prefix)
        self.filters['client'].field.widget.attrs.update({'class': 'form-control'})
        self.filters['status'].field.widget.attrs.update({'class': 'form-control'})
        self.filters['message'].field.widget.attrs.update({'class': 'form-control'})
        self.filters['cost'].field.widget.attrs.update({'class': 'form-control'})

    class Meta:
        model = Valuation
        fields = ['client', 'status', 'message', 'cost']
Пример #4
0
class OpsProjectFilter(filters.FilterSet):
    create_date = DateFromToRangeFilter()
    update_date = DateFromToRangeFilter()
    status = CharFilter(method='status_custom_filter')

    def status_custom_filter(self, queryset, name, value):
        queryset_list = []
        for s in value.split(','):
            queryset_list += queryset.filter(status=s)
        return queryset_list

    class Meta:
        model = OpsProject
        fields = ['pid', 'status', 'demand__id', 'create_date', 'update_date']
Пример #5
0
class InvoiceFilter(FilterSet):
    status = MultipleChoiceFilter(
        choices=INVOICE_STATUS,
        widget=CheckboxSelectMultiple(attrs={'class': 'list-unstyled'}),
        label=_('Status'),
    )
    invoice_date = DateFromToRangeFilter(label=_('Invoice Date'))
    invoice_due_date = DateFromToRangeFilter(label=_('Due Date'))

    total_amount = RangeFilter(widget=NumericRangeWidget(),
                               label=_('Total Amount'))
    taxpayer__business_name = CharFilter(
        lookup_expr='icontains',
        widget=TextInput(attrs={
            'class': 'form-control',
            "list": "taxpayers",
        }),
        label=_('Organization'),
    )

    taxpayer__country = CharFilter(
        widget=Select(choices=[('AR', 'AR'), ('BR', 'BR'), ('US', 'US')],
                      attrs={'class': 'custom-select'}),
        label=_('Country'),
    )

    new_comment_from_ap = MultipleChoiceFilter(
        choices=INVOICE_SHOW_ONLY_NEW_MESSAGES,
        widget=CheckboxSelectMultiple(attrs={'class': 'list-unstyled'}),
        label=_('Messages'),
    )

    new_comment_from_supplier = MultipleChoiceFilter(
        choices=INVOICE_SHOW_ONLY_NEW_MESSAGES,
        widget=CheckboxSelectMultiple(attrs={'class': 'list-unstyled'}),
        label=_('Messages'),
    )

    class Meta:
        model = Invoice
        fields = ('new_comment_from_ap', 'new_comment_from_supplier',
                  'invoice_date', 'invoice_due_date', 'status', 'total_amount',
                  'taxpayer__business_name', 'taxpayer__country')

    def get_form_class(self):
        form = super(FilterSet, self).get_form_class()
        form.base_fields['invoice_date'].widget = DateRangeWidget()
        form.base_fields['invoice_due_date'].widget = DateRangeWidget()
        return form
Пример #6
0
class ProjectFilter(django_filters.FilterSet):
    date = DateFromToRangeFilter(field_name='date_created')
    date_updated = DateFromToRangeFilter(field_name='update_date')

    def __init__(self, data=None, queryset=None, *, request=None, prefix=None):
        super(ProjectFilter, self).__init__(data=data, queryset=queryset, request=request, prefix=prefix)
        self.filters['client'].field.widget.attrs.update({'class': 'form-control'})
        self.filters['status'].field.widget.attrs.update({'class': 'form-control'})
        self.filters['employees'].field.widget.attrs.update({'class': 'custom-select'})
        self.filters['status_advance'].field.widget.attrs.update({'class': 'form-control'})

    class Meta:
        model = Project
        fields = '__all__'
        exclude = ['description', 'date_created', 'update_date']
Пример #7
0
class SnippetFilter(FilterSet):
    created_at = DateFromToRangeFilter(widget=RangeWidget(
        attrs={'type': 'date'}))

    class Meta:
        model = Snippet
        fields = ['created_at']
Пример #8
0
class OrderFilter(SortedFilterSet):
    id = NumberFilter(
        label=pgettext_lazy('Order list filter label', 'ID'))
    name_or_email = CharFilter(
        label=pgettext_lazy(
            'Order list filter label', '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)
    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))
Пример #9
0
class MealFilter(django_filters.FilterSet):
    meal_time = TimeRangeFilter('meal_time')
    meal_date = DateFromToRangeFilter('meal_date')

    class Meta:
        model = Meal
        fields = ['meal_time', 'meal_date']
Пример #10
0
class ItemRangeFilter(FilterSet):
    rate = RangeFilter()
    date = DateFromToRangeFilter()

    class Meta:
        model = Item
        fields = ['rate', 'no', 'user', 'date']
Пример #11
0
class AccountFilter(filters.FilterSet):
    transaction__create_at = DateFromToRangeFilter()

    class Meta:
        model = Account
        distinct = True
        fields = ['user__username', 'transaction__create_at']
Пример #12
0
class AllFiltersFilterSet(FilterSet):
    number_AllValuesFilter = AllValuesFilter(field_name='number', lookup_expr='exact')
    number_AllValuesMultipleFilter_OR = AllValuesMultipleFilter(field_name='number', lookup_expr='exact', conjoined=False)  # OR
    number_AllValuesMultipleFilter_AND = AllValuesMultipleFilter(field_name='number', lookup_expr='exact', conjoined=True)  # AND
    number_BaseCSVFilterNumber = BaseCSVFilterNumber(field_name='number', lookup_expr='in')
    number_BaseInFilterNumber = BaseInFilterNumber(field_name='number', lookup_expr='in')
    number_BaseRangeFilterNumber = BaseRangeFilterNumber(field_name='number', lookup_expr='range')
    is_true_BooleanFilter = BooleanFilter(field_name='is_true', lookup_expr='exact')
    text_CharFilter = CharFilter(field_name='text', lookup_expr='exact')
    number_ChoiceFilter = ChoiceFilter(field_name='number', lookup_expr='exact', choices=NUMBER_CHOICES)
    date_DateFilter = DateFilter(field_name='date', lookup_expr='exact')
    date_DateFromToRangeFilter = DateFromToRangeFilter(field_name='date', lookup_expr='range')
    date_DateRangeFilter = DateRangeFilter(field_name='date', lookup_expr='exact')
    date_time_DateTimeFilter = DateTimeFilter(field_name='date_time', lookup_expr='exact')
    date_time_DateTimeFromToRangeFilter = DateTimeFromToRangeFilter(field_name='date_time', lookup_expr='range')
    duration_DurationFilter = DurationFilter(field_name='duration', lookup_expr='exact')
    iso_date_time_IsoDateTimeFilter = IsoDateTimeFilter(field_name='iso_date_time', lookup_expr='lt')
    iso_date_time_IsoDateTimeFromToRangeFilter = IsoDateTimeFromToRangeFilter(field_name='iso_date_time', lookup_expr='range')
    number_MultipleChoiceFilter_OR = MultipleChoiceFilter(field_name='number', lookup_expr='exact', conjoined=False, choices=NUMBER_CHOICES)
    number_MultipleChoiceFilter_AND = MultipleChoiceFilter(field_name='number', lookup_expr='exact', conjoined=True, choices=NUMBER_CHOICES)
    number_NumberFilter = NumberFilter(field_name='number', lookup_expr='exact')
    number_OrderingFilter = OrderingFilter(fields=('number', 'number'))
    number_RangeFilter = RangeFilter(field_name='number', lookup_expr='range')
    time_TimeFilter = TimeFilter(field_name='time', lookup_expr='exact')
    time_TimeRangeFilter = TimeRangeFilter(field_name='time', lookup_expr='range')
    number_TypedChoiceFilter = TypedChoiceFilter(field_name='number', lookup_expr='exact', choices=NUMBER_CHOICES)
    text_TypedMultipleChoiceFilter_OR = TypedMultipleChoiceFilter(field_name='number', lookup_expr='exact', conjoined=False, choices=NUMBER_CHOICES)
    text_TypedMultipleChoiceFilter_AND = TypedMultipleChoiceFilter(field_name='number', lookup_expr='exact', conjoined=True, choices=NUMBER_CHOICES)
    uuid_UUIDFilter = UUIDFilter(field_name='uuid', lookup_expr='exact')
    number_LookupChoiceFilter = LookupChoiceFilter(field_name='number')

    class Meta:
        model = BenchmarkModel
        exclude = ['number', 'text', 'is_true', 'date', 'date_time', 'duration']
Пример #13
0
class AnalysisInformationFilter(filters.FilterSet):
    """"
    https://django-filter.readthedocs.io/en/latest/guide/usage.html
    DateFromToRangeFiler() :it uses datetime format values instead of numerical values.
    It can be used with DateTimeField.
    """
    analysis_run__last_updated = DateFromToRangeFilter(
        method='filter_analysis_run__last_updated')

    def filter_analysis_run__last_updated(self, queryset, name, value):
        if value.start:
            queryset = queryset.filter(
                analysis_run__last_updated__gte=value.start)

        if value.stop:
            queryset = queryset.filter(
                analysis_run__last_updated__lte=value.stop)

        return queryset

    # jira_tickets = ListFilter(name='analysis_jira_ticket')

    class Meta:
        model = DlpAnalysisInformation
        fields = [
            'id', 'aligner', 'montage_status', 'version',
            'analysis_jira_ticket', 'analysis_submission_date',
            'analysis_run__run_status', 'analysis_run__last_updated',
            'library__pool_id', 'reference_genome'
        ]
Пример #14
0
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 = []
Пример #15
0
class LogFilter(FilterSet):

    datetoday = datetime.datetime.today().strftime("%Y-%m-%d")
    starttime = DateFromToRangeFilter(
        widget=django_filters.widgets.RangeWidget(attrs={
            'placeholder': datetoday,
            'class': 'form-control',
        }),
        label='Search Dates')

    class Meta():

        model = LogEntry
        fields = {
            'starttime': ['exact'],
            'project': ['exact'],
            'worker': ['exact'],
            'loggedjob': ['contains'],
        }

# if staff status render worker field ?

    @property
    def totaltimespent(self):
        qs = super().qs
        return qs.aggregate(Sum('jobtime'))['jobtime__sum']

    @property
    def totalcost(self):
        qs = super().qs
        cost = qs.aggregate(Sum('cost'))['cost__sum']
        if cost is not None:
            return format(round(cost, 2))
Пример #16
0
class ConsultationFilter(django_filters.FilterSet):
    CSS_CLASS_CHOICES = (
        ('', _('')),
        ('event-success', _('Low')),
        ('event-warning', _('Medium')),
        ('event-important', _('High')),
    )
    title = django_filters.CharFilter(name='title', lookup_expr='icontains')
    priority = django_filters.ChoiceFilter(name='css_class',
                                           choices=CSS_CLASS_CHOICES)
    start = DateFromToRangeFilter(widget=RangeWidget(
        attrs={'placeholder': 'DD/MM/YYYY'}))
    zID = django_filters.ModelChoiceFilter(queryset=student.objects.all())

    class Meta:
        model = CalendarEvent
        fields = ['title']

        dateTimeOptions = {
            'daysOfWeekDisabled': [0, 6],
            'format': 'dd/mm/yyyy HH:ii P',
            'hoursDisabled': [0, 9],
        }

        widgets = {
            #Use localization and bootstrap 3
            'start':
            DateTimeWidget(attrs={'id': "yourdatetimeid"},
                           usel10n=True,
                           bootstrap_version=3,
                           options=dateTimeOptions),
        }
Пример #17
0
class ComplaintFilter(SortedFilterSet):
    id = NumberFilter(
        label=pgettext_lazy('Order list filter label', 'ID'))
    name_or_email = CharFilter(
        label=pgettext_lazy(
            'Order list filter label', 'Customer name'),
        method='filter_by_order_customer')
    created = DateFromToRangeFilter(
        label=pgettext_lazy('Order list filter label', 'Placed on'),
        name='created', widget=DateRangeWidget)

    class Meta:
        model = OrderComplaint
        fields = []

    def filter_by_order_customer(self, queryset, name, value):
        return queryset.filter(
            Q(order__user__email__icontains=value) |
            Q(order__user__default_billing_address__first_name__icontains=value) |
            Q(order__user__default_billing_address__last_name__icontains=value))

    def get_summary_message(self):
        counter = self.qs.count()
        return npgettext(
            'Number of matching records in the dashboard orders list',
            'Found %(counter)d matching order',
            'Found %(counter)d matching orders',
            number=counter) % {'counter': counter}
Пример #18
0
class BaseSEFilterSet(AggregatedViewFilterSet):
    id = BaseInFilter(method="id_lookup")
    sample_event_id = BaseInFilter(method="id_lookup")
    sample_date = DateFromToRangeFilter()
    management_est_year = RangeFilter()
    management_size = RangeFilter()
    management_party = BaseInFilter(
        field_name="management_parties", method="char_lookup"
    )
    management_compliance = BaseInFilter(method="char_lookup")
    management_rule = BaseInFilter(field_name="management_rules", method="char_lookup")
    current_name = BaseInFilter(method="char_lookup")
    tide_name = BaseInFilter(method="char_lookup")
    visibility_name = BaseInFilter(method="char_lookup")

    class Meta:
        fields = [
            "sample_event_id",
            "sample_date",
            "management_est_year",
            "management_size",
            "management_party",
            "management_compliance",
            "management_rule",
            "current_name",
            "tide_name",
            "visibility_name",
        ]
Пример #19
0
class ProductRatingFilter(SortedFilterSet):
    updated_at = DateFromToRangeFilter(
        label=pgettext_lazy('Product rating list filter label', 'Updated At'),
        name='updated_at',
        widget=widgets.RangeWidget(attrs={'class': 'datepicker'}))
    value = RangeFilter(label=pgettext_lazy('Product rating list filter label',
                                            'Average Ratings'),
                        name='value')
    sort_by = OrderingFilter(label=pgettext_lazy(
        'Product rating list filter label', 'Sort by'),
                             fields=PRODUCT_RATING_SORT_BY_FIELDS.keys(),
                             field_labels=PRODUCT_RATING_SORT_BY_FIELDS)

    class Meta:
        model = ProductRating
        fields = ['user_id']

    def get_summary_message(self):
        counter = self.qs.count()
        return npgettext(
            'Number of matching records in the dashboard product rating list',
            'Found %(counter)d matching product rating',
            'Found %(counter)d matching product rating',
            number=counter) % {
                'counter': counter
            }
Пример #20
0
class CommentsDateFilter(FilterSet):
    date = DateFromToRangeFilter(required=True, lookup_expr='range', field_name='comments__created',
                                 error_messages={'required': 'Required date_after and date_before filters'})

    class Meta:
        model = Movie
        fields = ['comments__created']
Пример #21
0
class AlarmeringFilter(FilterSet):
    datum = DateFromToRangeFilter()

    class Meta:
        model = Alarmering
        fields = ['regio', 'dienst', 'capcodes', 'prio1', 'brandinfo',
                     'plaats', 'datum']
    class DateFromToRangeFilterSet(FilterSet):
        date_time = DateFromToRangeFilter(field_name='date_time',
                                          lookup_expr=lookup_xpr)

        class Meta:
            model = DateFromToRangeFilterModel
            fields = ['date_time']
Пример #23
0
class VoucherFilter(SortedFilterSet):
    name = CharFilter(
        label=pgettext_lazy('Voucher list name filter label', 'Name'),
        lookup_expr='icontains')
    type = ChoiceFilter(
        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(
            'Order list sorting filter label', 'Period of validity'),
        name='created', widget=DateRangeWidget, method=filter_by_date_range)
    limit = RangeFilter(
        label=pgettext_lazy('Voucher list sorting filter', 'Limit'),
        name='limit')
    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 = []
Пример #24
0
class BillRangeFilter(FilterSet):
    amount = RangeFilter()
    date = DateFromToRangeFilter()
    items_id = CharFilter(lookup_expr='icontains', distinct=True)

    class Meta:
        model = Bill
        fields = ['amount', 'user', 'items_id', 'date']
Пример #25
0
class UserFilterSet(FilterSet):
    date_joined_range = DateFromToRangeFilter(field_name='date_joined')
    date_joined = DateFilter()

    class Meta:
        model = get_user_model()
        fields = ['email', 'last_name', 'first_name',
                  'date_joined', 'date_joined_range']
Пример #26
0
class ExpenseFilter(FilterSet):
    date_range = DateFromToRangeFilter(field_name='pub_date',
                                       widget=RangeWidget())

    class Meta:
        model = Expense
        fields = '__all__'
        exclude = ('user', 'pub_date')
    class PropertyDateFromToRangeFilterSet(PropertyFilterSet):
        date = DateFromToRangeFilter(field_name='date', lookup_expr=lookup_xpr)
        prop_date = PropertyDateFromToRangeFilter(field_name='prop_date',
                                                  lookup_expr=lookup_xpr)

        class Meta:
            model = DateFromToRangeFilterModel
            fields = ['prop_date']
Пример #28
0
class JogFilter(filters.FilterSet):
    """
    Simple date range filter for jog entries.
    """
    date = DateFromToRangeFilter()

    class Meta:
        model = Jog
        fields = ('date', )
Пример #29
0
class RecordFilter(FilterSet):
    date = DateFromToRangeFilter(
        label='対象期間', widget=RangeWidget(attrs={'placeholder': 'YYYY-MM-DD'}))
    time = TimeRangeFilter(label='対象時間',
                           widget=RangeWidget(attrs={'placeholder': 'hh:mm'}))

    class Meta:
        model = Record
        fields = ['sns', 'date', 'time']
Пример #30
0
class AdvertisementFilter(filters.FilterSet):
    """Фильтры для объявлений."""
    created_at = DateFromToRangeFilter()

    class Meta:
        model = Advertisement
        fields = [
            'status',
            'created_at',
        ]