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 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 UserFilter(filters.FilterSet): """ Provides useful filtering options for the :class:`~accounts.models.user.User` model. """ username = filters.LookupChoiceFilter( lookup_choices=DEFUALT_LOOKUP_CHOICES) first_name = filters.LookupChoiceFilter( lookup_choices=DEFUALT_LOOKUP_CHOICES) last_name = filters.LookupChoiceFilter( lookup_choices=DEFUALT_LOOKUP_CHOICES) email = filters.LookupChoiceFilter(lookup_choices=DEFUALT_LOOKUP_CHOICES) institute = filters.AllValuesMultipleFilter( field_name="profile__institute") study_ne = filters.NumberFilter(field_name="study", exclude=True) class Meta: model = User fields = ( "id", "username", "first_name", "last_name", "email", "institute", "study", "study_ne", )
class CentralizedOracleFilter(filters.FilterSet): creator = filters.AllValuesMultipleFilter() creation_date_time = filters.DateTimeFromToRangeFilter() is_outcome_set = filters.BooleanFilter() owner = filters.AllValuesMultipleFilter() title = filters.CharFilter(field_name='event_description__title', lookup_expr='contains') description = filters.CharFilter( field_name='event_description__description', lookup_expr='contains') resolution_date = filters.DateTimeFromToRangeFilter( field_name='event_description__resolution_date') ordering = filters.OrderingFilter( fields=(('creation_date_time', 'creation_date_order'), ('event_description__resolution_date_time', 'resolution_date_order'))) class Meta: model = CentralizedOracle fields = ('creator', 'creation_date_time', 'is_outcome_set', 'owner', 'title', 'description', 'ordering')
class EventFilter(filters.FilterSet): creator = filters.AllValuesMultipleFilter() creation_date_time = filters.DateTimeFromToRangeFilter() is_winning_outcome_set = filters.BooleanFilter() oracle_factory = filters.AllValuesMultipleFilter(name='oracle__factory') oracle_creator = filters.AllValuesMultipleFilter(name='oracle__creator') oracle_creation_date_time = filters.DateTimeFromToRangeFilter( name='oracle__creation_date_time') oracle_is_outcome_set = filters.BooleanFilter( name='oracle__is_outcome_set') ordering = filters.OrderingFilter(fields=(('creation_date_time', 'creation_date_order'), ('oracle__creation_date_time', 'oracle_creation_date_order'))) class Meta: model = Event fields = ('creator', 'creation_date_time', 'is_winning_outcome_set', 'oracle_factory', 'oracle_creator', 'oracle_creation_date_time', 'oracle_is_outcome_set')
class MarketFilter(filters.FilterSet): creator = filters.AllValuesMultipleFilter() 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') 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'))) 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')
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", )