class EventFilter(filters.FilterSet): start = filters.DateTimeFromToRangeFilter() end = filters.DateTimeFromToRangeFilter() tags = TagsFilter(field_name='tags') class Meta: model = Event fields = ('id','name','category','organizer','slug','start','end','freeOfCharge','availableLiveOnly')
class VideoFilter(djfilters.FilterSet): categories__name__icontains = djfilters.ModelMultipleChoiceFilter( field_name='categories__name', to_field_name='name', lookup_expr='icontains', queryset=Category.objects.all(), ) created_time = djfilters.DateTimeFromToRangeFilter() updated_time = djfilters.DateTimeFromToRangeFilter() uploaded_time = djfilters.DateTimeFromToRangeFilter() class Meta: model = Video fields = { 'duration': ['exact', 'gt', 'gte', 'lt', 'lte'], 'creator__email': ['exact'], 'framerate': ['exact'], 'has_tono_records': ['exact'], 'is_filler': ['exact'], 'name': ['exact', 'icontains'], 'organization': ['exact'], 'played_count_web': ['exact', 'gt', 'gte', 'lt', 'lte'], 'publish_on_web': ['exact'], 'ref_url': ['exact', 'startswith', 'icontains'], }
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 = []
class RunFilter(filters.FilterSet): """ Provides useful filtering options for the :class:`~django_analyses.models.run.Run` model. """ analysis = filters.ModelMultipleChoiceFilter( "analysis_version__analysis", queryset=ANALYSES_WITH_RUNS, ) analysis_version = filters.ModelMultipleChoiceFilter( "analysis_version", queryset=ANALYSIS_VERSIONS_WITH_RUNS) status = filters.MultipleChoiceFilter(choices=RunStatus.choices()) start_time = filters.DateTimeFromToRangeFilter() end_time = filters.DateTimeFromToRangeFilter() if Subject: subject = filters.NumberFilter(method="get_subject_runs", label="By subject ID:", required=False) class Meta: model = Run fields = ("id", ) def get_subject_runs(self, queryset: QuerySet, name: str, pk: int) -> QuerySet: try: subject = Subject.objects.get(id=pk) except Subject.DoesNotExist: pass else: return subject.query_run_set()
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 UltimateOracleFilter(filters.FilterSet): creator = filters.AllValuesMultipleFilter() creation_date_time = filters.DateTimeFromToRangeFilter() is_outcome_set = filters.BooleanFilter() forwarded_oracle_creator = filters.AllValuesMultipleFilter( name='forwarded_oracle__creator') forwarded_oracle_creation_date_time = filters.DateTimeFromToRangeFilter( name='forwarded_oracle__creation_date_time') forwarded_oracle_is_outcome_set = filters.BooleanFilter( name='forwarded_oracle__is_outcome_set') forwarded_oracle_factory = filters.AllValuesMultipleFilter( name='forwarded_oracle__factory') ordering = filters.OrderingFilter( fields=(('creation_date_time', 'creation_date_order'), ('forwarded_oracle__creation_date_time', 'forwarded_oracle_creation_date_order'))) class Meta: model = UltimateOracle fields = ('creator', 'creation_date_time', 'is_outcome_set', 'forwarded_oracle_creator', 'forwarded_oracle_creation_date_time', 'forwarded_oracle_is_outcome_set', 'forwarded_oracle_factory', 'ordering')
class MarketFilter(filters.FilterSet): creator = AddressInFilter(lookup_expr='in') creation_date_time = filters.DateTimeFromToRangeFilter() market_maker = filters.AllValuesMultipleFilter() event_oracle_factory = filters.AllValuesMultipleFilter( name='event__oracle__factory') event_oracle_creator = filters.AllValuesMultipleFilter( name='event__oracle__creator') event_oracle_creation_date_time = filters.DateTimeFromToRangeFilter( name='event__oracle__creation_date_time') # TODO refactor, maybe duplicate resolution_date from event_description to market resolution_date_time = filters.DateTimeFromToRangeFilter( name= 'event__oracle__centralizedoracle__event_description__resolution_date') event_oracle_is_outcome_set = filters.BooleanFilter( name='event__oracle__is_outcome_set') ordering = filters.OrderingFilter(fields=( ('creation_date_time', 'creation_date_order'), ('event__oracle__creation_date_time', 'event_oracle_creation_date_order'), ('resolution_date_time', 'resolution_date_order'), )) class Meta: model = Market fields = ('creator', 'creation_date_time', 'market_maker', 'event_oracle_factory', 'event_oracle_creator', 'event_oracle_creation_date_time', 'event_oracle_is_outcome_set', 'resolution_date_time')
class ActivityFilter(filters.FilterSet): in_progress = filters.BooleanFilter(label="Activities in progress", method="filter_in_progress") start = filters.DateTimeFromToRangeFilter(field_name="start_at") end = filters.DateTimeFromToRangeFilter(field_name="end_at") def filter_in_progress(self, queryset, name, value): return queryset.filter(end_at__isnull=True) class Meta: model = Activity fields = ("member", "workplace", "in_progress", "start", "end")
class MarketFilter(filters.FilterSet): creator = filters.CharFilter( method='filter_creator') # Accept multiple creators split by comma creation_date_time = filters.DateTimeFromToRangeFilter() market_maker = filters.AllValuesMultipleFilter() event_oracle_factory = filters.AllValuesMultipleFilter( field_name='event__oracle__factory') event_oracle_creator = filters.AllValuesMultipleFilter( field_name='event__oracle__creator') event_oracle_creation_date_time = filters.DateTimeFromToRangeFilter( field_name='event__oracle__creation_date_time') # TODO refactor, maybe duplicate resolution_date from event_description to market resolution_date_time = filters.DateTimeFromToRangeFilter( field_name= 'event__oracle__centralizedoracle__event_description__resolution_date') event_oracle_is_outcome_set = filters.BooleanFilter( field_name='event__oracle__is_outcome_set') collateral_token = filters.CharFilter(field_name='event__collateral_token', method='filter_collateral_token') ordering = filters.OrderingFilter(fields=( ('creation_date_time', 'creation_date_order'), ('event__oracle__creation_date_time', 'event_oracle_creation_date_order'), ('resolution_date_time', 'resolution_date_order'), )) class Meta: model = Market fields = ( 'creator', 'creation_date_time', 'market_maker', 'event_oracle_factory', 'event_oracle_creator', 'event_oracle_creation_date_time', 'event_oracle_is_outcome_set', 'resolution_date_time', 'collateral_token', ) def filter_creator(self, queryset, name, value): creators = [ normalize_address_or_raise(creator) for creator in value.split(',') ] return queryset.filter(creator__in=creators) def filter_collateral_token(self, queryset, name, value): value = normalize_address_or_raise(value) return queryset.filter(event__collateral_token__iexact=value)
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 AnalysisVersionFilter(filters.FilterSet): """ Provides useful filtering options for the :class:`~django_analyses.models.analysis_version.AnalysisVersion` model. """ title = filters.LookupChoiceFilter( lookup_choices=[ ("contains", "Contains (case-sensitive)"), ("icontains", "Contains (case-insensitive)"), ("exact", "Exact"), ] ) description = filters.LookupChoiceFilter( lookup_choices=[ ("contains", "Contains (case-sensitive)"), ("icontains", "Contains (case-insensitive)"), ("exact", "Exact"), ] ) created = filters.DateTimeFromToRangeFilter("created") class Meta: model = AnalysisVersion fields = "id", "analysis", "title", "description", "created"
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 SessionFilter(filters.FilterSet): """ Provides useful filtering options for the :class:`~django_dicom.models.session.Session` class. """ comments = filters.LookupChoiceFilter( "comments", lookup_choices=[ ("contains", "Contains (case-sensitive)"), ("icontains", "Contains (case-insensitive)"), ("exact", "Exact"), ], ) session_date = filters.DateTimeFromToRangeFilter("time__date") subject_id_in = NumberInFilter(field_name="subject__id", lookup_expr="in") scan_set = NumberInFilter(field_name="scan_set", method="in") id_in = NumberInFilter(field_name="id", lookup_expr="in") class Meta: model = Session fields = ( "id", "subject", "comments", "time", "scan_set", "session_date", )
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 MarketTradesFilter(filters.FilterSet): creation_date_time = filters.DateTimeFromToRangeFilter() collateral_token = filters.CharFilter(method='filter_collateral_token') ordering = filters.OrderingFilter(fields=(('creation_date_time', 'creation_date_order'), )) class Meta: model = Order fields = ( 'creation_date_time', 'collateral_token', ) def __init__(self, data=None, *args, **kwargs): # if filterset is bound, use initial values as defaults if data is not None and not 'creation_date_time_after' in data and not 'creation_date_time_before' in data: data = data.copy() data['creation_date_time_after'] = ( timezone.now() - timedelta(days=14)).strftime('%Y-%m-%d %H:%M:%S') data['creation_date_time_before'] = timezone.now() super().__init__(data, *args, **kwargs) def filter_collateral_token(self, queryset, name, value): value = normalize_address_or_raise(value) return queryset.filter(market__event__collateral_token__iexact=value)
class GHUserFilterSet(filters.FilterSet): created_at = filters.DateTimeFromToRangeFilter(field_name="created_at") has_key = filters.BooleanFilter(field_name="has_key") class Meta: models = GitHubUser fields = ["has_key", "created_at"]
class BookingStatusChainFilter(filters.FilterSet): id = filters.NumberFilter(name="id", label="ID", lookup_expr="exact") id_range = filters.RangeFilter(name="id", label="ID Between") booking_status = filters.CharFilter(name="booking_status__status", label="Booking Status Name", lookup_expr='icontains') booking_status_null = filters.BooleanFilter(name="booking_status", label="Is Booking Status Null", lookup_expr="isnull") level = filters.CharFilter(name="level", label="Booking Status Chain Level", lookup_expr='icontains') level_null = filters.BooleanFilter(name="level", label="Is Booking Status Chain Level Null", lookup_expr="isnull") primary_preceded_booking_status = filters.CharFilter(name="primary_preceded_booking_status__status", label="Booking Status Name", lookup_expr='icontains') primary_preceded_booking_status_null = filters.BooleanFilter(name="primary_preceded_booking_status", label="Is Booking Status Null", lookup_expr="isnull") primary_succeeded_booking_status = filters.CharFilter(name="primary_succeeded_booking_status__status", label="Booking Status Name", lookup_expr='icontains') primary_succeeded_booking_status_null = filters.BooleanFilter(name="primary_succeeded_booking_status", label="Is Booking Status Null", lookup_expr="isnull") secondary_preceded_booking_status = filters.CharFilter(name="secondary_preceded_booking_status__status", label="Booking Status Name", lookup_expr='icontains') secondary_preceded_booking_status_null = filters.BooleanFilter(name="secondary_preceded_booking_status", label="Is Booking Status Null", lookup_expr="isnull") secondary_succeeded_booking_status = filters.CharFilter(name="secondary_succeeded_booking_status__status", label="Booking Status Name", lookup_expr='icontains') secondary_succeeded_booking_status_null = filters.BooleanFilter(name="secondary_succeeded_booking_status", label="Is Booking Status Null", lookup_expr="isnull") created_on = filters.DateTimeFilter(name="created_on", label="Created on", lookup_expr="date") created_between = filters.DateTimeFromToRangeFilter(name="created_on", label="Created Between") class Meta: model = BookingStatusChain fields = []
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 ScanFilter(filters.FilterSet): """ Provides useful filtering options for the :class:`~django_dicom.models.scan.Scan` class. """ description = filters.LookupChoiceFilter( "description", lookup_choices=LOOKUP_CHOICES, ) number = filters.NumberFilter("number") scan_time = filters.DateTimeFromToRangeFilter("time") created = filters.DateTimeFromToRangeFilter("created") institution_name = filters.AllValuesFilter("institution_name") dicom_id_in = NumberInFilter(field_name="dicom__id", lookup_expr="in") sequence_type = filters.MultipleChoiceFilter( field_name="dicom__sequence_type", # Exclude the null value choices because it doesn't seem to integrate # well with DRF. choices=SEQUENCE_TYPE_CHOICES[:-1], # Create DRF compatible null filter. null_value=None, null_label="Unknown", ) subject_id_number = filters.LookupChoiceFilter( "session__subject__id_number", lookup_choices=LOOKUP_CHOICES, ) subject_first_name = filters.LookupChoiceFilter( "session__subject__first_name", lookup_choices=LOOKUP_CHOICES, ) subject_last_name = filters.LookupChoiceFilter( "session__subject__last_name", lookup_choices=LOOKUP_CHOICES, ) study_groups = filters.ModelMultipleChoiceFilter( queryset=Group.objects.all() ) class Meta: model = Scan fields = ( "id", "echo_time", "inversion_time", "repetition_time", "is_updated_from_dicom", "dicom__id", "session", )
class EmissionFilter(filters.FilterSet): # query: # /api/v2/abcast/emission/?time_start_0=2019-06-03+06:00&time_start_1=2019-06-04+06:00 time_start = filters.DateTimeFromToRangeFilter() class Meta: model = Emission fields = ['time_start']
class HumidityFilter(django_filters.FilterSet): min_humi_value = filters.NumberFilter(name='humi_value', lookup_expr='gte') max_humi_value = filters.NumberFilter(name='humi_value', lookup_expr='lte') humi_time = filters.DateTimeFromToRangeFilter(name='humi_time') ext_addr = filters.CharFilter(name='end_device__ext_addr') class Meta: model = Humidity fields = ['min_humi_value', 'max_humi_value', 'humi_time']
class TemperatureFilter(django_filters.FilterSet): min_temp_value = filters.NumberFilter(name='temp_value', lookup_expr='gte') max_temp_value = filters.NumberFilter(name='temp_value', lookup_expr='lte') temp_time = filters.DateTimeFromToRangeFilter(name='temp_time') end_device_id = filters.CharFilter(field_name='end_device__end_device_id') class Meta: model = Temperature fields = ['min_temp_value', 'max_temp_value', 'temp_time']
class EventListFilter(filters.FilterSet): date_time_start = filters.DateTimeFromToRangeFilter() id = filters.NumberFilter group_page = filters.NumberFilter class Meta: model = Event fields = ['date_time_start', 'id', 'group_page']
class PhotoFilter(filters.FilterSet): datetime_original = filters.DateTimeFromToRangeFilter( field_name="datetime_original") class Meta: model = Photo exclude = [ "image_hash", "gps_longitudes", "gps_latitudes", "gmt_created" ]
class VideoFileFilter(djfilters.FilterSet): created_time = djfilters.DateTimeFromToRangeFilter() class Meta: model = VideoFile fields = { 'format__fsname': ['exact'], 'integrated_lufs': ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull'], 'truepeak_lufs': ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull'], }
class SessionFilter(filters.FilterSet): """ Provides useful filtering options for the :class:`~django_dicom.models.session.Session` class. """ comments = filters.LookupChoiceFilter( "comments", lookup_choices=LOOKUP_CHOICES, ) session_date = filters.DateTimeFromToRangeFilter("time__date") id_in = NumberInFilter(field_name="id", lookup_expr="in", label="Session ID is in") study_id_in = NumberInFilter( lookup_expr="in", label="Associated Study ID is in", method="filter_by_study_association", ) subject_id_in = NumberInFilter(field_name="subject__id", lookup_expr="in", label="Subject ID is in") scan_set = NumberInFilter(field_name="scan_set", method="in", label="Contains scan IDs") subject_id_number = filters.LookupChoiceFilter( "subject__id_number", lookup_choices=LOOKUP_CHOICES, ) subject_first_name = filters.LookupChoiceFilter( "subject__first_name", lookup_choices=LOOKUP_CHOICES, ) subject_last_name = filters.LookupChoiceFilter( "subject__last_name", lookup_choices=LOOKUP_CHOICES, ) class Meta: model = Session fields = ( "id", "subject", "comments", "time", "scan_set", "session_date", ) def filter_by_study_association(self, queryset: QuerySet, name: str, value: List[str]): query = Q(scan__study_groups__study__id__in=value) | Q( measurement__procedure__study__id__in=value) return queryset.filter(query).distinct()
class RouterDeviceFilter(django_filters.FilterSet): ext_addr = filters.CharFilter(name='ext_addr') net_addr = filters.CharFilter(name='net_addr') status = filters.NumberFilter(name='status') voltage_min = filters.NumberFilter(name='voltage', lookup_expr='gte') voltage_max = filters.NumberFilter(name='voltage', lookup_expr='lte') start_time = filters.DateTimeFromToRangeFilter(name='start_time') class Meta: model = EndDevice fields = ['ext_addr', 'net_addr', 'status', 'voltage', 'start_time']
class UserCategoryFilter(filters.FilterSet): id = filters.NumberFilter(name="id", label="ID", lookup_expr="exact") id_range = filters.RangeFilter(name="id", label="ID Between") category = filters.CharFilter(name="category", label="User Category", lookup_expr='icontains') category_null = filters.BooleanFilter(name="category", label="Is User Category Null", lookup_expr="isnull") created_on = filters.DateTimeFilter(name="created_on", label="Created on", lookup_expr="date") created_between = filters.DateTimeFromToRangeFilter(name="created_on", label="Created Between") class Meta: model = UserCategory fields = []
class EmployeeRolesFilter(filters.FilterSet): id = filters.NumberFilter(name="id", label="ID", lookup_expr="exact") id_range = filters.RangeFilter(name="id", label="ID Between") role = filters.CharFilter(name="role", label="Employee Role", lookup_expr='icontains') role_null = filters.BooleanFilter(name="role", label="Is Employee Role Null", lookup_expr="isnull") created_on = filters.DateTimeFilter(name="created_on", label="Created on", lookup_expr="date") created_between = filters.DateTimeFromToRangeFilter(name="created_on", label="Created Between") class Meta: model = EmployeeRoles fields = []
class ScanFilter(filters.FilterSet): """ Provides useful filtering options for the :class:`~django_dicom.models.series.Series` class. """ description = filters.LookupChoiceFilter( "description", lookup_choices=[ ("contains", "Contains (case-sensitive)"), ("icontains", "Contains (case-insensitive)"), ("exact", "Exact"), ], ) number = filters.NumberFilter("number") sequence_type = filters.AllValuesMultipleFilter("sequence_type") # spatial_resolution = filters.AllValuesFilter("spatial_resolution") scan_time = filters.DateTimeFromToRangeFilter("time") created = filters.DateTimeFromToRangeFilter("created") institution_name = filters.AllValuesFilter("institution_name") dicom_id_in = NumberInFilter(field_name="dicom__id", lookup_expr="in") class Meta: model = Scan fields = ( "id", "description", "number", "created", "scan_time", "echo_time", "inversion_time", "repetition_time", "sequence_type", # "spatial_resolution", "institution_name", "is_updated_from_dicom", "dicom__id", "subject", )