class ReleaseFilter(django_filters.FilterSet): release_id = filters.MultiValueFilter(name='release_id') base_product = filters.MultiValueFilter(name='base_product__base_product_id') has_base_product = django_filters.CharFilter(method='find_has_base_product') release_type = filters.MultiValueFilter(name='release_type__short') product_version = filters.MultiValueFilter(name='product_version__product_version_id') integrated_with = filters.NullableCharFilter(name='integrated_with__release_id') active = filters.CaseInsensitiveBooleanFilter() name = filters.MultiValueFilter(name='name') short = filters.MultiValueFilter(name='short') version = filters.MultiValueFilter(name='version') sigkey = filters.MultiValueFilter(name='sigkey__key_id') allow_buildroot_push = filters.CaseInsensitiveBooleanFilter() allowed_debuginfo_services = filters.MultiValueFilter(name='allowed_debuginfo_services__name') allowed_push_targets = AllowedPushTargetsFilter(['product_version']) class Meta: model = Release fields = ("release_id", "name", "short", "version", 'product_version', "release_type", "base_product", 'active', 'integrated_with', 'sigkey', 'allow_buildroot_push', 'allowed_debuginfo_services', 'allowed_push_targets') def find_has_base_product(self, queryset, name, value, *args, **kwargs): """ Make it possible to filter releases if base_product is null or not. """ if value == 'True': return queryset.filter(base_product__isnull=False).distinct() elif value == 'False': return queryset.filter(base_product__isnull=True).distinct() return queryset
class PartnerFilterSet(django_filters.FilterSet): enabled = filters.CaseInsensitiveBooleanFilter() binary = filters.CaseInsensitiveBooleanFilter() source = filters.CaseInsensitiveBooleanFilter() name = django_filters.CharFilter(lookup_type='icontains') type = django_filters.CharFilter(name='type__name') short = filters.MultiValueFilter(name='short') ftp_dir = filters.MultiValueFilter(name='ftp_dir') rsync_dir = filters.MultiValueFilter(name='rsync_dir') compose_arches = filters.MultiValueFilter(name='compose_arches__name') errata_packages = filters.MultiValueFilter(name='errata_packages__name') class Meta: model = models.Partner fields = ( 'short', 'name', 'type', 'enabled', 'binary', 'source', 'ftp_dir', 'rsync_dir', 'compose_arches', 'errata_packages', )
class ReleaseFilter(django_filters.FilterSet): release_id = filters.MultiValueFilter(name='release_id') base_product = filters.MultiValueFilter( name='base_product__base_product_id') has_base_product = django_filters.MethodFilter( action='find_has_base_product') release_type = filters.MultiValueFilter(name='release_type__short') product_version = filters.MultiValueFilter( name='product_version__product_version_id') integrated_with = filters.NullableCharFilter( name='integrated_with__release_id') active = filters.CaseInsensitiveBooleanFilter() name = filters.MultiValueFilter(name='name') short = filters.MultiValueFilter(name='short') version = filters.MultiValueFilter(name='version') class Meta: model = Release fields = ("release_id", "name", "short", "version", 'product_version', "release_type", "base_product", 'active', 'integrated_with') def find_has_base_product(self, queryset, value, *args, **kwargs): """ Make it possible to filter releases if base_product is null or not. """ if value == 'True': return queryset.filter(base_product__isnull=False).distinct() elif value == 'False': return queryset.filter(base_product__isnull=True).distinct() return queryset
class ReleaseGroupFilter(django_filters.FilterSet): name = filters.MultiValueFilter(name='name') description = filters.MultiValueFilter(name='description') type = filters.MultiValueFilter(name='type__name') releases = filters.MultiValueFilter(name='releases__release_id') active = filters.CaseInsensitiveBooleanFilter() class Meta: model = ReleaseGroup fields = ('name', 'description', 'type', 'releases', 'active')