class AnnotationMapGlobalFilter(filters.FilterSet): hazard__id = filters.CharFilter(name='hazard') title__startswith = filters.CharFilter(name='title', lookup_expr='istartswith') title__endswith = filters.CharFilter(name='title', lookup_expr='iendswith') title__contains = filters.CharFilter(name='title', lookup_expr='icontains') created_at__gt = filters.IsoDateTimeFilter(name='created_at', lookup_expr='gte') created_at__lt = filters.IsoDateTimeFilter(name='created_at', lookup_expr='lte') created_at__gt.field_class.input_formats +=\ settings.DATETIME_INPUT_FORMATS created_at__lt.field_class.input_formats +=\ settings.DATETIME_INPUT_FORMATS class Meta: model = AnnotationMapGlobal fields = ( 'created_at', 'title', 'title__startswith', 'title__endswith', 'hazard__id', 'created_at__gt', 'created_at__lt', )
class RecordFilter(filters.FilterSet): date_start__gte = filters.IsoDateTimeFilter(field_name='date_start', lookup_expr='gte') date_end__lte = filters.IsoDateTimeFilter(field_name='date_end', lookup_expr='lte') service_type = filters.ChoiceFilter(field_name='service_type', choices=SERVICE_CHOICES, method='filter_service_type') def filter_service_type(self, queryset, name, value): service_queryset = queryset.none() if value == 'Procedure': service_queryset = Procedure.objects.all() elif value == 'Event': service_queryset = Event.objects.all() elif value == 'Survey': service_queryset = Survey.objects.all() elif value == 'Speciality': service_queryset = Speciality.objects.all() service_id_list = service_queryset.values_list('service__id', flat=True) record_services = RecordService.objects.filter( service__id__in=service_id_list) record_id_list = record_services.values_list('record__id', flat=True) return queryset.filter(id__in=record_id_list) class Meta: model = Record fields = [ 'date_start', 'date_end', 'service_type', ]
class DriverFilter(filters.FilterSet): id = filters.NumberFilter(name="id", label="ID", lookup_expr="exact") id_range = filters.RangeFilter(name="id", label="ID Between") name = filters.CharFilter(name="name", label="Broker name", lookup_expr='icontains') name_null = filters.BooleanFilter(name="name", label="Is Name Null", lookup_expr="isnull") address = filters.CharFilter(name="address__line1", label="Broker address", lookup_expr='icontains') address_null = filters.BooleanFilter(name="address", label="Is Address Null", lookup_expr="isnull") phone = filters.CharFilter(name="phone", label="phone", lookup_expr="exact") phone_null = filters.BooleanFilter(name="phone", label="Is Phone Null", lookup_expr="isnull") alt_phone = filters.CharFilter(name="alt_phone", label="alt_phone", lookup_expr="exact") alt_phone_null = filters.BooleanFilter(name="alt_phone", label="Is alt_phone Null", lookup_expr="isnull") driving_licence_number = filters.CharFilter(name="driving_licence_number", label="driving_licence_number", lookup_expr='icontains') driving_licence_number_null = filters.BooleanFilter(name="driving_licence_number", label="Is driving_licence_number Null", lookup_expr="isnull") driving_licence_location = filters.CharFilter(name="driving_licence_location", label="driving_licence_location", lookup_expr='icontains') driving_licence_location_null = filters.BooleanFilter(name="driving_licence_location", label="Is driving_licence_location Null", lookup_expr="isnull") driving_licence_validity = filters.IsoDateTimeFilter(name="driving_licence_validity", label="driving_licence_validity") driving_licence_validity_between = filters.DateTimeFromToRangeFilter(name="driving_licence_validity", label="driving_licence_validity Between") service_tax_number = filters.CharFilter(name="taxation_id__service_tax_number", label="Service Tax Number", lookup_expr='exact') taxation_id_null = filters.BooleanFilter(name="taxation_id", label="Is Taxation Details Null", lookup_expr="isnull") account_details_null = filters.BooleanFilter(name="account_details", label="Is Account Details Null", lookup_expr="isnull") account_number = filters.CharFilter(name="account_details__account_number", label="Account Number", lookup_expr='exact') bank_name = filters.CharFilter(name="account_details__bank", label="Bank Name", lookup_expr='icontains') ifsc = filters.CharFilter(name="account_details__ifsc", label="IFSC Code", lookup_expr='icontains') route = filters.CharFilter(name="route", label="Route", lookup_expr='icontains') route_null = filters.BooleanFilter(name="route", label="Is Route Null", lookup_expr="isnull") priority_level = filters.CharFilter(name="priority_level", label="priority_level", lookup_expr='icontains') priority_level_null = filters.BooleanFilter(name="priority_level", label="Is priority_level Null", lookup_expr="isnull") id_proof = filters.CharFilter(name="id_proof", label="ID Proof", lookup_expr='icontains') id_proof_null = filters.BooleanFilter(name="id_proof", label="Is ID Proof Null", lookup_expr="isnull") created_on = filters.IsoDateTimeFilter(name="created_on", label="Created on") created_between = filters.DateTimeFromToRangeFilter(name="created_on", label="Created Between") class Meta: model = Driver fields = []
class MonthlyFilter(filters.FilterSet): start__gte = filters.IsoDateTimeFilter(field_name="start", lookup_expr="gte") start__lt = filters.IsoDateTimeFilter(field_name="start", lookup_expr="lt") class Meta: model = Event fields = ["start"]
class AppointmentFilterByPatient(filters.FilterSet): start_date = filters.IsoDateTimeFilter(field_name="date", lookup_expr='gte') end_date = filters.IsoDateTimeFilter(field_name="date", lookup_expr='lte') class Meta: model = Appointment fields = ['patient', 'type']
class BookingFilter(filters.FilterSet): bookable = filters.CharFilter(field_name='bookable__id_str') before = filters.IsoDateTimeFilter(field_name='start', lookup_expr='lte') after = filters.IsoDateTimeFilter(field_name='end', lookup_expr='gte') class Meta: model = Booking fields = ['bookable', 'before', 'after']
class IncomeFilter(filters.FilterSet): min_date = filters.IsoDateTimeFilter(field_name="timestamp", lookup_expr='gte') max_date = filters.IsoDateTimeFilter(field_name="timestamp", lookup_expr='lte') class Meta: model = Income fields = ['user', 'category', 'min_date', 'max_date']
class HookLogFilter(filters.FilterSet): start = filters.IsoDateTimeFilter(field_name='date_modified', lookup_expr='gte') end = filters.IsoDateTimeFilter(field_name='date_modified', lookup_expr='lt') class Meta: model = HookLog fields = ['status', 'start', 'end']
class RouteTelemetryFilter(filters.filterset.FilterSet): after = filters.IsoDateTimeFilter(field_name="timestamp", lookup_expr='gte') before = filters.IsoDateTimeFilter(field_name="timestamp", lookup_expr='lte') class Meta: model = RouteTelemetryData fields = TELEMETRY_FILTER_FIELDS
class TransactionFilter(filters.FilterSet): min_date = filters.IsoDateTimeFilter(field_name='transaction_date', lookup_expr='gte') max_date = filters.IsoDateTimeFilter(field_name='transaction_date', lookup_expr='lte') class Meta: model = Transaction fields = ['transaction_date', 'min_date', 'max_date']
class PostFilters(filters.FilterSet): published_after = filters.IsoDateTimeFilter(field_name="published_on", lookup_expr="gte") published_before = filters.IsoDateTimeFilter(field_name="published_on", lookup_expr="lte") tagged = NumberInFilter(field_name='tags__id', lookup_expr='in') class Meta: model = Post fields = ('published_after', 'published_before', 'tagged')
class HouseFilter(filters.FilterSet): start = filters.IsoDateTimeFilter(field_name="date_of_transfer", lookup_expr='gte') end = filters.IsoDateTimeFilter(field_name="date_of_transfer", lookup_expr='lte') class Meta: model = House fields = { 'transaction_identifier': ['iexact'], }
class PersonsPageRankFilter(filters.FilterSet): siteID = filters.NumberFilter(name='pageID__siteID__id') personID = filters.NumberFilter(name='personID__id') pageID = filters.NumberFilter(name='pageID__id') _from = filters.IsoDateTimeFilter(name='pageID__foundDateTime', lookup_expr='gte') _till = filters.IsoDateTimeFilter(name='pageID__lastScanDate', lookup_expr='lte') class Meta: model = PersonsPageRank fields = ['siteID', 'personID', 'pageID', 'rank', '_from', '_till']
class ApplicationFilter(filters.FilterSet): last_accessed_before = filters.IsoDateTimeFilter("date_last_accessed", lookup_expr="lt") last_accessed_after = filters.IsoDateTimeFilter("date_last_accessed", lookup_expr="gt") class Meta: model = NannyApplication fields = [ "application_id", "application_status", "last_accessed_before", "last_accessed_after" ]
class TimeFieldFilter(ChildFieldFilter): date = filters.IsoDateTimeFilter(field_name="time", label="DateTime") date_max = filters.IsoDateTimeFilter( field_name="time", label="Max. DateTime", lookup_expr="lte" ) date_min = filters.IsoDateTimeFilter( field_name="time", label="Min. DateTime", lookup_expr="gte" ) class Meta: abstract = True fields = sorted(ChildFieldFilter.Meta.fields + ["date", "date_max", "date_min"])
class RecordFilter(filters.FilterSet): since = filters.IsoDateTimeFilter( name='end_at', lookup_expr='gte', ) until = filters.IsoDateTimeFilter( name='start_at', lookup_expr='lte', ) class Meta: model = Record fields = ['since', 'until']
class AnnouncementFilter(filters.FilterSet): min_price = filters.NumberFilter(name="price", lookup_expr='gte') max_price = filters.NumberFilter(name="price", lookup_expr='lte') title = filters.CharFilter(lookup_expr='icontains') description = filters.CharFilter(lookup_expr='icontains') professional = filters.CharFilter(name='professional__user__username', lookup_expr='icontains') professional_first_name = filters.CharFilter(name='professional__user__first_name', lookup_expr='icontains') professional_last_name = filters.CharFilter(name='professional__user__last_name', lookup_expr='icontains') professional_id = filters.NumberFilter(name='professional__id') job = filters.CharFilter(name='job_tags__job__job_sub_type', lookup_expr='icontains') tags = filters.CharFilter(method='tags_filter') search = filters.CharFilter(method='search_filter') min_publish_date = filters.IsoDateTimeFilter(name="publish_date",lookup_expr='gte') max_publish_date = filters.IsoDateTimeFilter(name="publish_date",lookup_expr='lte') min_rating = filters.NumberFilter(method='min_rating_filter') min_review_count = filters.NumberFilter(method='min_review_count_filter') class Meta: model = Announcement fields = ['id', 'title', 'description', 'max_price', 'min_price', 'job','tags', 'professional', 'professional_id', 'professional_first_name', 'professional_last_name', 'location', 'search','min_publish_date', 'max_publish_date', 'min_rating' , 'visible'] def search_filter(self, queryset, name, value): if value: queryset = queryset.filter( title__icontains=value, ) | queryset.filter( description__icontains=value, ) | queryset.filter( professional__user__first_name__icontains=value, ) | queryset.filter( professional__user__last_name__icontains=value, ) | queryset.filter( professional__user__email__icontains=value, ) | queryset.filter( job_tags__job__job_sub_type__icontains=value, ) return queryset.distinct() def min_rating_filter(self, queryset, name, value): if value: queryset = queryset.annotate(average_rating = Avg('service__review__rating')).filter(average_rating__gte=value) return queryset def min_review_count_filter(self, queryset, name, value): if value: queryset = queryset.annotate(review_count = Count('service__review__rating')).filter(review_count__gte=value) return queryset def tags_filter(self, queryset, name, value): if value: value_list = [val.strip() for val in value.split(',')] for val in value_list: queryset = queryset.filter(job_tags__job__id=val) return queryset
class RecordFilter(filters.FilterSet): min_date_captured = filters.IsoDateTimeFilter(field_name="date_captured", lookup_expr='gte') max_date_captured = filters.IsoDateTimeFilter(field_name="date_captured", lookup_expr='lte') min_date_received = filters.IsoDateTimeFilter(field_name="date_received", lookup_expr='gte') max_date_received = filters.IsoDateTimeFilter(field_name="date_received", lookup_expr='lte') min_temperature = filters.NumberFilter(field_name="temperature", lookup_expr='gte') max_temperature = filters.NumberFilter(field_name="temperature", lookup_expr='lte') min_vibration = filters.NumberFilter(field_name="vibration", lookup_expr='gte') max_vibration = filters.NumberFilter(field_name="vibration", lookup_expr='lte') min_power = filters.NumberFilter(field_name="power", lookup_expr='gte') max_power = filters.NumberFilter(field_name="power", lookup_expr='lte') min_system_load = filters.NumberFilter(field_name="system_load", lookup_expr='gte') max_system_load = filters.NumberFilter(field_name="system_load", lookup_expr='lte') min_work_time = filters.NumberFilter(field_name="work_time", lookup_expr='gte') max_work_time = filters.NumberFilter(field_name="work_time", lookup_expr='lte') class Meta: model = MachineRecord fields = [ 'machine_id', 'date_captured', 'min_date_captured', 'max_date_captured', 'date_received', 'min_date_received', 'max_date_received', 'min_temperature', 'max_temperature', 'min_vibration', 'max_vibration', 'min_power', 'max_power', 'min_system_load', 'max_system_load', 'min_work_time', 'max_work_time', ]
class MessageFilter(filters.FilterSet): created_after = filters.IsoDateTimeFilter(field_name='created_at', lookup_expr='gt') created_before = filters.IsoDateTimeFilter(field_name='created_at', lookup_expr='lt') ordering = filters.OrderingFilter(fields=[ ('author__name', 'author'), ('created_at', 'created_at'), ]) class Meta: model = Message fields = ['id', 'created_after', 'created_before', 'ordering']
class CityFilter(filters.FilterSet): id = filters.NumberFilter(name="id", label="ID", lookup_expr="exact") id_range = filters.RangeFilter(name="id", label="ID Between") name = filters.CharFilter(name="name", label="City Name", lookup_expr='icontains') name_null = filters.BooleanFilter(name="name", label="Is City Null", lookup_expr="isnull") code = filters.CharFilter(name="code", label="City Code", lookup_expr='icontains') code_null = filters.BooleanFilter(name="code", label="Is City Null", lookup_expr="isnull") state_name = filters.CharFilter(name="state__name", label="State Name", lookup_expr='icontains') state_name_null = filters.BooleanFilter(name="state", label="Is State Null", lookup_expr="isnull") created_on = filters.IsoDateTimeFilter(name="created_on", label="Created on") created_between = filters.DateTimeFromToRangeFilter( name="created_on", label="Created Between") class Meta: model = City fields = []
class BrokerAccountFilter(filters.FilterSet): id = filters.NumberFilter(name="id", label="ID", lookup_expr="exact") id_range = filters.RangeFilter(name="id", label="ID Between") broker = filters.CharFilter(name="broker__name__username", label="Broker name", lookup_expr='icontains') relation = filters.ChoiceFilter(choices=ACCOUNT_RELATION_CHOICES, label="Account Relation Choices") account_null = filters.BooleanFilter(name="account", label="Is Account Null", lookup_expr="isnull") account_number = filters.CharFilter(name="account__acount_number", label="Account Number", lookup_expr='exact') bank_name = filters.CharFilter(name="account__bank", label="Bank Name", lookup_expr='icontains') ifsc = filters.CharFilter(name="account__ifsc", label="IFSC Code", lookup_expr='icontains') created_on = filters.IsoDateTimeFilter(name="created_on", label="Created on") created_between = filters.DateTimeFromToRangeFilter( name="created_on", label="Created Between") class Meta: model = BrokerAccount fields = []
class CommentsFilter(filters.FilterSet): """ Commentaries endpoint's filters """ created_at__gte = filters.IsoDateTimeFilter(name='created_at', lookup_expr="gte") created_at__lt = filters.IsoDateTimeFilter(name='created_at', lookup_expr="lt") ordering = filters.OrderingFilter( fields=( ('created_at', 'created_at') ) ) class Meta: model = Comment fields = ('user', 'content_type', 'object_id', 'parent')
class PhotoFilter(filters.FilterSet): albums = filters.CharFilter(lookup_expr='contains') date = filters.IsoDateTimeFilter() class Meta: model = Photo fields = ["original_filename", "albums", "date"]
class MessageFilter(filters.FilterSet): created_timestamp = filters.IsoDateTimeFilter(field_name='created', lookup_expr='gt') class Meta: model = Message fields = ['created_timestamp']
class EnkelvoudigInformatieObjectDetailFilter(FilterSet): versie = filters.NumberFilter(field_name='versie') registratie_op = filters.IsoDateTimeFilter( field_name='begin_registratie', lookup_expr='lte', label='begin_registratie', )
class EventFilterSet(filters.FilterSet): created_at__gt = filters.IsoDateTimeFilter(name='created_at', lookup_expr='gt') class Meta: model = Event fields = ('created_at__gt', )
class AahoOfficeFilter(filters.FilterSet): id = filters.NumberFilter(name="id", label="ID", lookup_expr="exact") id_range = filters.RangeFilter(name="id", label="ID Between") branch_name = filters.CharFilter(name="branch_name", label="Aaho Office Name", lookup_expr='icontains') branch_name_null = filters.BooleanFilter(name="branch_name", label="Is Aaho Office Name Null", lookup_expr="isnull") branch = filters.CharFilter(name="branch__name", label="Aaho Office Branch", lookup_expr='icontains') branch_null = filters.BooleanFilter(name="branch", label="Is Aaho Office Branch Null", lookup_expr="isnull") address = filters.CharFilter(name="address", label="Aaho Office Address Name", lookup_expr='icontains') address_null = filters.BooleanFilter( name="address", label="Is Aaho Office Address Name Null", lookup_expr="isnull") created_on = filters.IsoDateTimeFilter(name="created_on", label="Created on") created_between = filters.DateTimeFromToRangeFilter( name="created_on", label="Created Between") class Meta: model = AahoOffice fields = []
class EnFilter(filters.FilterSet): freshdate = filters.IsoDateTimeFilter(field_name="fdate", lookup_expr='gte') class Meta: model = EnWord fields = ['fwordno', 'fword', 'fpronunciation', 'freshdate']
class ContractRouteFilter(filters.FilterSet): id = filters.NumberFilter(name="id", label="ID", lookup_expr="exact") id_range = filters.RangeFilter(name="id", label="ID Between") source = filters.CharFilter(name="source__name", label="Source City name", lookup_expr="icontains") source_null = filters.BooleanFilter(name="source", label="Is Source name Null", lookup_expr='isnull') destination = filters.CharFilter(name="destination__name", label="Destination name", lookup_expr="icontains") destination_null = filters.BooleanFilter(name="destination", label="Is Destination name Null", lookup_expr="isnull") rate_type = filters.CharFilter(name="rate_type__name", label="Rate Type name", lookup_expr="icontains") rate_type_null = filters.BooleanFilter(name="rate_type", label="Is Rate Type name Null", lookup_expr="isnull") rate_range = filters.NumericRangeFilter(name="rate", label="Rate Range") created_on = filters.IsoDateTimeFilter(name="created_on", label="Created on") created_between = filters.DateTimeFromToRangeFilter( name="created_on", label="Created Between") class Meta: model = ContractRoute fields = []
class CustomerContractFilter(filters.FilterSet): id = filters.NumberFilter(name="id", label="ID", lookup_expr="exact") id_range = filters.RangeFilter(name="id", label="ID Between") customer_name = filters.CharFilter(name="customer__name__username", label="Customer name", lookup_expr="icontains") customer_name_null = filters.BooleanFilter(name="customer__name__username", label="Is Customer name Null", lookup_expr='isnull') customer_code = filters.CharFilter(name="customer__company_code", label="Customer name") customer_code_null = filters.BooleanFilter(name="customer__name__username", label="Is Customer name Null", lookup_expr="isnull") start_date_between = filters.DateTimeFromToRangeFilter( name="start_date", label="Start Date Between") billing_frequency = filters.ChoiceFilter(name="billing_frequency", choices=BILLING_FREQUENCY_CHOICES) created_on = filters.IsoDateTimeFilter(name="created_on", label="Created on") created_between = filters.DateTimeFromToRangeFilter( name="created_on", label="Created Between") class Meta: model = CustomerContract fields = []