class OrganizationUserFilter(django_filters.FilterSet):
    organization = core_filters.URLFilter(
        view_name='organization-detail',
        name='organization__uuid',
    )

    organization_uuid = django_filters.CharFilter(
        name='organization__uuid',
    )

    user = core_filters.URLFilter(
        view_name='user-detail',
        name='user__uuid',
    )

    user_uuid = django_filters.CharFilter(
        name='user__uuid',
    )

    class Meta(object):
        model = models.OrganizationUser
        fields = [
            'organization',
            'organization_uuid',
            'user',
            'user_uuid',
            'is_approved'
        ]
        order_by = [
            'is_approved',
            # desc
            '-is_approved'
        ]
Esempio n. 2
0
class OpenStackPackageFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(name='tenant__name',
                                     lookup_expr='icontains')
    customer = core_filters.URLFilter(
        view_name='customer-detail',
        name='tenant__service_project_link__project__customer__uuid')
    customer_uuid = django_filters.UUIDFilter(
        name='tenant__service_project_link__project__customer__uuid')
    project = core_filters.URLFilter(
        view_name='project-detail',
        name='tenant__service_project_link__project__uuid')
    project_uuid = django_filters.UUIDFilter(
        name='tenant__service_project_link__project__uuid')
    template = core_filters.URLFilter(view_name='package-template-detail',
                                      name='template__uuid')
    template_uuid = django_filters.UUIDFilter(name='template__uuid')
    tenant = core_filters.URLFilter(view_name='openstack-tenant-detail',
                                    name='tenant__uuid')
    tenant_uuid = django_filters.UUIDFilter(name='tenant__uuid')
    service_settings = core_filters.URLFilter(
        view_name='servicesettings-detail', name='service_settings__uuid')
    service_settings_uuid = django_filters.UUIDFilter(
        name='service_settings__uuid')

    class Meta(object):
        model = models.OpenStackPackage
        fields = '__all__'
Esempio n. 3
0
class ProjectPermissionFilter(django_filters.FilterSet):
    project = django_filters.CharFilter(
        name='group__projectrole__project__uuid',
    )
    project_url = core_filters.URLFilter(
        view_name='project-detail',
        name='group__projectrole__project__uuid',
    )
    user_url = core_filters.URLFilter(
        view_name='user-detail',
        name='user__uuid',
    )
    username = django_filters.CharFilter(
        name='user__username',
        lookup_type='exact',
    )
    full_name = django_filters.CharFilter(
        name='user__full_name',
        lookup_type='icontains',
    )
    native_name = django_filters.CharFilter(
        name='user__native_name',
        lookup_type='icontains',
    )
    role = core_filters.MappedChoiceFilter(
        name='group__projectrole__role_type',
        choices=(
            ('admin', 'Administrator'),
            ('manager', 'Manager'),
            # TODO: Removing this drops support of filtering by numeric codes
            (models.ProjectRole.ADMINISTRATOR, 'Administrator'),
            (models.ProjectRole.MANAGER, 'Manager'),
        ),
        choice_mappings={
            'admin': models.ProjectRole.ADMINISTRATOR,
            'manager': models.ProjectRole.MANAGER,
        },
    )

    class Meta(object):
        model = User.groups.through
        fields = [
            'role',
            'project',
            'username',
            'full_name',
            'native_name',
        ]
        order_by = [
            'user__username',
            'user__full_name',
            'user__native_name',
            # desc
            '-user__username',
            '-user__full_name',
            '-user__native_name',
        ]
Esempio n. 4
0
class CustomerPermissionFilter(django_filters.FilterSet):
    customer = django_filters.CharFilter(
        name='group__customerrole__customer__uuid',
    )
    customer_url = core_filters.URLFilter(
        view_name='customer-detail',
        name='group__customerrole__customer__uuid',
    )
    user_url = core_filters.URLFilter(
        view_name='user-detail',
        name='user__uuid',
    )
    username = django_filters.CharFilter(
        name='user__username',
        lookup_type='exact',
    )
    full_name = django_filters.CharFilter(
        name='user__full_name',
        lookup_type='icontains',
    )
    native_name = django_filters.CharFilter(
        name='user__native_name',
        lookup_type='icontains',
    )
    role = core_filters.MappedChoiceFilter(
        name='group__customerrole__role_type',
        choices=(
            ('owner', 'Owner'),
            # TODO: Removing this drops support of filtering by numeric codes
            (models.CustomerRole.OWNER, 'Owner'),
        ),
        choice_mappings={
            'owner': models.CustomerRole.OWNER,
        },
    )

    class Meta(object):
        model = User.groups.through
        fields = [
            'role',
            'customer',
            'username',
            'full_name',
            'native_name',
        ]
        order_by = [
            'user__username',
            'user__full_name',
            'user__native_name',
            # desc
            '-user__username',
            '-user__full_name',
            '-user__native_name',

        ]
Esempio n. 5
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 = []
Esempio n. 6
0
class BaseServiceFilter(django_filters.FilterSet):
    customer = django_filters.CharFilter(name='customer__uuid')
    name = django_filters.CharFilter(lookup_type='icontains')
    project = core_filters.URLFilter(view_name='project-detail', name='projects__uuid', distinct=True)
    project_uuid = django_filters.CharFilter(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)

    class Meta(object):
        model = models.Service
        fields = ('name', 'project_uuid', 'customer', 'project', 'settings', 'shared')
Esempio n. 7
0
class CommentFilter(django_filters.FilterSet):
    description = django_filters.CharFilter(lookup_expr='icontains')
    issue = core_filters.URLFilter(view_name='support-issue-detail', name='issue__uuid')
    issue_uuid = django_filters.UUIDFilter(name='issue__uuid')
    author_name = django_filters.CharFilter(lookup_expr='icontains', name='author__name')
    author_user = core_filters.URLFilter(view_name='user-detail', name='author__user__uuid')

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

    class Meta(object):
        model = models.Comment
        fields = [
            'is_public',
        ]
Esempio n. 8
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']
Esempio n. 9
0
class SecurityGroupFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(
        name='name',
        lookup_type='icontains',
    )
    description = django_filters.CharFilter(
        name='description',
        lookup_type='icontains',
    )
    service = django_filters.CharFilter(
        name='service_project_link__service__uuid', )
    project = django_filters.CharFilter(
        name='service_project_link__project__uuid', )
    settings_uuid = django_filters.CharFilter(
        name='service_project_link__service__settings__uuid')
    service_project_link = core_filters.URLFilter(
        view_name='openstack-spl-detail',
        name='service_project_link__pk',
        lookup_field='pk',
    )
    state = core_filters.SynchronizationStateFilter()

    class Meta(object):
        model = models.SecurityGroup
        fields = [
            'name',
            'description',
            'service',
            'project',
            'service_project_link',
            'state',
        ]
Esempio n. 10
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']
Esempio n. 11
0
class UserPermissionFilter(django_filters.FilterSet):
    user = django_filters.UUIDFilter(name='user__uuid')
    user_url = core_filters.URLFilter(
        view_name='user-detail',
        name='user__uuid',
    )
    username = django_filters.CharFilter(
        name='user__username',
        lookup_expr='exact',
    )
    full_name = django_filters.CharFilter(
        name='user__full_name',
        lookup_expr='icontains',
    )
    native_name = django_filters.CharFilter(
        name='user__native_name',
        lookup_expr='icontains',
    )

    o = django_filters.OrderingFilter(fields=(
        ('user__username', 'username'),
        ('user__full_name', 'full_name'),
        ('user__native_name', 'native_name'),
        ('user__email', 'email'),
        ('expiration_time', 'expiration_time'),
        ('created', 'created'),
        ('role', 'role'),
    ))
class OrganizationFilter(django_filters.FilterSet):
    customer_uuid = django_filters.CharFilter(
        name='customer__uuid',
    )
    customer = core_filters.URLFilter(
        view_name='customer-detail',
        name='customer__uuid',
    )

    class Meta(object):
        model = models.Organization
        fields = [
            'name',
            'native_name',
            'abbreviation',
            'customer',
            'customer_uuid'
        ]
        order_by = [
            'name',
            'native_name',
            'abbreviation'
            # desc
            '-name',
            '-native_name',
            '-abbreviation'
        ]
Esempio n. 13
0
class BaseServiceProjectLinkFilter(django_filters.FilterSet):
    service_uuid = django_filters.CharFilter(name='service__uuid')
    project_uuid = django_filters.CharFilter(name='project__uuid')
    project = core_filters.URLFilter(view_name='project-detail',
                                     name='project__uuid')

    class Meta(object):
        model = models.ServiceProjectLink
Esempio n. 14
0
class PaymentDetailsFilter(django_filters.FilterSet):
    customer = core_filters.URLFilter(view_name='customer-detail',
                                      name='customer__uuid')
    customer_uuid = django_filters.UUIDFilter(name='customer__uuid')

    class Meta(object):
        model = models.PaymentDetails
        fields = '__all__'
Esempio n. 15
0
class SlurmPackageFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(lookup_expr='icontains')
    service_settings = core_filters.URLFilter(
        view_name='servicesettings-detail', name='service_settings__uuid')

    class Meta(object):
        model = models.SlurmPackage
        fields = []
Esempio n. 16
0
class ExpertProviderFilter(django_filters.FilterSet):
    customer = core_filters.URLFilter(view_name='customer-detail',
                                      name='customer__uuid')
    customer_uuid = django_filters.UUIDFilter(name='customer__uuid')

    class Meta(object):
        model = models.ExpertProvider
        fields = []
Esempio n. 17
0
class ServicePropertySettingsFilter(BaseServicePropertyFilter):
    settings_uuid = django_filters.UUIDFilter(name='settings__uuid')
    settings = core_filters.URLFilter(view_name='servicesettings-detail',
                                      name='settings__uuid',
                                      distinct=True)

    class Meta(BaseServicePropertyFilter.Meta):
        fields = BaseServicePropertyFilter.Meta.fields + ('settings_uuid',
                                                          'settings')
Esempio n. 18
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')
Esempio n. 19
0
    def setUp(self):
        from nodeconductor.structure.tests.factories import CustomerFactory

        self.customer = CustomerFactory()
        self.url = CustomerFactory.get_url(self.customer)

        self.customer_filter = core_filters.URLFilter(
            view_name='customer-detail',
            name='customer__uuid'
        )
Esempio n. 20
0
class CustomerPermissionFilter(UserPermissionFilter):
    class Meta(object):
        fields = ['role']
        model = models.CustomerPermission

    customer = django_filters.UUIDFilter(name='customer__uuid', )
    customer_url = core_filters.URLFilter(
        view_name='customer-detail',
        name='customer__uuid',
    )
Esempio n. 21
0
class InvoiceFilter(django_filters.FilterSet):
    customer = core_filters.URLFilter(view_name='customer-detail',
                                      name='customer__uuid')
    customer_uuid = django_filters.UUIDFilter(name='customer__uuid')
    state = django_filters.MultipleChoiceFilter(
        choices=models.Invoice.States.CHOICES)

    class Meta(object):
        model = models.Invoice
        fields = ('year', 'month')
Esempio n. 22
0
class ProjectPermissionFilter(UserPermissionFilter):
    class Meta(object):
        fields = ['role']
        model = models.ProjectPermission

    customer = django_filters.UUIDFilter(name='project__customer__uuid', )
    project = django_filters.UUIDFilter(name='project__uuid', )
    project_url = core_filters.URLFilter(
        view_name='project-detail',
        name='project__uuid',
    )
Esempio n. 23
0
class IssueFilter(django_filters.FilterSet):
    summary = django_filters.CharFilter(lookup_expr='icontains')

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

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

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

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

    assignee_name = django_filters.CharFilter(lookup_expr='icontains', name='assignee__name')
    assignee = core_filters.URLFilter(view_name='support-user-detail', 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(object):
        model = models.Issue
        fields = [
            'key',
            'type',
            'status',
        ]
Esempio n. 24
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)
    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')
Esempio n. 25
0
class ExpertRequestFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(lookup_expr='icontains')
    project = core_filters.URLFilter(view_name='project-detail',
                                     name='project__uuid')
    project_uuid = django_filters.UUIDFilter(name='project__uuid')
    o = django_filters.OrderingFilter(fields=(
        ('name', 'name'),
        ('type', 'type'),
        ('state', 'state'),
        ('project__customer__name', 'customer_name'),
        ('project__name', 'project_name'),
        ('created', 'created'),
        ('modified', 'modified'),
    ))

    class Meta(object):
        model = models.ExpertRequest
        fields = ['state']
Esempio n. 26
0
class InvitationFilter(django_filters.FilterSet):
    project = django_filters.UUIDFilter(
        name='project__uuid',
    )
    project_url = core_filters.URLFilter(
        view_name='project-detail',
        name='project__uuid',
    )
    state = django_filters.MultipleChoiceFilter(choices=models.Invitation.State.CHOICES)

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

    class Meta(object):
        model = models.Invitation
        fields = [
            'email',
            'civil_number',
            'customer_role',
            'project_role',
        ]
Esempio n. 27
0
class UserFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(lookup_type='icontains')
    username = django_filters.CharFilter(lookup_type='icontains')
    email = django_filters.CharFilter(lookup_type='icontains')
    first_name = django_filters.CharFilter(lookup_type='icontains')
    last_name = django_filters.CharFilter(lookup_type='icontains')
    tenant_uuid = UUIDFilter(name='tenant__uuid')
    tenant = core_filters.URLFilter(
        view_name='sharepoint-tenants-detail',
        name='tenant__uuid',
    )

    class Meta(object):
        model = models.User
        fields = [
            'name',
            'username',
            'email',
            'first_name',
            'last_name',
            'tenant_uuid',
            'tenant',
        ]
        order_by = [
            'name',
            'username',
            'email',
            'first_name',
            'last_name',
            # desc
            '-name',
            '-username',
            '-email',
            '-first_name',
            '-last_name',
        ]
Esempio n. 28
0
class OpenStackServiceProjectLinkFilter(
        structure_filters.BaseServiceProjectLinkFilter):
    service = core_filters.URLFilter(view_name='openstack-detail',
                                     name='service__uuid')