Beispiel #1
0
def extend_release_filter(release_filter):
    add_filter(release_filter, 'brew_default_target',
               NullableCharFilter(name='brew_mapping__default_target'))
    add_filter(release_filter, 'brew_allowed_tag',
               MultiValueFilter(name='brew_mapping__allowed_tags__tag_name'))
    add_filter(release_filter, 'product_pages_release_id',
               MultiIntFilter(name='product_pages_link__product_pages_id'))
    add_filter(release_filter, 'errata_product_version',
               NullableCharFilter(name='errata__product_version'))
Beispiel #2
0
    class ExtendedReleaseFilter(filter_class):
        bugzilla_product = NullableCharFilter(
            name='releasebugzillamapping__bugzilla_product')
        dist_git_branch = NullableCharFilter(
            name='releasedistgitmapping__dist_git_branch')

        class Meta(filter_class.Meta):
            fields = filter_class.Meta.fields + (
                'bugzilla_product',
                'dist_git_branch',
            )
class RPMFilter(django_filters.FilterSet):
    name        = MultiValueFilter()
    version     = MultiValueFilter()
    epoch       = MultiIntFilter()
    release     = MultiValueFilter()
    arch        = MultiValueFilter()
    srpm_name   = MultiValueFilter()
    srpm_nevra  = NullableCharFilter()
    filename    = MultiValueFilter()
    compose     = MultiValueFilter(name='composerpm__variant_arch__variant__compose__compose_id',
                                   distinct=True)
    linked_release = MultiValueFilter(name='linked_releases__release_id', distinct=True)
    built_for_release = MultiValueFilter(name='built_for_release__release_id', distinct=True)
    provides = django_filters.MethodFilter(action=partial(dependency_filter,
                                                          models.Dependency.PROVIDES))
    requires = django_filters.MethodFilter(action=partial(dependency_filter,
                                                          models.Dependency.REQUIRES))
    obsoletes = django_filters.MethodFilter(action=partial(dependency_filter,
                                                           models.Dependency.OBSOLETES))
    conflicts = django_filters.MethodFilter(action=partial(dependency_filter,
                                                           models.Dependency.CONFLICTS))
    recommends = django_filters.MethodFilter(action=partial(dependency_filter,
                                                            models.Dependency.RECOMMENDS))
    suggests = django_filters.MethodFilter(action=partial(dependency_filter,
                                                          models.Dependency.SUGGESTS))
    has_no_deps = CaseInsensitiveBooleanFilter(name='dependency__isnull', distinct=True)

    class Meta:
        model = models.RPM
        fields = ('name', 'version', 'epoch', 'release', 'arch', 'srpm_name',
                  'srpm_nevra', 'compose', 'filename', 'linked_release', 'built_for_release',
                  'provides', 'requires', 'obsoletes', 'conflicts', 'recommends', 'suggests',
                  'has_no_deps')
Beispiel #4
0
class RPMFilter(django_filters.FilterSet):
    name = MultiValueRegexFilter(help_text="""
            Multiple values will be OR-ed. Preferably use OR inside the regexp.
            """)
    version = MultiValueFilter()
    epoch = MultiIntFilter()
    release = MultiValueFilter()
    arch = MultiValueFilter()
    srpm_name = MultiValueFilter()
    srpm_nevra = NullableCharFilter()
    filename = MultiValueFilter()
    compose = MultiValueFilter(
        name='composerpm__variant_arch__variant__compose__compose_id',
        distinct=True)
    srpm_commit_hash = MultiValueFilter()
    srpm_commit_branch = MultiValueFilter()
    linked_release = MultiValueFilter(name='linked_releases__release_id',
                                      distinct=True)
    built_for_release = MultiValueFilter(name='built_for_release__release_id',
                                         distinct=True)
    provides = django_filters.CharFilter(
        method=partial(dependency_filter, models.Dependency.PROVIDES))
    requires = django_filters.CharFilter(
        method=partial(dependency_filter, models.Dependency.REQUIRES))
    obsoletes = django_filters.CharFilter(
        method=partial(dependency_filter, models.Dependency.OBSOLETES))
    conflicts = django_filters.CharFilter(
        method=partial(dependency_filter, models.Dependency.CONFLICTS))
    recommends = django_filters.CharFilter(
        method=partial(dependency_filter, models.Dependency.RECOMMENDS))
    suggests = django_filters.CharFilter(
        method=partial(dependency_filter, models.Dependency.SUGGESTS))
    has_no_deps = CaseInsensitiveBooleanFilter(name='dependency__isnull',
                                               distinct=True,
                                               help_text="""
    - If "true", lists only RPMs which do not have any dependencies.
    - If "false", lists only RPMs which have at least one dependency.
    """)

    class Meta:
        model = models.RPM
        fields = ('name', 'version', 'epoch', 'release', 'arch', 'srpm_name',
                  'srpm_nevra', 'compose', 'filename', 'linked_release',
                  'built_for_release', 'provides', 'requires', 'obsoletes',
                  'conflicts', 'recommends', 'suggests', 'has_no_deps')
Beispiel #5
0
    class ExtendedReleaseComponentFilter(filter_class):
        srpm_name = NullableCharFilter(name='srpmnamemapping__srpm_name')

        class Meta(filter_class.Meta):
            fields = filter_class.Meta.fields + ('srpm_name', )
Beispiel #6
0
def extend_release_component_filter(release_component_filter):
    add_filter(release_component_filter, 'srpm_name',
               NullableCharFilter(name='srpmnamemapping__srpm_name'))
Beispiel #7
0
def extend_release_filter(release_filter):
    add_filter(release_filter, 'bugzilla_product',
               NullableCharFilter(name='releasebugzillamapping__bugzilla_product'))
    add_filter(release_filter, 'dist_git_branch',
               NullableCharFilter(name='releasedistgitmapping__dist_git_branch'))