Exemple #1
0
class RelationshipFilterSet(BaseFilterSet):

    source_type = ContentTypeMultipleChoiceFilter(choices=FeatureQuery("relationships").get_choices, conjoined=False)
    destination_type = ContentTypeMultipleChoiceFilter(
        choices=FeatureQuery("relationships").get_choices, conjoined=False
    )

    class Meta:
        model = Relationship
        fields = ["id", "name", "type", "source_type", "destination_type"]
Exemple #2
0
class RelationshipAssociationFilterSet(BaseFilterSet):

    relationship = django_filters.ModelMultipleChoiceFilter(
        field_name="relationship__slug",
        queryset=Relationship.objects.all(),
        to_field_name="slug",
        label="Relationship (slug)",
    )
    source_type = ContentTypeMultipleChoiceFilter(choices=FeatureQuery("relationships").get_choices, conjoined=False)
    destination_type = ContentTypeMultipleChoiceFilter(
        choices=FeatureQuery("relationships").get_choices, conjoined=False
    )

    class Meta:
        model = RelationshipAssociation
        fields = ["id", "relationship", "source_type", "source_id", "destination_type", "destination_id"]
Exemple #3
0
class StatusFilterSet(BaseFilterSet, CreatedUpdatedFilterSet, CustomFieldFilterSet):
    """API filter for filtering custom status object fields."""

    q = django_filters.CharFilter(
        method="search",
        label="Search",
    )
    content_types = ContentTypeMultipleChoiceFilter(
        choices=FeatureQuery("statuses").get_choices,
    )

    class Meta:
        model = Status
        fields = [
            "id",
            "content_types",
            "color",
            "name",
            "slug",
            "created",
            "last_updated",
        ]

    def search(self, queryset, name, value):
        if not value.strip():
            return queryset
        return queryset.filter(
            Q(name__icontains=value) | Q(slug__icontains=value) | Q(content_types__model__icontains=value)
        ).distinct()
Exemple #4
0
class WebhookFilterSet(BaseFilterSet):
    q = django_filters.CharFilter(
        method="search",
        label="Search",
    )
    content_types = ContentTypeMultipleChoiceFilter(
        choices=FeatureQuery("webhooks").get_choices,
    )

    class Meta:
        model = Webhook
        fields = [
            "name",
            "payload_url",
            "enabled",
            "content_types",
            "type_create",
            "type_update",
            "type_delete",
        ]

    def search(self, queryset, name, value):
        if not value.strip():
            return queryset
        return queryset.filter(
            Q(name__icontains=value)
            | Q(payload_url__icontains=value)
            | Q(additional_headers__icontains=value)
            | Q(body_template__icontains=value)
        )
Exemple #5
0
class TagFilterSet(NautobotFilterSet):
    q = SearchFilter(filter_predicates={
        "name": "icontains",
        "slug": "icontains",
        "content_types__model": "icontains",
    }, )
    content_types = ContentTypeMultipleChoiceFilter(
        choices=TaggableClassesQuery().get_choices, )

    class Meta:
        model = Tag
        fields = ["id", "name", "slug", "color", "content_types"]
Exemple #6
0
class DynamicGroupFilterSet(NautobotFilterSet):
    q = SearchFilter(filter_predicates={
        "name": "icontains",
        "slug": "icontains",
        "description": "icontains",
        "content_type__app_label": "icontains",
        "content_type__model": "icontains",
    }, )
    content_type = ContentTypeMultipleChoiceFilter(
        choices=FeatureQuery("dynamic_groups").get_choices, conjoined=False)

    class Meta:
        model = DynamicGroup
        fields = ("id", "name", "slug", "description")
Exemple #7
0
class CustomFieldFilterSet(BaseFilterSet):
    q = SearchFilter(filter_predicates={
        "name": "icontains",
        "label": "icontains",
        "description": "icontains",
    }, )
    content_types = ContentTypeMultipleChoiceFilter(
        choices=FeatureQuery("custom_fields").get_choices, )

    class Meta:
        model = CustomField
        fields = [
            "id", "content_types", "name", "required", "filter_logic", "weight"
        ]
Exemple #8
0
class CustomFieldFilterSet(BaseFilterSet):
    q = django_filters.CharFilter(
        method="search",
        label="Search",
    )
    content_types = ContentTypeMultipleChoiceFilter(
        choices=FeatureQuery("custom_fields").get_choices,
    )

    class Meta:
        model = CustomField
        fields = ["id", "content_types", "name", "required", "filter_logic", "weight"]

    def search(self, queryset, name, value):
        if not value.strip():
            return queryset
        return queryset.filter(Q(name__icontains=value) | Q(label__icontains=value) | Q(description__icontains=value))
Exemple #9
0
class WebhookFilterSet(BaseFilterSet):
    q = SearchFilter(filter_predicates={
        "name": "icontains",
        "payload_url": "icontains",
        "additional_headers": "icontains",
        "body_template": "icontains",
    }, )
    content_types = ContentTypeMultipleChoiceFilter(
        choices=FeatureQuery("webhooks").get_choices, )

    class Meta:
        model = Webhook
        fields = [
            "name",
            "payload_url",
            "enabled",
            "content_types",
            "type_create",
            "type_update",
            "type_delete",
        ]
Exemple #10
0
class StatusFilterSet(NautobotFilterSet):
    """API filter for filtering custom status object fields."""

    q = SearchFilter(filter_predicates={
        "name": "icontains",
        "slug": "icontains",
        "content_types__model": "icontains",
    }, )
    content_types = ContentTypeMultipleChoiceFilter(
        choices=FeatureQuery("statuses").get_choices, )

    class Meta:
        model = Status
        fields = [
            "id",
            "content_types",
            "color",
            "name",
            "slug",
            "created",
            "last_updated",
        ]