class ClaimFilter(filters.FilterSet): min_created = filters.DateTimeFilter(name='created', lookup_expr='gte', label='Дата создания от') max_created = filters.DateTimeFilter(name='created', lookup_expr='lte', label='Дата создания до') min_sent = filters.DateFilter(name='sent', lookup_expr='gte', label='Дата просмотра от') max_sent = filters.DateFilter(name='sent', lookup_expr='lte', label='Дата просмотра до') order = filters.OrderingFilter(fields=( ('questionnaire', 'questionnaire'), ('created', 'created'), ('sent', 'sent'), ), field_labels={ 'questionnaire': 'По анкете', 'created': 'По дате создания ', 'sent': 'По дате просмотра' }) class Meta: model = Claim fields = ( 'min_created', 'max_created', 'min_sent', 'max_sent', )
class ReportFilter(filters.FilterSet): start = filters.DateTimeFilter(lookup_expr="gte") end = filters.DateTimeFilter(lookup_expr="lte") class Meta: model = Report fields = ["start", "end"]
class ContractorOrderFilter(OrderFilter): id = filters.NumberFilter(field_name="id", lookup_expr='contains') min_date = filters.DateTimeFilter(field_name="order__created", lookup_expr='gte') max_date = filters.DateTimeFilter(field_name="order__created", lookup_expr='lte') status = filters.ChoiceFilter(field_name="order__status", choices=OrderStatuses.ORDER_STATUSES) user_fio = filters.CharFilter(field_name="order__orderuser__contact_fio", lookup_expr='icontains') user_phone = filters.CharFilter(field_name="order__user_phone", lookup_expr='icontains') status_group = filters.NumberFilter(field_name='order__status_group', lookup_expr='exact') class Meta: model = ContractorOrder fields = ( 'id', 'min_date', 'max_date', 'status', 'user_fio', 'user_phone', 'status_group', )
class MemberFilter(filters.FilterSet): race = ListFilter(name="race", lookup_expr='icontains') race_exclude = ListFilter(name="race", lookup_expr='icontains', exclude=True) membership_name = ListFilter(name="membership__name", lookup_expr='icontains') membership_name_exclude = ListFilter(name="membership__name", lookup_expr='icontains', exclude=True) min_registration_date = filters.DateTimeFilter(name="registration_date", lookup_expr='gte') max_registration_date = filters.DateTimeFilter(name="registration_date", lookup_expr='lte') min_last_purchase_date = filters.DateTimeFilter(name="last_purchase_date", lookup_expr='gte') max_last_purchase_date = filters.DateTimeFilter(name="last_purchase_date", lookup_expr='lte') class Meta: model = models.Member fields = ('name', 'race', 'race_exclude', 'membership_name', 'membership_name_exclude', 'min_registration_date', 'max_registration_date', 'min_last_purchase_date', 'max_last_purchase_date')
class InvoiceFilter(filters.FilterSet): min_create = filters.DateTimeFilter(field_name="create_time", lookup_expr='gte') max_create = filters.DateTimeFilter(field_name="create_time", lookup_expr='lte') class Meta: model = Invoice fields = ['min_create', 'max_create', 'serial_id', 'seller', 'buyer']
class KaznetSubmissionFilterSet(KaznetFilterSet): """ Filterset for submissions """ modified = filters.DateTimeFilter( name='modified', lookup_expr=DATETIME_LOOKUPS, method='filter_datetime' ) userprofile = filters.ModelChoiceFilter( name='user__userprofile', queryset=UserProfile.objects.all() ) submission_time = filters.DateTimeFilter( name='submission_time', lookup_expr=DATETIME_LOOKUPS, method='filter_datetime' ) # pylint: disable=too-few-public-methods class Meta: """ Meta options for KaznetSubmissionFilterSet """ model = Submission fields = [ 'task', 'user', 'userprofile', 'status', 'location', 'valid', 'modified', 'submission_time', ]
class FrameFilter(django_filters.FilterSet): start = django_filters.DateTimeFilter(field_name='DATE_OBS', lookup_expr='gte') end = django_filters.DateTimeFilter(field_name='DATE_OBS', lookup_expr='lte') dayobs = django_filters.DateFilter(field_name='DAY_OBS', lookup_expr='iexact') basename = django_filters.CharFilter(field_name='basename', lookup_expr='icontains') OBJECT = django_filters.CharFilter(field_name='OBJECT', lookup_expr='icontains') public = django_filters.BooleanFilter(field_name='public', method='public_filter') EXPTIME = django_filters.NumberFilter(field_name='EXPTIME', lookup_expr='gte') covers = django_filters.CharFilter(method='covers_filter') exclude_OBSTYPE = django_filters.MultipleChoiceFilter( field_name='OBSTYPE', choices=Frame.OBSERVATION_TYPES, label='Exclude Obstypes', exclude=True ) intersects = django_filters.CharFilter(method='intersects_filter') def covers_filter(self, queryset, name, value): geo = GEOSGeometry(value) return queryset.filter(area__covers=geo) def intersects_filter(self, queryset, name, value): geo = GEOSGeometry(value) return queryset.filter(area__intersects=geo) def public_filter(self, queryset, name, value): if not value: return queryset.exclude(L1PUBDAT__lt=timezone.now()) return queryset class Meta: model = Frame fields = ['DATE_OBS', 'DAY_OBS', 'PROPID', 'OBSTYPE', 'INSTRUME', 'RLEVEL', 'SITEID', 'TELID', 'FILTER', 'L1PUBDAT', 'BLKUID', 'REQNUM']
class PostFilter(filters.FilterSet): actual_only = filters.BooleanFilter( method='filter_actual_only', ) status = filters.ChoiceFilter( choices=Post.STATUSES, ) earlier = filters.DateTimeFilter( field_name='schedule', lookup_expr='lte', ) later = filters.DateTimeFilter( field_name='schedule', lookup_expr='gte', ) @staticmethod def filter_actual_only(queryset, _, value): if value: queryset = queryset.filter(status__lte=Post.READY) return queryset class Meta: model = Post fields = [ 'status', 'earlier', 'later', ]
class CompetitionFilter(filters.FilterSet): """customized filters for the CompetitionList class""" from_achievement_date = filters.DateTimeFilter( field_name='distance_achievement_date', lookup_expr='gte') to_achievement_date = filters.DateTimeFilter( field_name='distance_achievement_date', lookup_expr='lte') min_distance_in_feet = filters.NumberFilter(field_name='distance_in_feet', lookup_expr='gte') max_distance_in_feet = filters.NumberFilter(field_name='distance_in_feet', lookup_expr='lte') drone_name = filters.AllValuesFilter(field_name='drone__name') pilot_name = filters.AllValuesFilter(field_name='pilot__name') class Meta: """model related to the filter set""" model = Competition # field names and filter names that we want to include # in the filters fields = [ 'distance_in_feet', 'from_achievement_date', 'to_achievement_date', 'min_distance_in_feet', 'max_distance_in_feet', # drone__name will be accessed as drone_name 'drone_name', # pilot__name will be accessed as pilot_name 'pilot_name' ]
class FilterSet(filters.FilterSet): map_ids = filters.NumberFilter( required=False, help_text=u'mapping識別,點須有lat(維度)、lng(經度)屬性。', label='map_ids') time_start = filters.DateTimeFilter(required=False, help_text=u'開始時間,ISO格式,預設今日。', label='time_start') time_end = filters.DateTimeFilter(required=False, help_text=u'開始時間,ISO格式,預設今日。', label='time_end') lat = filters.NumberFilter(required=False, help_text=u'維度。', label='lat') lng = filters.NumberFilter(required=False, help_text=u'經度。', label='lng') token = filters.CharFilter(required=False, help_text=u'合法的 JWToken。', label='token') class Meta: model = Mapper fields = [ 'map_ids', 'time_start', 'time_end', 'lat', 'lng', 'token' ] @property def qs(self, *args, **kwargs): pass
class CommentFilter(filters.FilterSet): date_from = filters.DateTimeFilter(field_name="created", lookup_expr='gte') date_to = filters.DateTimeFilter(field_name="created", lookup_expr='lte') class Meta: model = Comment fields = ['author', 'date_from', 'date_to']
class CompetitionFilter(dfilters.FilterSet): """ Custom filter class for for the competition API view classes """ from_achievement_date = dfilters.DateTimeFilter( field_name='distance_achievement_date', lookup_expr='gte') to_achievement_date = dfilters.DateTimeFilter( field_name='distance_achievement_date', lookup_expr='lte') min_distance_in_feet = dfilters.NumberFilter(field_name='distance_in_feet', lookup_expr='gte') max_distance_in_feet = dfilters.NumberFilter(field_name='distance_in_feet', lookup_expr='lte') drone_name = dfilters.AllValuesFilter( field_name='drone__name') # drone.name field pilot_name = dfilters.AllValuesFilter( field_name='pilot__name') # pilot.name field class Meta: model = Competition fields = ( 'distance_in_feet', 'from_achievement_date', 'to_achievement_date', 'min_distance_in_feet', 'max_distance_in_feet', # drone__name will be accessed as drone_name 'drone_name', # pilot__name will be accessed as pilot_name 'pilot_name', )
class ProductionFilter(filters.FilterSet): title = filters.CharFilter(lookup_expr='iexact') platform = filters.ModelMultipleChoiceFilter( field_name='platforms', queryset=Platform.objects.all()) released_before = filters.DateFilter(field_name='release_date_date', lookup_expr='lt', label="Released before") released_since = filters.DateFilter(field_name='release_date_date', lookup_expr='gte', label="Released since") added_before = filters.DateTimeFilter(field_name='created_at', lookup_expr='lt', label="Added before") added_since = filters.DateTimeFilter(field_name='created_at', lookup_expr='gte', label="Added since") updated_before = filters.DateTimeFilter(field_name='updated_at', lookup_expr='lt', label="Updated before") updated_since = filters.DateTimeFilter(field_name='updated_at', lookup_expr='gte', label="Updated since") author = filters.NumberFilter(method='filter_author', label="Author ID") def filter_author(self, queryset, name, value): return queryset.filter( Q(author_nicks__releaser_id=value) | Q(author_affiliation_nicks__releaser_id=value)) class Meta: model = Production fields = ['supertype']
class HouseFilter(filters.FilterSet): """ 房屋过滤搜索 """ # min_read = rest_framework.NumberFilter(field_name='read_num', lookup_expr='gte') # max_read = rest_framework.NumberFilter(field_name='read_num', lookup_expr='lte') house_property_include = filters.CharFilter(field_name='house_property', lookup_expr='icontains', help_text=_('包含属性')) size_min = filters.NumberFilter(field_name="house_size", lookup_expr='gte', help_text=_('最小面积')) size_max = filters.NumberFilter(field_name="house_size", lookup_expr='lte', help_text=_('最大面积')) time_min = filters.DateTimeFilter(field_name="house_add_time", lookup_expr='gte', help_text=_('最早添加时间')) time_max = filters.DateTimeFilter(field_name="house_add_time", lookup_expr='lte', help_text=_('最晚添加时间')) house_id = filters.NumberFilter(field_name="house_id", lookup_expr='exact', help_text=_('房屋id')) class Meta: model = House fields = [ 'house_id', 'size_min', 'time_min', 'time_max', 'size_max', 'house_property_include' ]
class BoxFilter(filters.FilterSet): min_length = filters.NumberFilter(field_name="length", lookup_expr='gt') max_length = filters.NumberFilter(field_name="length", lookup_expr='lt') min_breadth = filters.NumberFilter(field_name="breadth", lookup_expr='gt') max_breadth = filters.NumberFilter(field_name="breadth", lookup_expr='lt') min_height = filters.NumberFilter(field_name="height", lookup_expr='gt') max_height = filters.NumberFilter(field_name="height", lookup_expr='lt') min_area = filters.NumberFilter(field_name="area", lookup_expr='gt') max_area = filters.NumberFilter(field_name="area", lookup_expr='lt') min_volume = filters.NumberFilter(field_name="volume", lookup_expr='gt') max_volume = filters.NumberFilter(field_name="volume", lookup_expr='lt') created_before = filters.DateTimeFilter(field_name="created_at", lookup_expr='lt') created_after = filters.DateTimeFilter(field_name="created_at", lookup_expr='gt') username = filters.CharFilter(field_name="created_by", lookup_expr="username") class Meta: model = Box fields = [ 'length', 'min_length', 'max_length', 'breadth', 'min_breadth', 'max_breadth', 'height', 'min_height', 'max_height', 'area', 'min_area', 'max_area', 'volume', 'min_volume', 'max_volume', 'created_at', 'created_before', 'created_after', 'created_by', 'username' ]
class PostFilter(filters.FilterSet): date_from = filters.DateTimeFilter(field_name='pub_date', lookup_expr='gte') date_to = filters.DateTimeFilter(field_name='pub_date', lookup_expr='lte') class Meta: model = Post fields = ['date_from', 'date_to']
class LowerPaymentFilter(filters.FilterSet): min_create = filters.DateTimeFilter(field_name="create_time", lookup_expr='gte') max_create = filters.DateTimeFilter(field_name="create_time", lookup_expr='lte') class Meta: model = LowerPayment fields = ['min_create', 'max_create', 'serial_id', 'broker', 'invoice_org']
class StatFilter(filters.FilterSet): start = filters.DateTimeFilter(field_name='date', lookup_expr='gte', label='start') end = filters.DateTimeFilter(field_name='date', lookup_expr='lte', label='end')
class AlarmFilter(rest_framework.FilterSet): time_min = rest_framework.DateTimeFilter(field_name='am_addtime',lookup_expr='gte') time_max = rest_framework.DateTimeFilter(field_name='am_addtime',lookup_expr='lte') class Meta: model = AlarmManagement fields = ['time_min','time_max','scene_id','am_type_id','am_level_id','am_status']
class TransactionFilter(filters.FilterSet): before = filters.DateTimeFilter(field_name='created', lookup_expr='lte') after = filters.DateTimeFilter(field_name='created', lookup_expr='gte') class Meta: model = Transaction fields = ['before', 'after']
class CurrencyPairValueHistoryFilter(filters.FilterSet): currency_pair = filters.ModelChoiceFilter(queryset=CurrencyPair.objects.all()) creation_time_min = filters.DateTimeFilter(name='creation_time', lookup_expr='gte') creation_time_max = filters.DateTimeFilter(name='creation_time', lookup_expr='lte') class Meta: model = CurrencyPairValueHistory fields = ('currency_pair', 'period', 'creation_time_min', 'creation_time_max')
class DsmrReadingFilter(filters.FilterSet): FIELD = 'timestamp' timestamp__gte = filters.DateTimeFilter(name=FIELD, lookup_expr='gte') timestamp__lte = filters.DateTimeFilter(name=FIELD, lookup_expr='lte') class Meta: model = DsmrReading fields = ['timestamp']
class PostFilter(filters.FilterSet): date_from = filters.DateTimeFilter(field_name="pub_date", lookup_expr='gte') date_to = filters.DateTimeFilter(field_name="pub_date", lookup_expr='lte') class Meta: model = Post fields = ['author', 'date_from', 'date_to', 'group']
class OperationFilter(filters.FilterSet): device_type = filters.CharFilter(field_name='device__device_type__type_name',lookup_expr='icontains') user_name = filters.CharFilter(field_name='user__name',lookup_expr='icontains') from_date = filters.DateTimeFilter(field_name="created_at",lookup_expr='gt') until_date = filters.DateTimeFilter(field_name="created_at",lookup_expr='lt') class Meta: model = models.Operation fields = ['from_date','until_date','device_type','user_name']
class TaskItemFilter(filters.FilterSet): min_create = filters.DateTimeFilter(field_name="create_time", lookup_expr='gte') max_create = filters.DateTimeFilter(field_name="create_time", lookup_expr='lte') min_status = filters.BooleanFilter(field_name="task_state") class Meta: model = TaskItem fields = ['serial_id', 'min_create', 'max_create', 'min_status', 'goods_owner', 'invoice_status']
class GasConsumptionFilter(filters.FilterSet): FIELD = 'read_at' read_at__gte = filters.DateTimeFilter(name=FIELD, lookup_expr='gte') read_at__lte = filters.DateTimeFilter(name=FIELD, lookup_expr='lte') class Meta: model = GasConsumption fields = ['read_at']
class CommentFilter(filters.FilterSet): since = filters.DateTimeFilter(field_name="timestamp", lookup_expr='gte') before = filters.DateTimeFilter(field_name="timestamp", lookup_expr='lte') newer = NewerThanFilter(queryset=Activity.comments.all()) class Meta: model = Activity fields = ['visibility', 'since', 'before', 'newer']
class HourStatisticsFilter(filters.FilterSet): FIELD = 'hour_start' hour_start__gte = filters.DateTimeFilter(name=FIELD, lookup_expr='gte') hour_start__lte = filters.DateTimeFilter(name=FIELD, lookup_expr='lte') class Meta: model = HourStatistics fields = ['hour_start']
class LikeAnalyticsFilter(filters.FilterSet): date_from = filters.DateTimeFilter(field_name='liked_at', lookup_expr='gte') date_to = filters.DateTimeFilter(field_name='liked_at', lookup_expr='lte') class Meta: model = Like fields = ('liked_at', 'like')
class TaskFilter(filters.FilterSet): name = filters.CharFilter(lookup_expr='contains') new = filters.DateTimeFilter(field_name='created_at', lookup_expr='gte') old = filters.DateTimeFilter(field_name='created_at', lookup_expr='lte') class Meta: model = Task fields = ('name', 'created_at', 'due_on', 'status')