示例#1
0
class FeedbackFilter(django_filters.FilterSet):
    issue = core_filters.URLFilter(view_name='support-issue-detail',
                                   field_name='issue__uuid')
    issue_uuid = django_filters.UUIDFilter(field_name='issue__uuid')

    user = core_filters.URLFilter(view_name='user-detail',
                                  field_name='issue__caller__uuid')
    user_uuid = django_filters.UUIDFilter(field_name='issue__caller__uuid')

    created_before = django_filters.DateTimeFilter(field_name="created",
                                                   lookup_expr="lte")
    created_after = django_filters.DateTimeFilter(field_name="created",
                                                  lookup_expr="gte")

    evaluation = core_filters.MappedMultipleChoiceFilter(
        choices=[
            (representation, representation)
            for db_value, representation in models.Feedback.Evaluation.CHOICES
        ],
        choice_mappings={
            representation: db_value
            for db_value, representation in models.Feedback.Evaluation.CHOICES
        },
    )

    issue_key = django_filters.CharFilter(field_name='issue__key')
    user_full_name = django_filters.CharFilter(method='filter_by_full_name',
                                               label='User full name contains')

    def filter_by_full_name(self, queryset, name, value):
        return core_filters.filter_by_full_name(queryset, value,
                                                'issue__caller')
示例#2
0
class OrderFilter(django_filters.FilterSet):
    customer = core_filters.URLFilter(
        view_name='customer-detail', field_name='project__customer__uuid'
    )
    customer_uuid = django_filters.UUIDFilter(field_name='project__customer__uuid')
    project = core_filters.URLFilter(
        view_name='project-detail', field_name='project__uuid'
    )
    project_uuid = django_filters.UUIDFilter(field_name='project__uuid')
    state = core_filters.MappedMultipleChoiceFilter(
        choices=[
            (representation, representation)
            for db_value, representation in models.Order.States.CHOICES
        ],
        choice_mappings={
            representation: db_value
            for db_value, representation in models.Order.States.CHOICES
        },
    )
    o = django_filters.OrderingFilter(
        fields=('created', 'approved_at', 'total_cost', 'state')
    )

    class Meta:
        model = models.Order
        fields = []
示例#3
0
class BaseServiceFilter(six.with_metaclass(ServiceFilterMetaclass, django_filters.FilterSet)):
    customer = django_filters.UUIDFilter(name='customer__uuid')
    name = django_filters.CharFilter(name='settings__name', lookup_expr='icontains')
    name_exact = django_filters.CharFilter(name='settings__name', lookup_expr='exact')
    project = core_filters.URLFilter(view_name='project-detail', name='projects__uuid', distinct=True)
    project_uuid = django_filters.UUIDFilter(name='projects__uuid', distinct=True)
    settings = core_filters.URLFilter(view_name='servicesettings-detail', name='settings__uuid', distinct=True)
    shared = django_filters.BooleanFilter(name='settings__shared', distinct=True, widget=BooleanWidget)
    type = ServiceTypeFilter(name='settings__type')
    tag = django_filters.ModelMultipleChoiceFilter(
        name='settings__tags__name',
        to_field_name='name',
        lookup_expr='in',
        queryset=taggit.models.Tag.objects.all(),
    )
    # rtag - required tag, support for filtration by tags using AND operation
    # ?rtag=t1&rtag=t2 - will filter instances that have both t1 and t2.
    rtag = django_filters.ModelMultipleChoiceFilter(
        name='settings__tags__name',
        to_field_name='name',
        queryset=taggit.models.Tag.objects.all(),
        conjoined=True,
    )

    class Meta(object):
        model = models.Service
        fields = ('name', 'name_exact', 'project_uuid',
                  'customer', 'project', 'settings', 'shared', 'type', 'tag', 'rtag')
示例#4
0
class SnapshotFilter(structure_filters.BaseResourceFilter):
    source_volume_uuid = django_filters.UUIDFilter(field_name='source_volume__uuid')
    source_volume = core_filters.URLFilter(
        view_name='openstacktenant-volume-detail', field_name='source_volume__uuid'
    )
    backup_uuid = django_filters.UUIDFilter(field_name='backups__uuid')
    backup = core_filters.URLFilter(
        view_name='openstacktenant-backup-detail', field_name='backups__uuid'
    )

    snapshot_schedule = core_filters.URLFilter(
        view_name='openstacktenant-snapshot-schedule-detail',
        field_name='snapshot_schedule__uuid',
    )
    snapshot_schedule_uuid = django_filters.UUIDFilter(
        field_name='snapshot_schedule__uuid'
    )

    class Meta(structure_filters.BaseResourceFilter.Meta):
        model = models.Snapshot
        fields = structure_filters.BaseResourceFilter.Meta.fields + ('runtime_state',)

    ORDERING_FIELDS = structure_filters.BaseResourceFilter.ORDERING_FIELDS + (
        ('source_volume__name', 'source_volume_name'),
        ('size', 'size'),
    )
示例#5
0
class OrderItemFilter(django_filters.FilterSet):
    offering = core_filters.URLFilter(view_name='marketplace-offering-detail',
                                      name='offering__uuid')
    offering_uuid = django_filters.UUIDFilter(name='offering__uuid')
    project_uuid = django_filters.UUIDFilter(name='order__project__uuid')
    category_uuid = django_filters.UUIDFilter(name='offering__category__uuid')
    provider_uuid = django_filters.UUIDFilter(name='offering__customer__uuid')
    customer_uuid = django_filters.UUIDFilter(
        name='order__project__customer__uuid')
    state = core_filters.MappedMultipleChoiceFilter(
        choices=[
            (representation, representation)
            for db_value, representation in models.OrderItem.States.CHOICES
        ],
        choice_mappings={
            representation: db_value
            for db_value, representation in models.OrderItem.States.CHOICES
        },
    )

    order = core_filters.URLFilter(view_name='marketplace-order-detail',
                                   name='order__uuid')
    order_uuid = django_filters.UUIDFilter(name='order__uuid')

    class Meta(object):
        model = models.OrderItem
        fields = []
示例#6
0
class OfferingFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(lookup_expr='icontains')
    description = django_filters.CharFilter(lookup_expr='icontains')
    type = django_filters.ChoiceFilter(
        choices=[(item, item)
                 for item in settings.WALDUR_SUPPORT['OFFERINGS'].keys()])
    issue = core_filters.URLFilter(view_name='support-issue-detail',
                                   name='issue__uuid')
    issue_uuid = django_filters.UUIDFilter(name='issue__uuid')
    project = core_filters.URLFilter(view_name='project-detail',
                                     name='project__uuid')
    project_uuid = django_filters.UUIDFilter(name='project__uuid')
    state = core_filters.MappedMultipleChoiceFilter(
        choices=[(representation, representation)
                 for db_value, representation in models.Offering.States.CHOICES
                 ],
        choice_mappings={
            representation: db_value
            for db_value, representation in models.Offering.States.CHOICES
        },
    )

    o = django_filters.OrderingFilter(fields=('created', 'modified', 'state'))

    class Meta(object):
        model = models.Offering
        fields = ('name', 'description', 'type', 'issue', 'issue_uuid',
                  'project', 'project_uuid', 'state')
示例#7
0
class IssueFilter(django_filters.FilterSet):
    summary = django_filters.CharFilter(lookup_expr='icontains')

    customer = core_filters.URLFilter(
        view_name='customer-detail', field_name='customer__uuid'
    )
    customer_uuid = django_filters.UUIDFilter(field_name='customer__uuid')

    project = core_filters.URLFilter(
        view_name='project-detail', field_name='project__uuid'
    )
    project_uuid = django_filters.UUIDFilter(field_name='project__uuid')

    reporter_name = django_filters.CharFilter(
        lookup_expr='icontains', field_name='reporter__name'
    )
    reporter = core_filters.URLFilter(
        view_name='support-user-detail', field_name='reporter__uuid'
    )

    caller_full_name = django_filters.CharFilter(
        lookup_expr='icontains', field_name='caller__full_name'
    )
    caller = core_filters.URLFilter(view_name='user-detail', field_name='caller__uuid')

    assignee_name = django_filters.CharFilter(
        lookup_expr='icontains', field_name='assignee__name'
    )
    assignee = core_filters.URLFilter(
        view_name='support-user-detail', field_name='assignee__uuid'
    )

    o = django_filters.OrderingFilter(
        fields=(
            ('created', 'created'),
            ('modified', 'modified'),
            ('type', 'type'),
            ('key', 'key'),
            ('status', 'status'),
            ('priority', 'priority'),
            ('summary', 'summary'),
            ('customer__name', 'customer_name'),
            ('project__name', 'project_name'),
            ('caller__full_name', 'caller_full_name'),
            ('reporter__name', 'reporter_name'),
            ('assignee__name', 'assignee_name'),
        )
    )

    class Meta:
        model = models.Issue
        fields = [
            'key',
            'type',
            'status',
        ]
示例#8
0
class SubNetFilter(structure_filters.BaseResourceFilter):
    tenant_uuid = django_filters.UUIDFilter(name='network__tenant__uuid')
    tenant = core_filters.URLFilter(view_name='openstack-tenant-detail',
                                    name='network__tenant__uuid')
    network_uuid = django_filters.UUIDFilter(name='network__uuid')
    network = core_filters.URLFilter(view_name='openstack-network-detail',
                                     name='network__uuid')

    class Meta(structure_filters.BaseResourceFilter.Meta):
        model = models.SubNet
示例#9
0
class AllocationUserUsageFilter(django_filters.FilterSet):
    allocation = core_filters.URLFilter(
        view_name='slurm-allocation-detail',
        field_name='allocation__uuid',
    )
    allocation_uuid = django_filters.UUIDFilter(field_name='allocation__uuid')

    user = core_filters.URLFilter(view_name='user-detail',
                                  field_name='user__uuid')
    user_uuid = django_filters.UUIDFilter(field_name='user__uuid')
示例#10
0
class PortFilter(structure_filters.BaseResourceFilter):
    class Meta(structure_filters.BaseResourceFilter.Meta):
        model = models.Port

    vm = core_filters.URLFilter(view_name='opennebula-virtual-machine-detail',
                                field_name='vm__uuid')
    vm_uuid = django_filters.UUIDFilter(field_name='vm__uuid')

    network = core_filters.URLFilter(view_name='opennebula-network-detail',
                                     field_name='network__uuid')
    network_uuid = django_filters.UUIDFilter(field_name='network__uuid')
示例#11
0
class ExpertBidFilter(django_filters.FilterSet):
    request = core_filters.URLFilter(view_name='expert-request-detail',
                                     name='request__uuid')
    request_uuid = django_filters.UUIDFilter(name='request__uuid')
    customer = core_filters.URLFilter(view_name='customer-detail',
                                      name='team__customer__uuid')
    customer_uuid = django_filters.UUIDFilter(name='team__customer__uuid')

    class Meta(object):
        model = models.ExpertBid
        fields = []
示例#12
0
class AllocationUsageFilter(django_filters.FilterSet):
    user = core_filters.URLFilter(view_name='user-detail', name='user__uuid')
    user_uuid = django_filters.UUIDFilter(name='user__uuid')

    allocation = core_filters.URLFilter(view_name='slurm-allocation-detail',
                                        name='allocation__uuid')
    allocation_uuid = django_filters.UUIDFilter(name='allocation__uuid')

    class Meta(object):
        model = models.AllocationUsage
        fields = ('year', 'month')
示例#13
0
class ItemFilter(django_filters.FilterSet):
    offering = core_filters.URLFilter(view_name='marketplace-offering-detail',
                                      name='offering__uuid')
    offering_uuid = django_filters.UUIDFilter(name='offering__uuid')

    order = core_filters.URLFilter(view_name='marketplace-order-detail',
                                   name='order__uuid')
    order_uuid = django_filters.UUIDFilter(name='order__uuid')

    class Meta(object):
        model = models.OrderItem
        fields = []
示例#14
0
class BackupFilter(structure_filters.BaseResourceFilter):
    instance = core_filters.URLFilter(
        view_name='openstacktenant-instance-detail', name='instance__uuid')
    instance_uuid = django_filters.UUIDFilter(name='instance__uuid')
    backup_schedule = core_filters.URLFilter(
        view_name='openstacktenant-backup-schedule-detail',
        name='backup_schedule__uuid')
    backup_schedule_uuid = django_filters.UUIDFilter(
        name='backup_schedule__uuid')

    class Meta(structure_filters.BaseResourceFilter.Meta):
        model = models.Backup
示例#15
0
class VolumeFilter(structure_filters.BaseResourceFilter):
    instance = core_filters.URLFilter(
        view_name='openstacktenant-instance-detail', field_name='instance__uuid'
    )
    instance_uuid = django_filters.UUIDFilter(field_name='instance__uuid')

    snapshot = core_filters.URLFilter(
        view_name='openstacktenant-snapshot-detail',
        field_name='restoration__snapshot__uuid',
    )
    snapshot_uuid = django_filters.UUIDFilter(field_name='restoration__snapshot__uuid')

    availability_zone_name = django_filters.CharFilter(
        field_name='availability_zone__name'
    )

    attach_instance_uuid = django_filters.UUIDFilter(method='filter_attach_instance')

    def filter_attach_instance(self, queryset, name, value):
        """
        This filter is used by volume attachment dialog for instance.
        It allows to filter out volumes that could be attached to the given instance.
        """
        try:
            instance = models.Instance.objects.get(uuid=value)
        except models.Volume.DoesNotExist:
            return queryset.none()

        queryset = queryset.filter(
            service_settings=instance.service_settings, project=instance.project,
        ).exclude(instance=instance)

        zones_map = get_valid_availability_zones(instance)
        if instance.availability_zone and zones_map:
            zone_names = {
                nova_zone
                for (nova_zone, cinder_zone) in zones_map.items()
                if cinder_zone == instance.availability_zone.name
            }
            nova_zones = models.InstanceAvailabilityZone.objects.filter(
                settings=instance.service_settings, name__in=zone_names, available=True,
            )
            queryset = queryset.filter(availability_zone__in=nova_zones)
        return queryset

    class Meta(structure_filters.BaseResourceFilter.Meta):
        model = models.Volume
        fields = structure_filters.BaseResourceFilter.Meta.fields + ('runtime_state',)

    ORDERING_FIELDS = structure_filters.BaseResourceFilter.ORDERING_FIELDS + (
        ('instance__name', 'instance_name'),
        ('size', 'size'),
    )
示例#16
0
class CartItemFilter(django_filters.FilterSet):
    customer = core_filters.URLFilter(view_name='customer-detail',
                                      field_name='project__customer__uuid')
    customer_uuid = django_filters.UUIDFilter(
        field_name='project__customer__uuid')
    project = core_filters.URLFilter(view_name='project-detail',
                                     field_name='project__uuid')
    project_uuid = django_filters.UUIDFilter(field_name='project__uuid')

    class Meta:
        model = models.CartItem
        fields = []
示例#17
0
class ResourceCreateRequestFilter(django_filters.FilterSet):
    state = ReviewStateFilter()
    offering = core_filters.URLFilter(
        view_name='marketplace-offering-detail',
        field_name='offering__uuid',
    )
    offering_uuid = django_filters.UUIDFilter(field_name='offering__uuid')
    service_provider = core_filters.URLFilter(
        view_name='customer-detail',
        field_name='offering__customer__uuid',
    )
    service_provider_uuid = django_filters.UUIDFilter(
        field_name='offering__customer__uuid')
示例#18
0
class PackageTemplateFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(lookup_expr='icontains')
    service_settings = core_filters.URLFilter(
        view_name='servicesettings-detail', name='service_settings__uuid')
    service_settings_uuid = django_filters.UUIDFilter(name='service_settings__uuid')
    openstack_package_service_settings = core_filters.URLFilter(
        view_name='servicesettings-detail', name='openstack_packages__service_settings__uuid')
    openstack_package_service_settings_uuid = django_filters.UUIDFilter(
        name='openstack_packages__service_settings__uuid')

    class Meta(object):
        model = models.PackageTemplate
        fields = ['archived']
示例#19
0
class DeploymentPlanFilter(django_filters.FilterSet):
    project = core_filters.URLFilter(view_name='project-detail',
                                     name='project__uuid')
    project_uuid = django_filters.UUIDFilter(name='project__uuid')
    customer = core_filters.URLFilter(view_name='customer-detail',
                                      name='project__customer__uuid')
    customer_uuid = django_filters.UUIDFilter(name='project__customer__uuid')

    o = django_filters.OrderingFilter(fields=('name', 'created'))

    class Meta(object):
        model = models.DeploymentPlan
        fields = ('project', 'project_uuid', 'customer', 'customer_uuid')
示例#20
0
class IssueFilter(django_filters.FilterSet):
    summary = django_filters.CharFilter(lookup_expr='icontains')

    customer = core_filters.URLFilter(view_name='customer-detail',
                                      field_name='customer__uuid')
    customer_uuid = django_filters.UUIDFilter(field_name='customer__uuid')

    project = core_filters.URLFilter(view_name='project-detail',
                                     field_name='project__uuid')
    project_uuid = django_filters.UUIDFilter(field_name='project__uuid')

    reporter_name = django_filters.CharFilter(lookup_expr='icontains',
                                              field_name='reporter__name')
    reporter = core_filters.URLFilter(view_name='support-user-detail',
                                      field_name='reporter__uuid')

    caller_full_name = django_filters.CharFilter(
        method='filter_by_full_name', label='Caller full name contains')
    caller = core_filters.URLFilter(view_name='user-detail',
                                    field_name='caller__uuid')

    assignee_name = django_filters.CharFilter(lookup_expr='icontains',
                                              field_name='assignee__name')
    assignee = core_filters.URLFilter(view_name='support-user-detail',
                                      field_name='assignee__uuid')

    def filter_by_full_name(self, queryset, name, value):
        return core_filters.filter_by_full_name(queryset, value, 'caller')

    o = KeyOrderingFilter(fields=(
        ('created', 'created'),
        ('modified', 'modified'),
        ('type', 'type'),
        ('status', 'status'),
        ('priority', 'priority'),
        ('summary', 'summary'),
        ('customer__name', 'customer_name'),
        ('project__name', 'project_name'),
        ('caller__first_name', 'caller_first_name'),
        ('caller__last_name', 'caller_last_name'),
        ('reporter__name', 'reporter_name'),
        ('assignee__name', 'assignee_name'),
    ))

    class Meta:
        model = models.Issue
        fields = [
            'key',
            'type',
            'status',
        ]
示例#21
0
class OfferingFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(lookup_expr='icontains')
    description = django_filters.CharFilter(lookup_expr='icontains')
    type = django_filters.ModelMultipleChoiceFilter(
        queryset=models.OfferingTemplate.objects.all(),
        to_field_name='name',
        method='offering_template_filter',
    )
    template = django_filters.ModelMultipleChoiceFilter(
        queryset=models.OfferingTemplate.objects.all(),
    )
    issue = core_filters.URLFilter(
        view_name='support-issue-detail', field_name='issue__uuid'
    )
    issue_uuid = django_filters.UUIDFilter(field_name='issue__uuid')
    issue_key = django_filters.CharFilter(field_name='issue__key')
    project = core_filters.URLFilter(
        view_name='project-detail', field_name='project__uuid'
    )
    project_uuid = django_filters.UUIDFilter(field_name='project__uuid')
    state = core_filters.MappedMultipleChoiceFilter(
        choices=[
            (representation, representation)
            for db_value, representation in models.Offering.States.CHOICES
        ],
        choice_mappings={
            representation: db_value
            for db_value, representation in models.Offering.States.CHOICES
        },
    )

    o = django_filters.OrderingFilter(fields=('created', 'modified', 'state'))

    def offering_template_filter(self, queryset, name, value):
        if value:
            return queryset.filter(template__in=value)
        return queryset

    class Meta:
        model = models.Offering
        fields = (
            'name',
            'description',
            'template',
            'issue',
            'issue_uuid',
            'project',
            'project_uuid',
            'state',
        )
示例#22
0
class OrderItemFilter(OfferingFilterMixin, django_filters.FilterSet):
    project_uuid = django_filters.UUIDFilter(field_name='order__project__uuid')
    category_uuid = django_filters.UUIDFilter(
        field_name='offering__category__uuid')
    provider_uuid = django_filters.UUIDFilter(
        field_name='offering__customer__uuid')
    customer_uuid = django_filters.UUIDFilter(
        field_name='order__project__customer__uuid')
    service_manager_uuid = django_filters.UUIDFilter(
        method='filter_service_manager')
    state = core_filters.MappedMultipleChoiceFilter(
        choices=[
            (representation, representation)
            for db_value, representation in models.OrderItem.States.CHOICES
        ],
        choice_mappings={
            representation: db_value
            for db_value, representation in models.OrderItem.States.CHOICES
        },
    )
    type = core_filters.MappedMultipleChoiceFilter(
        choices=[(representation, representation)
                 for db_value, representation in models.OrderItem.Types.CHOICES
                 ],
        choice_mappings={
            representation: db_value
            for db_value, representation in models.OrderItem.Types.CHOICES
        },
    )
    order = core_filters.URLFilter(view_name='marketplace-order-detail',
                                   field_name='order__uuid')
    order_uuid = django_filters.UUIDFilter(field_name='order__uuid')

    resource = core_filters.URLFilter(view_name='marketplace-resource-detail',
                                      field_name='resource__uuid')
    resource_uuid = django_filters.UUIDFilter(field_name='resource__uuid')

    o = django_filters.OrderingFilter(fields=('created', ))

    class Meta:
        model = models.OrderItem
        fields = []

    def filter_service_manager(self, queryset, name, value):
        return queryset.filter(
            offering__shared=True,
            offering__permissions__user__uuid=value,
            offering__permissions__is_active=True,
        )
示例#23
0
class IssueFilter(django_filters.FilterSet):
    created_before = django_filters.IsoDateTimeFilter(field_name="created", lookup_expr="lte")
    created_after = django_filters.IsoDateTimeFilter(field_name="created", lookup_expr="gte")
    summary = django_filters.CharFilter(lookup_expr='icontains')
    description = django_filters.CharFilter(lookup_expr='icontains')
    jira_project = core_filters.URLFilter(view_name='project-detail', field_name='project__uuid')
    jira_project_uuid = django_filters.UUIDFilter(field_name='project__uuid')
    priority_name = django_filters.ModelMultipleChoiceFilter(
        field_name='priority__name',
        to_field_name='name',
        queryset=models.Priority.objects.all()
    )
    project = core_filters.URLFilter(view_name='project-detail', field_name='project__service_project_link__project__uuid')
    project_uuid = django_filters.UUIDFilter(field_name='project__service_project_link__project__uuid')
    type_name = django_filters.CharFilter(field_name='type__name')
    updated_before = django_filters.IsoDateTimeFilter(field_name="updated", lookup_expr="lte")
    updated_after = django_filters.IsoDateTimeFilter(field_name="updated", lookup_expr="gte")
    user_uuid = django_filters.UUIDFilter(field_name='user__uuid')
    key = django_filters.CharFilter(field_name='backend_id')
    status = core_filters.LooseMultipleChoiceFilter()
    sla_ttr_breached = django_filters.BooleanFilter(field_name='resolution_sla', method='filter_resolution_sla',
                                                    widget=django_filters.widgets.BooleanWidget())

    def filter_resolution_sla(self, queryset, name, value):
        if value:
            return queryset.exclude(Q(resolution_sla__gte=0) | Q(resolution_sla__isnull=True))
        else:
            return queryset.filter(resolution_sla__gte=0)

    class Meta:
        model = models.Issue
        fields = [
            'description',
            'key',
            'status',
            'summary',
            'user_uuid',
            'creator_name',
            'assignee_name',
            'reporter_name',
        ]
        order_by = [
            'created',
            'updated',
            # desc
            '-created',
            '-updated',
        ]
示例#24
0
class SQLDatabaseFilter(BaseResourceGroupFilter):
    class Meta(BaseResourceGroupFilter.Meta):
        model = models.SQLDatabase

    server = core_filters.URLFilter(view_name='azure-server-detail',
                                    field_name='server__uuid')
    server_uuid = django_filters.UUIDFilter(field_name='server__uuid')
示例#25
0
class InvitationCustomerFilterBackend(DjangoFilterBackend):
    url_filter = core_filters.URLFilter(
        view_name='customer-detail',
        name='customer__uuid',
    )

    def filter_queryset(self, request, queryset, view):
        customer_uuid = self.extract_customer_uuid(request)
        if not customer_uuid:
            return queryset

        try:
            uuid.UUID(customer_uuid)
        except ValueError:
            return queryset.none()

        query = Q(customer__uuid=customer_uuid)
        query |= Q(project__customer__uuid=customer_uuid)
        return queryset.filter(query)

    def extract_customer_uuid(self, request):
        if 'customer_url' in request.query_params:
            return self.url_filter.get_uuid(request.query_params['customer_url'])

        if 'customer' in request.query_params:
            return request.query_params['customer']
示例#26
0
class OpenStackServiceProjectLinkFilter(
        structure_filters.BaseServiceProjectLinkFilter):
    service = core_filters.URLFilter(view_name='openstack-detail',
                                     name='service__uuid')

    class Meta(structure_filters.BaseServiceProjectLinkFilter.Meta):
        model = models.OpenStackServiceProjectLink
示例#27
0
class SecurityGroupFilter(structure_filters.BaseResourceFilter):
    tenant_uuid = django_filters.UUIDFilter(name='tenant__uuid')
    tenant = core_filters.URLFilter(view_name='openstack-tenant-detail',
                                    name='tenant__uuid')

    class Meta(structure_filters.BaseResourceFilter.Meta):
        model = models.SecurityGroup
示例#28
0
class NetworkFilter(structure_filters.BaseResourceFilter):
    tenant_uuid = django_filters.UUIDFilter(field_name='tenant__uuid')
    tenant = core_filters.URLFilter(view_name='openstack-tenant-detail',
                                    field_name='tenant__uuid')

    class Meta(structure_filters.BaseResourceFilter.Meta):
        model = models.Network
示例#29
0
class AttachmentFilter(django_filters.FilterSet):
    issue = core_filters.URLFilter(view_name='jira-issues-detail', field_name='issue__uuid')
    issue_uuid = django_filters.UUIDFilter(field_name='issue__uuid')

    class Meta:
        model = models.Attachment
        fields = []
示例#30
0
class UserPermissionFilter(django_filters.FilterSet):
    user = django_filters.UUIDFilter(field_name='user__uuid')
    user_url = core_filters.URLFilter(
        view_name='user-detail',
        field_name='user__uuid',
    )
    username = django_filters.CharFilter(
        field_name='user__username',
        lookup_expr='exact',
    )
    full_name = django_filters.CharFilter(method='filter_by_full_name',
                                          label='User full name contains')
    native_name = django_filters.CharFilter(
        field_name='user__native_name',
        lookup_expr='icontains',
    )

    def filter_by_full_name(self, queryset, name, value):
        return core_filters.filter_by_full_name(queryset, value, 'user')

    o = core_filters.ExtendedOrderingFilter(fields=(
        ('user__username', 'username'),
        (('user__first_name', 'user__last_name'), 'full_name'),
        ('user__native_name', 'native_name'),
        ('user__email', 'email'),
        ('expiration_time', 'expiration_time'),
        ('created', 'created'),
        ('role', 'role'),
    ))