Files
sarlink-portal-api/billing/filters.py

32 lines
1.1 KiB
Python

import django_filters
from .models import Payment, Topup
class PaymentFilter(django_filters.FilterSet):
amount = django_filters.RangeFilter(field_name="amount")
number_of_months = django_filters.RangeFilter(field_name="number_of_months")
paid = django_filters.BooleanFilter(field_name="paid")
method = django_filters.ChoiceFilter(
choices=Payment.PAYMENT_TYPES, lookup_expr="iexact"
)
mib_reference = django_filters.CharFilter(lookup_expr="icontains")
paid_at = django_filters.DateFromToRangeFilter()
created_at = django_filters.DateFromToRangeFilter()
class Meta:
model = Payment
fields = "__all__"
class TopupFilter(django_filters.FilterSet):
amount = django_filters.RangeFilter(field_name="amount")
paid = django_filters.BooleanFilter(field_name="paid")
user = django_filters.CharFilter(
field_name="user__username", lookup_expr="icontains"
)
created_at = django_filters.DateFromToRangeFilter()
class Meta:
model = Topup # Assuming Topup is a subclass of Payment
fields = "__all__"