class ProcessFilter(FilterSet): status = ChoiceFilter(help_text='', choices=( (None, _('All')), (activation.STATUS.NEW, _('Active')), (activation.STATUS.CANCELED, _('Canceled')), (activation.STATUS.DONE, _('Completed')), )) created = DateRangeFilter(help_text='') finished = DateRangeFilter(help_text='')
class TaskFilter(django_filters.FilterSet): assigned_on = DateRangeFilter() completed_on = DateRangeFilter() class Meta: model = Task fields = [ 'assigned_on', 'completed_on', 'status', 'approved', ]
class CategoriesFilter(django_filters.FilterSet): # category = django_filters.ChoiceFilter(choices=INDUSTRY) date = DateRangeFilter() class Meta: model = JobRecruiter fields = ['industry', 'job_title', 'location', 'experience', 'date']
class DateRangeFilterSet(FilterSet): date_time = DateRangeFilter(field_name='date_time', lookup_expr=lookup_xpr) class Meta: model = DateRangeFilterModel fields = ['date_time']
class AttendanceFilter(django_filters.FilterSet): date=DateRangeFilter() class Meta: model = CustomerAttendance fields = ['date']
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']
class TaskFilter(FilterSet): flow_task = ChoiceFilter(help_text='') created = DateRangeFilter(help_text='') process = ModelChoiceFilter(queryset=models.Process.objects.all(), help_text='') def __init__(self, data=None, queryset=None, prefix=None, strict=None): super(TaskFilter, self).__init__(data=data, queryset=queryset, prefix=prefix, strict=strict) self.filters['process'].field.queryset = \ models.Process.objects.filter(id__in=queryset.values_list('process', flat=True)) def task_name(task_ref): flow_task = import_task_by_ref(task_ref) return "{}/{}".format(flow_task.flow_class.process_title, flow_task.name.title()) tasks = [ (task_ref, task_name(task_ref)) for task_ref in queryset.order_by( 'flow_task').distinct().values_list('flow_task', flat=True) ] self.filters['flow_task'].field.choices = [(None, 'All')] + tasks class Meta: fields = ['process', 'flow_task', 'created'] model = models.Task
class RateFilter(django_filters.FilterSet): date_range = DateRangeFilter(field_name='created') class Meta: model = Rate fields = ['source', 'currency']
class ViewJobFilter(django_filters.FilterSet): applied = django_filters.BooleanFilter() saved = django_filters.BooleanFilter() date = DateRangeFilter() class Meta: model = JobSeeker fields = ['applied', 'saved', 'date']
class RecordFilter(FilterSet): start_date = DateFilter(field_name='time', lookup_expr='gt') end_date = DateFilter(field_name='time', lookup_expr='lt') time_range = DateRangeFilter(field_name='time') class Meta: model = Record fields = ('time', )
class PropertyDateRangeFilterSet(PropertyFilterSet): date = DateRangeFilter(field_name='date', lookup_expr=lookup_xpr) prop_date = PropertyDateRangeFilter(field_name='prop_date', lookup_expr=lookup_xpr) class Meta: model = DateRangeFilterModel fields = ['prop_date']
class NewsFilter(django_filters.FilterSet): created_on = DateRangeFilter() class Meta: model = News fields = [ 'created_on', ]
class EventDateFilter(rest_framework.FilterSet): date_range = DateRangeFilter(field_name='date', label="Period") class Meta: model = Notification fields = [ 'date', ]
class CartFilter(FilterSet): start_date = DateFilter(field_name='created_on', lookup_expr=('gt'), label='Створено після') end_date = DateFilter(field_name='created_on', lookup_expr=('lt'), label='Створено до') date_range = DateRangeFilter(field_name='created_on')
class SaleFilter(FilterSet): start_date = DateFilter( field_name='date', lookup_expr=('gt'), ) end_date = DateFilter(field_name='date', lookup_expr=('lt')) date_range = DateRangeFilter(field_name='date') class Meta: model = Sale fields = []
class CartFilter(filters.FilterSet): start_date = DateFilter( field_name='updated_timestamp', lookup_expr=('gt'), ) end_date = DateFilter(field_name='updated_timestamp', lookup_expr=('lt')) date_range = DateRangeFilter(field_name='updated_timestamp') qty = filters.RangeFilter(field_name='qty') class Meta: model = Cart fields = ['id', 'user', 'catalog', 'updated_timestamp', 'qty']
class DailySiteFilter(FilterSet): start_date = DateFilter(field_name='Created', lookup_expr='gt', label='Date joined is after (yyyy/mm/dd/):') end_date = DateFilter(field_name='Created', lookup_expr='lt', label='Date joined is before (yyyy/mm/dd):') date_range = DateRangeFilter(field_name='Created') class Meta: model = DailySiteReading fields = ('Which_Site_reading', 'unit_consumption')
class ReviewFilter(django_filters.FilterSet): method = django_filters.ModelMultipleChoiceFilter( queryset=Method.objects.all(), widget=forms.CheckboxSelectMultiple) fish_caught = django_filters.ModelMultipleChoiceFilter( queryset=Fish.objects.all(), widget=forms.CheckboxSelectMultiple) fishing_date = DateRangeFilter() class Meta: model = Review fields = ['method', 'fish_caught', 'pound', 'fishing_date']
class FilmSessionFilter(django_filters.FilterSet): # field_name should be name of Model's field which is used for filter start_date = DateTimeFilter(field_name='time_from', lookup_expr='gt', label="From Datetime YY-MM-DD HH:MM") end_date = DateTimeFilter(field_name='time_from', lookup_expr='lt', label="To Datetime YY-MM-DD HH:MM") date_range = DateRangeFilter(field_name='time_from', label="Period") class Meta: model = FilmSession fields = ('hall', )
class UserFilter(django_filters.FilterSet): username = Filter(field_name='username', lookup_expr='icontains') admin = BooleanFilter(field_name='admin') active = BooleanFilter(field_name='active') staff = BooleanFilter(field_name='staff') timestamp = DateRangeFilter(field_name='timestamp', lookup_expr="gte", label="Bu Tarihten Sonraki") class Meta: model = User fields = ['username', 'admin', 'staff', 'active', 'timestamp'] exclude = ['username', 'admin', 'staff', 'active', 'timestamp']
class UserAuthActivityFilter(FilterSet): date = DateRangeFilter(label=_('Date')) ip = ChoiceFilter(label=_('IP'), required=False) class Meta: model = UserAuthActivity fields = ['date', 'ip'] def __init__(self, *args, **kwargs): super(UserAuthActivityFilter, self).__init__(*args, **kwargs) ip_list = self.queryset.distinct().values_list('ip', flat=1).order_by() self.filters['ip'].extra.update( {'choices': [('', '----')] + [(ip, ip) for ip in ip_list]})
class OrderFilter(filters.FilterSet): order_start_date = DateFilter( field_name='order_timestamp', lookup_expr=('gt'), ) order_end_date = DateFilter(field_name='order_timestamp', lookup_expr=('lt')) order_date_range = DateRangeFilter(field_name='order_timestamp') grand_total = filters.RangeFilter(field_name='grand_total') paid_start_date = DateFilter( field_name='paid_timestamp', lookup_expr=('gt'), ) paid_end_date = DateFilter(field_name='paid_timestamp', lookup_expr=('lt')) paid_date_range = DateRangeFilter(field_name='paid_timestamp') class Meta: model = Order fields = [ 'id', 'user', 'order_timestamp', 'grand_total', 'is_paid', 'paid_timestamp', 'payment_method', 'payment_ref' ]
class LeadIndiFilter(django_filters.FilterSet): start_date = DateFilter( label='Start Date', field_name='lead_timestamp', lookup_expr=('gt') ) end_date = DateFilter( label='End Date', field_name='lead_timestamp', lookup_expr=('lt')) date_range = DateRangeFilter( label='Date Range', field_name='lead_timestamp', widget=forms.Select(attrs={'class': 'form-control'})) class Meta: model = ObjectLead fields = ()
class ClickViewFilter(django_filters.FilterSet): start_date = DateFilter( label='Start Date', field_name='timestamp', lookup_expr=('gt'), widget=forms.widgets.DateInput( attrs={'type': 'date', 'class': 'form-control'}) ) end_date = DateFilter( label='End Date', field_name='timestamp', lookup_expr=('lt'), widget=forms.widgets.DateInput(attrs={'type': 'date', 'class': 'form-control'})) date_range = DateRangeFilter(label='Date Range', field_name='timestamp', widget=forms.Select( attrs={'class': 'form-control'}) ) class Meta: model = ObjectViewed fields = ()
class LeadFilter(django_filters.FilterSet): start_date = DateFilter( label='Start Date', field_name='lead_timestamp', lookup_expr=('gt'), widget=forms.widgets.DateInput( attrs={'type': 'date', 'class': 'form-control'}) ) end_date = DateFilter( label='End Date', field_name='lead_timestamp', lookup_expr=('lt'), widget=forms.widgets.DateInput(attrs={'type': 'date', 'class': 'form-control'})) date_range = DateRangeFilter( label='Date Range', field_name='lead_timestamp', widget=forms.Select(attrs={'class': 'form-control'})) class Meta: model = ObjectLead fields = ('campaign', 'publisher')
class CustomTransactionFilter(FilterSet): date_gte = DateFilter( field_name='transaction_date', lookup_expr=('gte')) date_gt = DateFilter(field_name='transaction_date', lookup_expr=('gt')) date_lt = DateFilter(field_name='transaction_date', lookup_expr=('lt')) date_lte = DateFilter( field_name='transaction_date', lookup_expr=('lte')) date_range = DateRangeFilter(field_name='transaction_date') class Meta: model = Transaction fields = { 'paid': ['exact'], 'category': ['exact'], 'account': ['exact'], }
class BudgetFilter(django_filters.FilterSet): order = [ ('ascending', 'Ascending'), ('descending', 'Descending'), ] dot = DateRangeFilter(label='Date') highbudget = ChoiceFilter(label='Budget Ordering', choices=order, method='filter_by_budget') class Meta: model = Budget fields = ['source', 'category'] def filter_by_budget(self, queryset, name, value): expression = 'budget' if value == 'ascending' else '-budget' return queryset.order_by(expression)
class ExpenseFilter(django_filters.FilterSet): order = [ ('ascending', 'Ascending'), ('descending', 'Descending'), ] dot = DateRangeFilter(label='Date') highexpense = ChoiceFilter(label='Expense Ordering', choices=order, method='filter_by_expense') class Meta: model = Expense fields = ['title', 'category', 'payment'] def filter_by_expense(self, queryset, name, value): expression = 'expense' if value == 'ascending' else '-expense' return queryset.order_by(expression)
class LetterFilter(UserKwargFilterSetMixin, FilterSet): created = DateRangeFilter(label=_("Creation date")) eml = BooleanFilter(label=_("Has eml?"), method=has_eml) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.filters["title"].lookup_expr = "icontains" self.filters["title"].label = _("Title") self.filters[ "record__case__institution"].field.widget = autocomplete.ModelSelect2( url="institutions:autocomplete") self.filters["record__case__institution"].label = _("Institution") if not self.user.has_perm("letters.can_filter_eml"): del self.filters["eml"] class Meta: model = Letter fields = ["title", "created", "record__case__institution"]
class PostFilter(django_filters.FilterSet): start_created_date = DateRangeFilter(field_name="created_date", lookup_expr="gte") #end_created_date = DateRangeFilter(field_name = "created_date", lookup_expr="lte") start_price = NumberFilter(field_name='price', lookup_expr="gte") end_price = NumberFilter(field_name='price', lookup_expr="lte") title = CharFilter(field_name='title', lookup_expr='icontains') il = CharFilter(field_name='il', lookup_expr='icontains') ilce = CharFilter(field_name='ilce', lookup_expr='icontains') mahalle = CharFilter(field_name='mahalle', lookup_expr='icontains') class Meta: model = Post fields = [ 'title', 'price', 'il', 'ilce', 'mahalle', 'mkare', 'created_date' ] exclude = [ 'created_date', 'price', 'mkare', 'title', 'il', 'ilce', 'mahalle' ]