class CircuitFilter(CustomFieldFilterSet, django_filters.FilterSet): id__in = NumericInFilter(field_name='id', lookup_expr='in') q = django_filters.CharFilter( method='search', label='Search', ) provider_id = django_filters.ModelMultipleChoiceFilter( queryset=Provider.objects.all(), label='Provider (ID)', ) provider = django_filters.ModelMultipleChoiceFilter( field_name='provider__slug', queryset=Provider.objects.all(), to_field_name='slug', label='Provider (slug)', ) type_id = django_filters.ModelMultipleChoiceFilter( queryset=CircuitType.objects.all(), label='Circuit type (ID)', ) type = django_filters.ModelMultipleChoiceFilter( field_name='type__slug', queryset=CircuitType.objects.all(), to_field_name='slug', label='Circuit type (slug)', ) status = django_filters.MultipleChoiceFilter( choices=CIRCUIT_STATUS_CHOICES, null_value=None) tenant_id = django_filters.ModelMultipleChoiceFilter( queryset=Tenant.objects.all(), label='Tenant (ID)', ) tenant = django_filters.ModelMultipleChoiceFilter( field_name='tenant__slug', queryset=Tenant.objects.all(), to_field_name='slug', label='Tenant (slug)', ) site_id = django_filters.ModelMultipleChoiceFilter( field_name='terminations__site', queryset=Site.objects.all(), label='Site (ID)', ) site = django_filters.ModelMultipleChoiceFilter( field_name='terminations__site__slug', queryset=Site.objects.all(), to_field_name='slug', label='Site (slug)', ) tag = TagFilter() class Meta: model = Circuit fields = ['cid', 'install_date', 'commit_rate'] def search(self, queryset, name, value): if not value.strip(): return queryset return queryset.filter( Q(cid__icontains=value) | Q(terminations__xconnect_id__icontains=value) | Q(terminations__pp_info__icontains=value) | Q(terminations__description__icontains=value) | Q(description__icontains=value) | Q(comments__icontains=value)).distinct()
class GencoEntornoLenguajesFilter(filters.FilterSet): id_env = django_filters.CharFilter(name="id_entorno") class Meta: model = GencoEntornoLenguajes fields = ['id_env']
class GencoComponenteFilter(filters.FilterSet): id_env = django_filters.CharFilter(name="id_entorno") class Meta: model = GencoComponentes fields = ['id_env']
class IdentityProviderFilter(django_filters.FilterSet): class Meta: model = models.IdentityProvider fields = ('name',) name = django_filters.CharFilter(lookup_expr='icontains')
class FindingFilter(django_filters.FilterSet): """ Filter :model:`reporting.Finding` model for searching. **Fields** ``title`` Case insensitive search of the title field contents. ``severity`` Checkbox choice filter using :model:`reporting.Severty`. ``finding_type`` Multiple choice filter using :model:`reporting.FindingType`. """ title = django_filters.CharFilter( lookup_expr="icontains", label="Title Contains", widget=TextInput(attrs={ "placeholder": "Part of Title", "autocomplete": "off" }), ) severity = django_filters.ModelMultipleChoiceFilter( queryset=Severity.objects.all().order_by("weight"), widget=forms.CheckboxSelectMultiple, label="", ) finding_type = django_filters.ModelMultipleChoiceFilter( queryset=FindingType.objects.all(), widget=forms.CheckboxSelectMultiple, label="", ) class Meta: model = Finding fields = ["title", "severity", "finding_type"] def __init__(self, *args, **kwargs): super(FindingFilter, self).__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_method = "get" self.helper.form_class = "newitem" self.helper.form_show_labels = False # Layout the form for Bootstrap self.helper.layout = Layout( Div( Row( Column( PrependedText("title", '<i class="fas fa-filter"></i>'), css_class="form-group col-md-6 offset-md-3 mb-0", ), css_class="form-row", ), Row( Column( InlineCheckboxes("severity"), css_class="form-group col-md-12", ), css_class="form-row", ), Row( Column( InlineCheckboxes("finding_type"), css_class="form-group col-md-12", ), css_class="form-row", ), ButtonHolder( Submit("submit_btn", "Filter", css_class="btn btn-primary col-md-2"), HTML(""" <a class="btn btn-outline-secondary col-md-2" role="button" href="{% url 'reporting:findings' %}">Reset</a> """), ), css_class="justify-content-center", ), )
class Customer_filters(django_filters.FilterSet): cust_name = django_filters.CharFilter(lookup_expr='icontains') email = django_filters.CharFilter(lookup_expr='icontains') class Meta: model = Customer fields = ['account_number', 'cust_name', 'email','phone_number']
class QuestionFilterSet(filters.FilterSet): subject = django_filters.CharFilter(field_name='subjectid__subjectname') class Meta: model = Question fields = ['subjectid',]
class BaseResourceFilter(django_filters.FilterSet): # customer customer = django_filters.CharFilter( name='service_project_link__service__customer__uuid') customer_uuid = django_filters.CharFilter( name='service_project_link__service__customer__uuid') customer_name = django_filters.CharFilter( name='service_project_link__service__customer__name', lookup_type='icontains') customer_native_name = django_filters.CharFilter( name='service_project_link__project__customer__native_name', lookup_type='icontains') customer_abbreviation = django_filters.CharFilter( name='service_project_link__project__customer__abbreviation', lookup_type='icontains') # project project = django_filters.CharFilter( name='service_project_link__project__uuid') project_uuid = django_filters.CharFilter( name='service_project_link__project__uuid') project_name = django_filters.CharFilter( name='service_project_link__project__name', lookup_type='icontains') # project group project_group = django_filters.CharFilter( name='service_project_link__project__project_groups__uuid') project_group_uuid = django_filters.CharFilter( name='service_project_link__project__project_groups__uuid') project_group_name = django_filters.CharFilter( name='service_project_link__project__project_groups__name', lookup_type='icontains') # service service_uuid = django_filters.CharFilter( name='service_project_link__service__uuid') service_name = django_filters.CharFilter( name='service_project_link__service__name', lookup_type='icontains') # resource name = django_filters.CharFilter(lookup_type='icontains') description = django_filters.CharFilter(lookup_type='icontains') state = core_filters.MappedMultipleChoiceFilter( choices=[(representation, representation) for db_value, representation in models.Resource.States.CHOICES ], choice_mappings={ representation: db_value for db_value, representation in models.Resource.States.CHOICES }, ) class Meta(object): model = models.Resource fields = ( # customer 'customer', 'customer_uuid', 'customer_name', 'customer_native_name', 'customer_abbreviation', # project 'project', 'project_uuid', 'project_name', # project group 'project_group', 'project_group_uuid', 'project_group_name', # service 'service_uuid', 'service_name', # resource 'name', 'description', 'state', )
class ProjectFilter(django_filters.FilterSet): customer = django_filters.CharFilter( name='customer__uuid', distinct=True, ) customer_name = django_filters.CharFilter(name='customer__name', distinct=True, lookup_type='icontains') customer_native_name = django_filters.CharFilter( name='customer__native_name', distinct=True, lookup_type='icontains') customer_abbreviation = django_filters.CharFilter( name='customer__abbreviation', distinct=True, lookup_type='icontains') project_group = django_filters.CharFilter( name='project_groups__uuid', distinct=True, ) project_group_name = django_filters.CharFilter(name='project_groups__name', distinct=True, lookup_type='icontains') name = django_filters.CharFilter(lookup_type='icontains') description = django_filters.CharFilter(lookup_type='icontains') class Meta(object): model = models.Project fields = [ 'project_group', 'project_group_name', 'name', 'customer', 'customer_name', 'customer_native_name', 'customer_abbreviation', 'description', 'created', ] order_by = [ 'name', '-name', 'created', '-created', 'project_groups__name', '-project_groups__name', 'customer__native_name', '-customer__native_name', 'customer__name', '-customer__name', 'customer__abbreviation', '-customer__abbreviation', ] order_by_mapping = { # Proper field naming 'project_group_name': 'project_groups__name', 'customer_name': 'customer__name', 'customer_abbreviation': 'customer__abbreviation', 'customer_native_name': 'customer__native_name', # Backwards compatibility 'project_groups__name': 'project_groups__name', }
class BaseResourceFilter(NameFilterSet, metaclass=ResourceFilterMetaclass): def __init__(self, *args, **kwargs): super(BaseResourceFilter, self).__init__(*args, **kwargs) self.filters['o'] = django_filters.OrderingFilter( fields=self.ORDERING_FIELDS) # customer customer = django_filters.UUIDFilter( field_name='service_project_link__service__customer__uuid') customer_uuid = django_filters.UUIDFilter( field_name='service_project_link__service__customer__uuid') customer_name = django_filters.CharFilter( field_name='service_project_link__service__customer__name', lookup_expr='icontains') customer_native_name = django_filters.CharFilter( field_name='service_project_link__project__customer__native_name', lookup_expr='icontains') customer_abbreviation = django_filters.CharFilter( field_name='service_project_link__project__customer__abbreviation', lookup_expr='icontains') # project project = django_filters.UUIDFilter( field_name='service_project_link__project__uuid') project_uuid = django_filters.UUIDFilter( field_name='service_project_link__project__uuid') project_name = django_filters.CharFilter( field_name='service_project_link__project__name', lookup_expr='icontains') # service service_uuid = django_filters.UUIDFilter( field_name='service_project_link__service__uuid') service_name = django_filters.CharFilter( field_name='service_project_link__service__settings__name', lookup_expr='icontains') # service settings service_settings_uuid = django_filters.UUIDFilter( field_name='service_project_link__service__settings__uuid') service_settings_name = django_filters.CharFilter( field_name='service_project_link__service__settings__name', lookup_expr='icontains') # resource description = django_filters.CharFilter(lookup_expr='icontains') state = core_filters.MappedMultipleChoiceFilter( choices=[(representation, representation) for db_value, representation in core_models.StateMixin.States.CHOICES], choice_mappings={ representation: db_value for db_value, representation in core_models.StateMixin.States.CHOICES }, ) uuid = django_filters.UUIDFilter(lookup_expr='exact') backend_id = django_filters.CharFilter(field_name='backend_id', lookup_expr='exact') tag = django_filters.ModelMultipleChoiceFilter( field_name='tags__name', label='tag', to_field_name='name', queryset=taggit.models.Tag.objects.all(), ) rtag = django_filters.ModelMultipleChoiceFilter( field_name='tags__name', label='rtag', to_field_name='name', queryset=taggit.models.Tag.objects.all(), conjoined=True, ) external_ip = core_filters.EmptyFilter() ORDERING_FIELDS = ( ('name', 'name'), ('state', 'state'), ('service_project_link__project__customer__name', 'customer_name'), ('service_project_link__project__customer__native_name', 'customer_native_name'), ('service_project_link__project__customer__abbreviation', 'customer_abbreviation'), ('service_project_link__project__name', 'project_name'), ('service_project_link__service__settings__name', 'service_name'), ('service_project_link__service__uuid', 'service_uuid'), ('created', 'created'), ) class Meta: model = models.ResourceMixin fields = ( # customer 'customer', 'customer_uuid', 'customer_name', 'customer_native_name', 'customer_abbreviation', # project 'project', 'project_uuid', 'project_name', # service 'service_uuid', 'service_name', # service settings 'service_settings_name', 'service_settings_uuid', # resource 'name', 'name_exact', 'description', 'state', 'uuid', 'backend_id', 'tag', 'rtag', )
class BookmarkFilter(django_filters.FilterSet): name = django_filters.CharFilter(lookup_expr='icontains') class Meta: model = BookMark fields = ['name', 'folder']
class NameFilterSet(django_filters.FilterSet): name = django_filters.CharFilter(lookup_expr='icontains') name_exact = django_filters.CharFilter(field_name='name', lookup_expr='exact')
class CompetitionFilter(django_filters.FilterSet): creator = django_filters.CharFilter(name="creator__username") class Meta: model = webmodels.Competition fields = ['creator']
class VariableFilter(django_filters.FilterSet): name = django_filters.CharFilter(lookup_expr='iexact') class Meta: model = Entries fields = ['title', 'abstract']
class RackFilter(CustomFieldFilterSet, django_filters.FilterSet): id__in = NumericInFilter(name='id', lookup_expr='in') q = django_filters.CharFilter( method='search', label='Search', ) site_id = django_filters.ModelMultipleChoiceFilter( name='site', queryset=Site.objects.all(), label='Site (ID)', ) site = django_filters.ModelMultipleChoiceFilter( name='site__slug', queryset=Site.objects.all(), to_field_name='slug', label='Site (slug)', ) group_id = NullableModelMultipleChoiceFilter( name='group', queryset=RackGroup.objects.all(), label='Group (ID)', ) group = NullableModelMultipleChoiceFilter( name='group', queryset=RackGroup.objects.all(), to_field_name='slug', label='Group', ) tenant_id = NullableModelMultipleChoiceFilter( name='tenant', queryset=Tenant.objects.all(), label='Tenant (ID)', ) tenant = NullableModelMultipleChoiceFilter( name='tenant', queryset=Tenant.objects.all(), to_field_name='slug', label='Tenant (slug)', ) role_id = NullableModelMultipleChoiceFilter( name='role', queryset=RackRole.objects.all(), label='Role (ID)', ) role = NullableModelMultipleChoiceFilter( name='role', queryset=RackRole.objects.all(), to_field_name='slug', label='Role (slug)', ) class Meta: model = Rack fields = ['u_height'] def search(self, queryset, name, value): if not value.strip(): return queryset return queryset.filter( Q(name__icontains=value) | Q(facility_id__icontains=value) | Q(comments__icontains=value))
class ServicePropertySettingsFilter(BaseServicePropertyFilter): settings_uuid = django_filters.CharFilter(name='settings__uuid') class Meta(BaseServicePropertyFilter.Meta): fields = BaseServicePropertyFilter.Meta.fields + ('settings_uuid', )
class DeviceFilter(CustomFieldFilterSet, django_filters.FilterSet): id__in = NumericInFilter(name='id', lookup_expr='in') q = django_filters.CharFilter( method='search', label='Search', ) mac_address = django_filters.CharFilter( method='_mac_address', label='MAC address', ) site_id = django_filters.ModelMultipleChoiceFilter( name='site', queryset=Site.objects.all(), label='Site (ID)', ) site = django_filters.ModelMultipleChoiceFilter( name='site__slug', queryset=Site.objects.all(), to_field_name='slug', label='Site name (slug)', ) rack_group_id = django_filters.ModelMultipleChoiceFilter( name='rack__group', queryset=RackGroup.objects.all(), label='Rack group (ID)', ) rack_id = NullableModelMultipleChoiceFilter( name='rack', queryset=Rack.objects.all(), label='Rack (ID)', ) role_id = django_filters.ModelMultipleChoiceFilter( name='device_role', queryset=DeviceRole.objects.all(), label='Role (ID)', ) role = django_filters.ModelMultipleChoiceFilter( name='device_role__slug', queryset=DeviceRole.objects.all(), to_field_name='slug', label='Role (slug)', ) tenant_id = NullableModelMultipleChoiceFilter( name='tenant', queryset=Tenant.objects.all(), label='Tenant (ID)', ) tenant = NullableModelMultipleChoiceFilter( name='tenant', queryset=Tenant.objects.all(), to_field_name='slug', label='Tenant (slug)', ) device_type_id = django_filters.ModelMultipleChoiceFilter( name='device_type', queryset=DeviceType.objects.all(), label='Device type (ID)', ) manufacturer_id = django_filters.ModelMultipleChoiceFilter( name='device_type__manufacturer', queryset=Manufacturer.objects.all(), label='Manufacturer (ID)', ) manufacturer = django_filters.ModelMultipleChoiceFilter( name='device_type__manufacturer__slug', queryset=Manufacturer.objects.all(), to_field_name='slug', label='Manufacturer (slug)', ) model = django_filters.ModelMultipleChoiceFilter( name='device_type__slug', queryset=DeviceType.objects.all(), to_field_name='slug', label='Device model (slug)', ) platform_id = NullableModelMultipleChoiceFilter( name='platform', queryset=Platform.objects.all(), label='Platform (ID)', ) platform = NullableModelMultipleChoiceFilter( name='platform', queryset=Platform.objects.all(), to_field_name='slug', label='Platform (slug)', ) is_console_server = django_filters.BooleanFilter( name='device_type__is_console_server', label='Is a console server', ) is_pdu = django_filters.BooleanFilter( name='device_type__is_pdu', label='Is a PDU', ) is_network_device = django_filters.BooleanFilter( name='device_type__is_network_device', label='Is a network device', ) has_primary_ip = django_filters.BooleanFilter( method='_has_primary_ip', label='Has a primary IP', ) status = django_filters.MultipleChoiceFilter(choices=STATUS_CHOICES) class Meta: model = Device fields = ['name', 'serial', 'asset_tag'] def search(self, queryset, name, value): if not value.strip(): return queryset return queryset.filter( Q(name__icontains=value) | Q(serial__icontains=value.strip()) | Q(inventory_items__serial__icontains=value.strip()) | Q(asset_tag=value.strip()) | Q(comments__icontains=value)).distinct() def _mac_address(self, queryset, name, value): value = value.strip() if not value: return queryset try: return queryset.filter(interfaces__mac_address=value).distinct() except AddrFormatError: return queryset.none() def _has_primary_ip(self, queryset, name, value): if value: return queryset.filter( Q(primary_ip4__isnull=False) | Q(primary_ip6__isnull=False)) else: return queryset.exclude( Q(primary_ip4__isnull=False) | Q(primary_ip6__isnull=False))
class EpisodeFilter(filters.FilterSet): class Meta: model = Episode fields = ('programme', ) programme = django_filters.CharFilter(name="programme__slug")
class Product_filters(django_filters.FilterSet): product_name = django_filters.CharFilter(lookup_expr='icontains') class Meta: model = Products fields = ['product_name', 'SKU', ]
class ScheduleFilter(filters.FilterSet): class Meta: model = Schedule fields = ('programme', 'calendar', 'type') programme = django_filters.CharFilter(name="programme__slug")
class StatusFilter(CommonFieldsFilterset): name = django_filters.CharFilter(lookup_type='icontains') description = django_filters.CharFilter(lookup_type='icontains') class Meta(object): model = Status
class UserFilter(django_filters.FilterSet): skills = django_filters.CharFilter(name='skills', lookup_expr='icontains') current_location = django_filters.CharFilter(name='current_location', lookup_expr='icontains') ctc = django_filters.CharFilter(name='ctc', lookup_expr='icontains') preferred_location = django_filters.CharFilter(name='preferred_location', lookup_expr='icontains') current_employer = django_filters.CharFilter(name='current_employer', lookup_expr='icontains') current_designation = django_filters.CharFilter(name='current_designation', lookup_expr='icontains') work_exp = django_filters.CharFilter(name='work_exp', lookup_expr='icontains') UG_Course = django_filters.CharFilter(name='UG_Course', lookup_expr='icontains') PG_Course = django_filters.CharFilter(name='PG_Course', lookup_expr='icontains') UG_Passing_Year = django_filters.CharFilter(name='UG_Passing_Year', lookup_expr='icontains') PG_Passing_Year = django_filters.CharFilter(name='PG_Passing_Year', lookup_expr='icontains') class Meta: model = User fields = [ 'skills', 'current_location', 'ctc', 'preferred_location', 'current_employer', 'current_designation', 'work_exp', 'UG_Course', 'PG_Course', 'UG_Passing_Year', 'PG_Passing_Year' ]
class EmployeeFilter(django_filters.FilterSet): department = django_filters.CharFilter(name="department__name") class Meta: model = Employee fields = ('name', 'department')
class ProjectFilterSet(django_filters.FilterSet): search = django_filters.CharFilter(field_name="name", lookup_expr="icontains") class Meta: model = Project fields = ["search"]
class ReportFilter(django_filters.FilterSet): """ Filter :model:`reporting.Report` model for searching. **Fields** ``title`` Case insensitive search of the title field contents. ``complete`` Boolean field to filter completed reports. """ title = django_filters.CharFilter( lookup_expr="icontains", label="Title Contains", widget=TextInput(attrs={ "placeholder": "Part of Title", "autocomplete": "off" }), ) STATUS_CHOICES = ( (0, "All Reports"), (1, "Completed"), ) complete = django_filters.ChoiceFilter(choices=STATUS_CHOICES, empty_label=None, label="Report Status") class Meta: model = Report fields = ["title", "complete"] def __init__(self, *args, **kwargs): super(ReportFilter, self).__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_method = "get" self.helper.form_class = "newitem" self.helper.form_show_labels = False # Layout the form for Bootstrap self.helper.layout = Layout( Div( Row( Column( PrependedText("title", '<i class="fas fa-filter"></i>'), css_class="form-group col-md-6", ), Column( "complete", css_class="form-group col-md-6", ), css_class="form-row", ), ButtonHolder( Submit("submit_btn", "Filter", css_class="btn btn-primary col-md-2"), HTML(""" <a class="btn btn-outline-secondary col-md-2" role="button" href="{% url 'reporting:reports' %}">Reset</a> """), ), css_class="justify-content-center", ), )
class UserFocusCompanyFilter(rest_framework.FilterSet): company__name = django_filters.CharFilter(lookup_expr="icontains") class Meta: model = UserFocusCompany fields = ['user', 'company', 'company__name']
class GencoTipodatoFilter(filters.FilterSet): id_lang = django_filters.CharFilter(name="id_lenguaje") class Meta: model = GencoTipodato fields = ['id_lang']
class CountryFilter(django_filters.FilterSet): nome = django_filters.CharFilter(lookup_expr='iexact') class Meta: model = Country fields = ['nome']
class GencoPlantillasFilter(filters.FilterSet): id_comp = django_filters.CharFilter(name="id_componente") class Meta: model = GencoPlantillas fields = ['id_comp']
class VirtualMachineFilterSet(BaseFilterSet, LocalConfigContextFilterSet, TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): q = django_filters.CharFilter( method='search', label='Search', ) status = django_filters.MultipleChoiceFilter( choices=VirtualMachineStatusChoices, null_value=None) cluster_group_id = django_filters.ModelMultipleChoiceFilter( field_name='cluster__group', queryset=ClusterGroup.objects.all(), label='Cluster group (ID)', ) cluster_group = django_filters.ModelMultipleChoiceFilter( field_name='cluster__group__slug', queryset=ClusterGroup.objects.all(), to_field_name='slug', label='Cluster group (slug)', ) cluster_type_id = django_filters.ModelMultipleChoiceFilter( field_name='cluster__type', queryset=ClusterType.objects.all(), label='Cluster type (ID)', ) cluster_type = django_filters.ModelMultipleChoiceFilter( field_name='cluster__type__slug', queryset=ClusterType.objects.all(), to_field_name='slug', label='Cluster type (slug)', ) cluster_id = django_filters.ModelMultipleChoiceFilter( queryset=Cluster.objects.all(), label='Cluster (ID)', ) region_id = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name='cluster__site__region', lookup_expr='in', label='Region (ID)', ) region = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name='cluster__site__region', lookup_expr='in', to_field_name='slug', label='Region (slug)', ) site_id = django_filters.ModelMultipleChoiceFilter( field_name='cluster__site', queryset=Site.objects.all(), label='Site (ID)', ) site = django_filters.ModelMultipleChoiceFilter( field_name='cluster__site__slug', queryset=Site.objects.all(), to_field_name='slug', label='Site (slug)', ) role_id = django_filters.ModelMultipleChoiceFilter( queryset=DeviceRole.objects.all(), label='Role (ID)', ) role = django_filters.ModelMultipleChoiceFilter( field_name='role__slug', queryset=DeviceRole.objects.all(), to_field_name='slug', label='Role (slug)', ) platform_id = django_filters.ModelMultipleChoiceFilter( queryset=Platform.objects.all(), label='Platform (ID)', ) platform = django_filters.ModelMultipleChoiceFilter( field_name='platform__slug', queryset=Platform.objects.all(), to_field_name='slug', label='Platform (slug)', ) mac_address = MultiValueMACAddressFilter( field_name='interfaces__mac_address', label='MAC address', ) tag = TagFilter() class Meta: model = VirtualMachine fields = ['id', 'name', 'cluster', 'vcpus', 'memory', 'disk'] def search(self, queryset, name, value): if not value.strip(): return queryset return queryset.filter( Q(name__icontains=value) | Q(comments__icontains=value))