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' ]
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__'
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', ]
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', ]
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 = []
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')
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', ]
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']
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', ]
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']
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' ]
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
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__'
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 = []
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 = []
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')
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')
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' )
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', )
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')
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', )
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', ]
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')
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']
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', ]
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', ]
class OpenStackServiceProjectLinkFilter( structure_filters.BaseServiceProjectLinkFilter): service = core_filters.URLFilter(view_name='openstack-detail', name='service__uuid')