Ejemplo n.º 1
0
class ImageAttachmentFilterSet(BaseFilterSet):
    created = django_filters.DateTimeFilter()
    content_type = ContentTypeFilter()

    class Meta:
        model = ImageAttachment
        fields = ['id', 'content_type_id', 'object_id', 'name']
Ejemplo n.º 2
0
class JournalEntryFilterSet(ChangeLoggedModelFilterSet):
    q = django_filters.CharFilter(
        method='search',
        label='Search',
    )
    created = django_filters.DateTimeFromToRangeFilter()
    assigned_object_type = ContentTypeFilter()
    created_by_id = django_filters.ModelMultipleChoiceFilter(
        queryset=User.objects.all(),
        label='User (ID)',
    )
    created_by = django_filters.ModelMultipleChoiceFilter(
        field_name='created_by__username',
        queryset=User.objects.all(),
        to_field_name='username',
        label='User (name)',
    )
    kind = django_filters.MultipleChoiceFilter(choices=JournalEntryKindChoices)

    class Meta:
        model = JournalEntry
        fields = [
            'id', 'assigned_object_type_id', 'assigned_object_id', 'created',
            'kind'
        ]

    def search(self, queryset, name, value):
        if not value.strip():
            return queryset
        return queryset.filter(comments__icontains=value)
Ejemplo n.º 3
0
class VLANGroupFilterSet(BaseFilterSet, NameSlugSearchFilterSet):
    scope_type = ContentTypeFilter()
    region = django_filters.NumberFilter(
        method='filter_scope'
    )
    sitegroup = django_filters.NumberFilter(
        method='filter_scope'
    )
    site = django_filters.NumberFilter(
        method='filter_scope'
    )
    location = django_filters.NumberFilter(
        method='filter_scope'
    )
    rack = django_filters.NumberFilter(
        method='filter_scope'
    )
    clustergroup = django_filters.NumberFilter(
        method='filter_scope'
    )
    cluster = django_filters.NumberFilter(
        method='filter_scope'
    )

    class Meta:
        model = VLANGroup
        fields = ['id', 'name', 'slug', 'description', 'scope_id']

    def filter_scope(self, queryset, name, value):
        return queryset.filter(
            scope_type=ContentType.objects.get(model=name),
            scope_id=value
        )
Ejemplo n.º 4
0
class ObjectChangeFilterSet(BaseFilterSet):
    q = django_filters.CharFilter(
        method='search',
        label='Search',
    )
    time = django_filters.DateTimeFromToRangeFilter()
    changed_object_type = ContentTypeFilter()
    user_id = django_filters.ModelMultipleChoiceFilter(
        queryset=User.objects.all(),
        label='User (ID)',
    )
    user = django_filters.ModelMultipleChoiceFilter(
        field_name='user__username',
        queryset=User.objects.all(),
        to_field_name='username',
        label='User name',
    )

    class Meta:
        model = ObjectChange
        fields = [
            'id', 'user', 'user_name', 'request_id', 'action', 'changed_object_type_id', 'changed_object_id',
            'object_repr',
        ]

    def search(self, queryset, name, value):
        if not value.strip():
            return queryset
        return queryset.filter(
            Q(user_name__icontains=value) |
            Q(object_repr__icontains=value)
        )
Ejemplo n.º 5
0
class WebhookFilterSet(BaseFilterSet):
    q = django_filters.CharFilter(
        method='search',
        label='Search',
    )
    content_types = ContentTypeFilter()
    http_method = django_filters.MultipleChoiceFilter(
        choices=WebhookHttpMethodChoices)

    class Meta:
        model = Webhook
        fields = [
            'id',
            'content_types',
            'name',
            'type_create',
            'type_update',
            'type_delete',
            'payload_url',
            'enabled',
            'http_method',
            'http_content_type',
            'secret',
            'ssl_verification',
            'ca_file_path',
        ]

    def search(self, queryset, name, value):
        if not value.strip():
            return queryset
        return queryset.filter(
            Q(name__icontains=value) | Q(payload_url__icontains=value))
Ejemplo n.º 6
0
class VLANGroupFilterSet(OrganizationalModelFilterSet):
    q = django_filters.CharFilter(
        method='search',
        label='Search',
    )
    scope_type = ContentTypeFilter()
    region = django_filters.NumberFilter(method='filter_scope')
    sitegroup = django_filters.NumberFilter(method='filter_scope')
    site = django_filters.NumberFilter(method='filter_scope')
    location = django_filters.NumberFilter(method='filter_scope')
    rack = django_filters.NumberFilter(method='filter_scope')
    clustergroup = django_filters.NumberFilter(method='filter_scope')
    cluster = django_filters.NumberFilter(method='filter_scope')

    class Meta:
        model = VLANGroup
        fields = ['id', 'name', 'slug', 'description', 'scope_id']

    def search(self, queryset, name, value):
        if not value.strip():
            return queryset
        qs_filter = (Q(name__icontains=value)
                     | Q(description__icontains=value))
        return queryset.filter(qs_filter)

    def filter_scope(self, queryset, name, value):
        return queryset.filter(scope_type=ContentType.objects.get(model=name),
                               scope_id=value)
Ejemplo n.º 7
0
class CustomFieldFilterSet(django_filters.FilterSet):
    content_types = ContentTypeFilter()

    class Meta:
        model = CustomField
        fields = [
            'id', 'content_types', 'name', 'required', 'filter_logic', 'weight'
        ]
Ejemplo n.º 8
0
class CableFilterSet(PrimaryModelFilterSet):
    q = django_filters.CharFilter(
        method='search',
        label='Search',
    )
    termination_a_type = ContentTypeFilter()
    termination_a_id = MultiValueNumberFilter()
    termination_b_type = ContentTypeFilter()
    termination_b_id = MultiValueNumberFilter()
    type = django_filters.MultipleChoiceFilter(choices=CableTypeChoices)
    status = django_filters.MultipleChoiceFilter(choices=CableStatusChoices)
    color = django_filters.MultipleChoiceFilter(choices=ColorChoices)
    device_id = MultiValueNumberFilter(method='filter_device')
    device = MultiValueCharFilter(method='filter_device',
                                  field_name='device__name')
    rack_id = MultiValueNumberFilter(method='filter_device',
                                     field_name='device__rack_id')
    rack = MultiValueNumberFilter(method='filter_device',
                                  field_name='device__rack__name')
    site_id = MultiValueNumberFilter(method='filter_device',
                                     field_name='device__site_id')
    site = MultiValueNumberFilter(method='filter_device',
                                  field_name='device__site__slug')
    tenant_id = MultiValueNumberFilter(method='filter_device',
                                       field_name='device__tenant_id')
    tenant = MultiValueNumberFilter(method='filter_device',
                                    field_name='device__tenant__slug')
    tag = TagFilter()

    class Meta:
        model = Cable
        fields = [
            'id', 'label', 'length', 'length_unit', 'termination_a_id',
            'termination_b_id'
        ]

    def search(self, queryset, name, value):
        if not value.strip():
            return queryset
        return queryset.filter(label__icontains=value)

    def filter_device(self, queryset, name, value):
        queryset = queryset.filter(
            Q(**{'_termination_a_{}__in'.format(name): value})
            | Q(**{'_termination_b_{}__in'.format(name): value}))
        return queryset
Ejemplo n.º 9
0
class WebhookFilterSet(BaseFilterSet):
    content_types = ContentTypeFilter()
    http_method = django_filters.MultipleChoiceFilter(
        choices=WebhookHttpMethodChoices
    )

    class Meta:
        model = Webhook
        fields = [
            'id', 'content_types', 'name', 'type_create', 'type_update', 'type_delete', 'payload_url', 'enabled',
            'http_method', 'http_content_type', 'secret', 'ssl_verification', 'ca_file_path',
        ]
Ejemplo n.º 10
0
class FHRPGroupAssignmentFilterSet(ChangeLoggedModelFilterSet):
    interface_type = ContentTypeFilter()
    group_id = django_filters.ModelMultipleChoiceFilter(
        queryset=FHRPGroup.objects.all(),
        label='Group (ID)',
    )

    class Meta:
        model = FHRPGroupAssignment
        fields = [
            'id', 'group_id', 'interface_type', 'interface_id', 'priority'
        ]
Ejemplo n.º 11
0
class ImageAttachmentFilterSet(BaseFilterSet):
    q = django_filters.CharFilter(
        method='search',
        label='Search',
    )
    created = django_filters.DateTimeFilter()
    content_type = ContentTypeFilter()

    class Meta:
        model = ImageAttachment
        fields = ['id', 'content_type_id', 'object_id', 'name']

    def search(self, queryset, name, value):
        if not value.strip():
            return queryset
        return queryset.filter(name__icontains=value)
Ejemplo n.º 12
0
class CustomFieldFilterSet(BaseFilterSet):
    q = django_filters.CharFilter(
        method='search',
        label='Search',
    )
    content_types = ContentTypeFilter()

    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))
Ejemplo n.º 13
0
class ContactAssignmentFilterSet(ChangeLoggedModelFilterSet):
    content_type = ContentTypeFilter()
    contact_id = django_filters.ModelMultipleChoiceFilter(
        queryset=Contact.objects.all(),
        label='Contact (ID)',
    )
    role_id = django_filters.ModelMultipleChoiceFilter(
        queryset=ContactRole.objects.all(),
        label='Contact role (ID)',
    )
    role = django_filters.ModelMultipleChoiceFilter(
        field_name='role__slug',
        queryset=ContactRole.objects.all(),
        to_field_name='slug',
        label='Contact role (slug)',
    )

    class Meta:
        model = ContactAssignment
        fields = ['id', 'content_type_id', 'object_id', 'priority']
Ejemplo n.º 14
0
class ImageAttachmentFilterSet(BaseFilterSet):
    content_type = ContentTypeFilter()

    class Meta:
        model = ImageAttachment
        fields = ['id', 'content_type_id', 'object_id', 'name']