Exemple #1
0
class CrossreferenceFilter(FilterSet):
    """Crossreference filter."""

    predecessor = RelatedFilter(TaxonFilter, field_name="predecessor", queryset=Taxon.objects.all())
    successor = RelatedFilter(TaxonFilter, field_name="successor", queryset=Taxon.objects.all())
    # filter_overrides = {
    #     models.DateTimeField: {
    #         'filter_class': filters.IsoDateTimeFilter
    #     },
    # }
    # authorised_on_gte = filters.DateTimeFilter(name="authorised_on", lookup_expr='gte')

    class Meta:
        """Class opts."""

        model = Crossreference
        fields = {
            "xref_id": ["exact", ],
            "reason": ["exact", ],
            "authorised_by": ["exact", ],
            "authorised_on": ["exact", "year__gte", "gt", "gte", "lt", "lte"],
            # "authorised_on_gte": "__all__",
            "effective_to": ["exact", "year__gte", "gt", "gte", "lt", "lte"],
            "comments": ["icontains", ],
        }
Exemple #2
0
class EquipmentSystemFilter(FilterSet):
    """EquipmentSystemFilter."""

    equipment_facility = \
        RelatedFilter(
            queryset=EquipmentFacility.objects.all(),
            filterset=EquipmentFacilityFilter)

    equipment_instances = \
        RelatedFilter(
            queryset=EquipmentInstance.objects.all(),
            filterset=EquipmentInstanceFilter)

    class Meta:
        """EquipmentSystemFilter metadata."""

        model = EquipmentSystem

        fields = dict(name=[
            'exact', 'iexact', 'in', 'contains', 'icontains', 'startswith',
            'istartswith', 'endswith', 'iendswith', 'regex', 'iregex'
        ],
                      date=[
                          'exact', 'gt', 'gte', 'lt', 'lte', 'in', 'contains',
                          'startswith', 'endswith', 'range', 'isnull', 'year',
                          'year__gt', 'year__gte', 'year__lt', 'year__lte',
                          'year__in', 'year__range', 'month', 'month__gt',
                          'month__gte', 'month__lt', 'month__lte', 'month__in',
                          'month__range'
                      ])
Exemple #3
0
class EquipmentUniqueTypeFilter(FilterSet):
    """EquipmentUniqueTypeFilter."""

    equipment_general_type = \
        RelatedFilter(
            queryset=EquipmentGeneralType.objects.all(),
            filterset=EquipmentGeneralTypeFilter)

    equipment_data_fields = \
        RelatedFilter(
            queryset=EquipmentDataField.objects.all(),
            filterset=EquipmentDataFieldFilter)

    equipment_unique_type_groups = \
        RelatedFilter(
            queryset=EquipmentUniqueTypeGroup.objects.all(),
            filterset=EquipmentUniqueTypeGroupFilter)

    class Meta:
        """EquipmentUniqueTypeFilter metadata."""

        model = EquipmentUniqueType

        fields = dict(name=[
            'exact', 'iexact', 'in', 'contains', 'icontains', 'startswith',
            'istartswith', 'endswith', 'iendswith', 'regex', 'iregex'
        ],
                      description='__all__')

        filter_overrides = {
            JSONField:
            dict(filter_class=CharFilter
                 # 'extra': lambda f: {'lookup_expr': 'icontains'}
                 )
        }
Exemple #4
0
class EquipmentInstanceFilter(FilterSet):
    """EquipmentInstanceFilter."""

    equipment_general_type = \
        RelatedFilter(
            queryset=EquipmentGeneralType.objects.all(),
            filterset=EquipmentGeneralTypeFilter)

    equipment_unique_type = \
        RelatedFilter(
            queryset=EquipmentUniqueType.objects.all(),
            filterset=EquipmentUniqueTypeFilter)

    equipment_facility = \
        RelatedFilter(
            queryset=EquipmentFacility.objects.all(),
            filterset=EquipmentFacilityFilter)

    class Meta:
        """EquipmentInstanceFilter metadata."""

        model = EquipmentInstance

        fields = dict(name=[
            'exact', 'iexact', 'in', 'contains', 'icontains', 'startswith',
            'istartswith', 'endswith', 'iendswith', 'regex', 'iregex'
        ],
                      info='__all__')

        filter_overrides = {
            JSONField:
            dict(filter_class=CharFilter
                 # 'extra': lambda f: {'lookup_expr': 'icontains'}
                 )
        }
Exemple #5
0
class EquipmentInstanceDailyRiskScoreFilter(FilterSet):
    """EquipmentInstanceDailyRiskScoreFilter."""

    equipment_unique_type_group = \
        RelatedFilter(
            queryset=EquipmentUniqueTypeGroup.objects.all(),
            filterset=EquipmentUniqueTypeGroupFilter)

    equipment_instance = \
        RelatedFilter(
            queryset=EquipmentInstance.objects.all(),
            filterset=EquipmentInstanceFilter)

    class Meta:
        """Metadata."""

        model = EquipmentInstanceDailyRiskScore

        fields = dict(
            risk_score_name=[
                'exact', 'iexact',
                'in',
                'contains', 'icontains',
                'startswith', 'istartswith', 'endswith', 'iendswith',
            ],

            date=[
                'exact',
                'gt', 'gte', 'lt', 'lte',
                'in',
                'contains',
                'startswith',
                'endswith',
                'range',
                'isnull',
                'year',
                'year__gt', 'year__gte', 'year__lt', 'year__lte',
                'year__in',
                'year__range',
                'month',
                'month__gt', 'month__gte', 'month__lt', 'month__lte',
                'month__in',
                'month__range',
            ],

            risk_score_value=[
                'gt', 'gte', 'lt', 'lte',
                'startswith', 'istartswith',
                'range',
            ])
Exemple #6
0
        class NoteFilter(FilterSet):
            title = filters.CharFilter(field_name='title')
            author = RelatedFilter(UserFilter,
                                   field_name='author',
                                   queryset=User.objects.all())

            class Meta:
                model = Note
                fields = []
Exemple #7
0
class ChapterFilter(FilterSet):
    author = RelatedFilter(
        AuthorFilter,
        name='book__author',
        queryset=models.Author.objects.all(),
    )

    class Meta:
        model = models.Chapter
        fields = ['id', 'title', 'chapter_number', 'author']
class AnimalFilter(FilterSet):
    breed = RelatedFilter(
        BreedFilter,
        name='breed',
        queryset=models.Breed.objects.all(),
    )

    class Meta:
        model = models.Animal
        fields = {
            'id': DEFAULT_NUMERIC_FILTER_OPERATORS,
            'breed': DEFAULT_NUMERIC_FILTER_OPERATORS,
            'name': DEFAULT_STRING_FILTER_OPERATORS,
        }
class BreedFilter(FilterSet):
    species = RelatedFilter(
        SpeciesFilter,
        name='species',
        queryset=models.Species.objects.all(),
    )

    class Meta:
        model = models.Breed
        fields = {
            'id': DEFAULT_NUMERIC_FILTER_OPERATORS,
            'species': DEFAULT_NUMERIC_FILTER_OPERATORS,
            'name': DEFAULT_STRING_FILTER_OPERATORS,
        }
Exemple #10
0
class TuneFilter(FilterSet):

    uploader = RelatedFilter(UserFilter,
                             field_name="uploader",
                             queryset=User.objects.all())

    class Meta:
        model = Tune
        fields = {
            "album": ["icontains", "contains", "exact", "iexact"],
            "artist": ["icontains", "contains", "exact", "iexact"],
            "name": ["icontains", "contains", "exact", "iexact"],
            "length": ["gt", "gte", "lt", "lte", "exact"],
        }
Exemple #11
0
def get_change_attachment_filter(model, change_filter):
    if model._filterset:  # noqa: protected-access
        return import_string(model._filterset)  # noqa: protected-access

    meta = type('Meta', (BaseChangeAttachmentFilter.Meta, ), {'model': model})
    pk_field_name = model._meta.pk.name  # noqa: protected-access
    change_model = change_filter.Meta.model
    attrs = {
        'Meta': meta,
        'change': RelatedFilter(change_filter,
                                queryset=change_model.objects.all()),
        pk_field_name: AutoFilter(lookups=UID_LOOKUPS)
    }
    name = f'{model._meta.object_name}Filter'  # noqa: protected-access
    return type(name, (BaseChangeAttachmentFilter, ), attrs)
Exemple #12
0
def get_change_filter(model, orig_viewset):
    if model._filterset:  # noqa: protected-access
        return import_string(model._filterset)  # noqa: protected-access

    documented_model = orig_viewset.serializer_class.Meta.model
    documented_field = model._documented_model_field  # noqa: protected-access
    documented_filter = RelatedFilter(getattr(orig_viewset, 'filterset_class',
                                              orig_viewset.filterset_class),
                                      queryset=documented_model.objects.all())
    meta = type('Meta', (BaseChangeFilter.Meta, ), {'model': model})
    pk_field_name = model._meta.pk.name  # noqa: protected-access
    attrs = {
        documented_field: documented_filter,
        'Meta': meta,
        pk_field_name: AutoFilter(lookups=UID_LOOKUPS)
    }
    name = f'{model._meta.object_name}Filter'  # noqa: protected-access
    return type(name, (BaseChangeFilter, ), attrs)
Exemple #13
0
class EquipmentDataFieldFilter(FilterSet):
    """EquipmentDataFieldFilter."""

    equipment_general_type = \
        RelatedFilter(
            queryset=EquipmentGeneralType.objects.all(),
            filterset=EquipmentGeneralTypeFilter)

    equipment_data_field_type = \
        RelatedFilter(
            queryset=EquipmentDataFieldType.objects.all(),
            filterset=EquipmentDataFieldTypeFilter)

    data_type = \
        RelatedFilter(
            queryset=LogicalDataType.objects.all(),
            filterset=DataTypeFilter)

    numeric_measurement_unit = \
        RelatedFilter(
            queryset=NumericMeasurementUnit.objects.all(),
            filterset=NumericMeasurementUnitFilter)

    equipment_unique_types = \
        RelatedFilter(
            queryset=EquipmentUniqueType.objects.all(),
            filterset='EquipmentUniqueTypeFilter')

    class Meta:
        """EquipmentDataFieldFilter metadata."""

        model = EquipmentDataField

        fields = dict(name=[
            'exact', 'iexact', 'in', 'contains', 'icontains', 'startswith',
            'istartswith', 'endswith', 'iendswith', 'regex', 'iregex'
        ],
                      lower_numeric_null=[
                          'exact', 'gt', 'gte', 'lt', 'lte', 'in', 'contains',
                          'startswith', 'endswith', 'range'
                      ],
                      upper_numeric_null=[
                          'exact', 'gt', 'gte', 'lt', 'lte', 'in', 'contains',
                          'startswith', 'endswith', 'range'
                      ],
                      min_val=[
                          'exact', 'gt', 'gte', 'lt', 'lte', 'in', 'contains',
                          'startswith', 'endswith', 'range', 'isnull'
                      ],
                      max_val=[
                          'exact', 'gt', 'gte', 'lt', 'lte', 'in', 'contains',
                          'startswith', 'endswith', 'range', 'isnull'
                      ],
                      description='__all__')

        filter_overrides = {
            JSONField:
            dict(filter_class=CharFilter
                 # 'extra': lambda f: {'lookup_expr': 'icontains'}
                 )
        }
Exemple #14
0
class EquipmentInstanceAlarmPeriodFilter(FilterSet):
    """EquipmentInstanceAlarmPeriodFilter."""

    equipment_instance = \
        RelatedFilter(
            queryset=EquipmentInstance.objects.all(),
            filterset=EquipmentInstanceFilter)

    alarm_type = \
        RelatedFilter(
            queryset=EquipmentProblemType.objects.all(),
            filterset=EquipmentProblemTypeFilter)

    class Meta:
        """Metadata."""

        model = EquipmentInstanceAlarmPeriod

        fields = dict(
            from_utc_date_time=[
                'exact',   # 'iexact',
                'gt', 'gte', 'lt', 'lte',
                'in',
                'contains',   # 'icontains'
                'startswith',   # 'istartswith'
                'endswith',   # 'iendswith',
                'range',
                'isnull',
                'year',   # 'year__iexact'
                'year__gt', 'year__gte', 'year__lt', 'year__lte',
                'year__in',
                'year__range',
                'month',   # 'month__iexact',
                'month__gt', 'month__gte', 'month__lt', 'month__lte',
                'month__in',
                'month__range',
            ],

            to_utc_date_time=[
                'exact',   # 'iexact',
                'gt', 'gte', 'lt', 'lte',
                'in',
                'contains',   # 'icontains'
                'startswith',   # 'istartswith'
                'endswith',   # 'iendswith',
                'range',
                'isnull',
                'year',   # 'year__iexact'
                'year__gt', 'year__gte', 'year__lt', 'year__lte',
                'year__in',
                'year__range',
                'month',   # 'month__iexact',
                'month__gt', 'month__gte', 'month__lt', 'month__lte',
                'month__in',
                'month__range',
            ],

            duration_in_days=[
                'exact',   # 'iexact',
                'gt', 'gte', 'lt', 'lte',
                'in',
                'contains',   # 'icontains',
                'startswith',   # 'istartswith',
                'endswith',   # 'iendswith',
                'range',
            ],

            has_associated_equipment_instance_alert_periods=['exact'],

            has_associated_equipment_instance_problem_diagnoses=['exact'])
Exemple #15
0
class EquipmentInstanceAlertPeriodFilter(FilterSet):
    """EquipmentInstanceAlertPeriodFilter."""

    equipment_unique_type_group = \
        RelatedFilter(
            queryset=EquipmentUniqueTypeGroup.objects.all(),
            filterset=EquipmentUniqueTypeGroupFilter)

    equipment_instance = \
        RelatedFilter(
            queryset=EquipmentInstance.objects.all(),
            filterset=EquipmentInstanceFilter)

    diagnosis_status = \
        RelatedFilter(
            queryset=AlertDiagnosisStatus.objects.all(),
            filterset=AlertDiagnosisStatusFilter)

    class Meta:
        """Metadata."""

        model = EquipmentInstanceAlertPeriod

        fields = dict(
            risk_score_name=[
                'exact', 'iexact',
                'in',
                'contains', 'icontains',
                'startswith', 'istartswith', 'endswith', 'iendswith',
            ],

            threshold=[
                'exact',   # 'iexact',
                'gt', 'gte', 'lt', 'lte',
                'in',
                'contains',   # 'icontains',
                'startswith',   # 'istartswith',
                'endswith',   # 'iendswith',
                'range',
            ],

            from_date=[
                'exact',   # 'iexact',
                'gt', 'gte', 'lt', 'lte',
                'in',
                'contains',   # 'icontains'
                'startswith',   # 'istartswith'
                'endswith',   # 'iendswith',
                'range',
                'isnull',
                'year',   # 'year__iexact'
                'year__gt', 'year__gte', 'year__lt', 'year__lte',
                'year__in',
                'year__range',
                'month',   # 'month__iexact',
                'month__gt', 'month__gte', 'month__lt', 'month__lte',
                'month__in',
                'month__range',
            ],

            to_date=[
                'exact',   # 'iexact',
                'gt', 'gte', 'lt', 'lte',
                'in',
                'contains',   # 'icontains'
                'startswith',   # 'istartswith'
                'endswith',   # 'iendswith',
                'range',
                'isnull',
                'year',   # 'year__iexact'
                'year__gt', 'year__gte', 'year__lt', 'year__lte',
                'year__in',
                'year__range',
                'month',   # 'month__iexact',
                'month__gt', 'month__gte', 'month__lt', 'month__lte',
                'month__in',
                'month__range',
            ],

            duration=[
                'exact',   # 'iexact',
                'gt', 'gte', 'lt', 'lte',
                'in',
                'contains',   # 'icontains',
                'startswith',   # 'istartswith',
                'endswith',   # 'iendswith',
                'range',
            ],

            cumulative_excess_risk_score=[
                'exact',   # 'iexact',
                'gt', 'gte', 'lt', 'lte',
                'in',
                'contains',   # 'icontains',
                'startswith',   # 'istartswith',
                'endswith',   # 'iendswith',
                'range',
            ],

            approx_average_risk_score=[
                'exact',   # 'iexact',
                'gt', 'gte', 'lt', 'lte',
                'in',
                'contains',   # 'icontains',
                'startswith',   # 'istartswith',
                'endswith',   # 'iendswith',
                'range',
            ],

            last_risk_score=[
                'exact',   # 'iexact',
                'gt', 'gte', 'lt', 'lte',
                'in',
                'contains',   # 'icontains',
                'startswith',   # 'istartswith',
                'endswith',   # 'iendswith',
                'range',
            ],

            ongoing=['exact'],

            has_associated_equipment_instance_alarm_periods=['exact'],

            has_associated_equipment_instance_problem_diagnoses=['exact'])