class PostFilter(FilterSet):
    # Used for Related filter and Filter.method regression tests
    title = filters.AllLookupsFilter(field_name='title')

    publish_date = filters.AllLookupsFilter()
    is_published = filters.BooleanFilter(field_name='publish_date',
                                         method='filter_is_published')

    note = RelatedFilter(NoteFilter,
                         field_name='note',
                         queryset=Note.objects.all())
    tags = RelatedFilter(TagFilter,
                         field_name='tags',
                         queryset=Tag.objects.all())

    class Meta:
        model = Post
        fields = []

    def filter_is_published(self, qs, name, value):
        """
        `is_published` is based on the actual `date_published`.
        If the publishing date is null, then the post is not published.
        """
        isnull = not value
        lookup_expr = LOOKUP_SEP.join([name, 'isnull'])

        return qs.filter(**{lookup_expr: isnull})
class PostFilter(FilterSet):
    # Used for Related filter and Filter.method regression tests
    title = filters.AutoFilter(field_name='title', lookups='__all__')

    publish_date = filters.AutoFilter(lookups='__all__')
    is_published = filters.BooleanFilter(method='filter_is_published')

    author = RelatedFilter(UserFilter,
                           field_name='author',
                           queryset=User.objects.all())
    note = RelatedFilter(NoteFilter,
                         field_name='note',
                         queryset=Note.objects.all())
    tags = RelatedFilter(TagFilter,
                         field_name='tags',
                         queryset=Tag.objects.all())

    class Meta:
        model = Post
        fields = []

    def filter_is_published(self, queryset, field_name, value):
        """
        `is_published` is based on the actual `publish_date`. If the
        publish date is null, then the post is not published.

        This filter method is used to demonstrate annotations.
        """
        # Note: don't modify this without updating test_filtering.AnnotationTests
        return queryset.annotate_is_published() \
                       .filter(**{field_name: value})
Beispiel #3
0
class UserFilter(FilterSet):
    username = filters.CharFilter(name='username')
    email = filters.CharFilter(name='email')
    last_login = filters.AllLookupsFilter()
    is_active = filters.BooleanFilter(name='is_active')

    class Meta:
        model = User
Beispiel #4
0
class CompanyListFilter(FilterSet):
    active = filters.BooleanFilter()

    class Meta:
        Model = Company
        fields = [
            'active',
        ]
Beispiel #5
0
class RoleDetailFilter(FilterSet):
    active = filters.BooleanFilter()
    id = filters.NumberFilter()

    class Meta:
        Model = Note
        fields = [
            'active',
            'id',
        ]
Beispiel #6
0
class AuditAreaListFilter(FilterSet):
    active = filters.BooleanFilter()
    company = filters.NumberFilter()

    class Meta:
        Model = AuditArea
        fields = [
            'active',
            'company',
        ]
Beispiel #7
0
class SpecialtyTypeListFilter(FilterSet):
    active = filters.BooleanFilter()
    company = filters.NumberFilter()

    class Meta:
        Model = SpecialtyType
        fields = [
            'active',
            'company',
        ]
Beispiel #8
0
class CategoryListFilter(FilterSet):
    active = filters.BooleanFilter()
    company = filters.NumberFilter()

    class Meta:
        Model = Category
        fields = [
            'active',
            'company',
        ]
Beispiel #9
0
class IndicatorListFilter(FilterSet):
    active = filters.BooleanFilter()
    company = filters.NumberFilter()

    class Meta:
        Model = Indicator
        fields = [
            'active',
            'company',
        ]
Beispiel #10
0
class NoteTypeListFilter(FilterSet):
    active = filters.BooleanFilter()
    type = filters.NumberFilter()

    class Meta:
        Model = NoteType
        fields = [
            'active',
            'type',
        ]
Beispiel #11
0
class UserFilter(FilterSet):
    username = AutoFilter(field_name='username', lookups='__all__')
    email = filters.CharFilter(field_name='email')
    last_login = AutoFilter(lookups='__all__')
    is_active = filters.BooleanFilter(field_name='is_active')

    posts = RelatedFilter('PostFilter', field_name='post', queryset=Post.objects.all())

    class Meta:
        model = User
        fields = []
Beispiel #12
0
class TemplateListFilter(FilterSet):
    active = filters.BooleanFilter()
    company = filters.NumberFilter()

    class Meta:
        model = Template
        fields = [
            'id',
            'active',
            'company',
        ]
Beispiel #13
0
class AuditDetailFilter(FilterSet):
    categories = filters.RelatedFilter(CategoryListFilter,
                                       field_name="categories__parent",
                                       queryset=Audit.objects.all())
    active = filters.BooleanFilter()
    template = filters.NumberFilter()

    class Meta:
        Model = Audit
        fields = [
            'active',
            'categories',
            'template',
        ]
Beispiel #14
0
class AuditListFilter(FilterSet):
    company = filters.RelatedFilter(TemplateListFilter,
                                    field_name="template__company__id",
                                    queryset=Template.objects.all())
    active = filters.BooleanFilter()
    template = filters.NumberFilter()

    class Meta:
        Model = Audit
        fields = [
            'active',
            'company',
            'template',
        ]
Beispiel #15
0
class TemplateCategoryListFilter(FilterSet):
    template = filters.RelatedFilter(TemplateListFilter,
                                     field_name="template__id",
                                     queryset=Template.objects.all())
    active = filters.BooleanFilter()
    company = filters.NumberFilter()
    parent = filters.CharFilter()

    class Meta:
        Model = TemplateCategory
        fields = [
            'active',
            'company',
            'template',
            'parent',
        ]
class PostFilter(FilterSet):
    # Used for Related filter and Filter.method regression tests
    note = RelatedFilter(NoteFilterWithRelatedAll, name='note')
    date_published = filters.AllLookupsFilter()
    is_published = filters.BooleanFilter(name='date_published',
                                         method='filter_is_published')

    class Meta:
        model = Post

    def filter_is_published(self, qs, name, value):
        """
        `is_published` is based on the actual `date_published`.
        If the publishing date is null, then the post is not published.
        """
        isnull = not value
        lookup_expr = LOOKUP_SEP.join([name, 'isnull'])

        return qs.filter(**{lookup_expr: isnull})