Source code for ferrosoft.apps.ferrobase.filter
# Copyright (c) 2025 Ferrosoft GmbH. All rights reserved.
"""Django-filter ``FilterSet`` definitions for ferrobase models."""
from django_filters import FilterSet, RangeFilter
from ferrosoft.apps.ferrobase.models import (
Material,
CompanySite,
User,
IdSequenceConfig,
Organization,
SubscriptionPlan,
StoredFile,
APIToken,
)
[docs]
class APITokenFilterSet(FilterSet):
"""Filter API tokens by name substring or exact status."""
[docs]
class CompanySiteFilterSet(FilterSet):
"""Filter company sites by code, name, city, street, postal code, or country."""
[docs]
class IDSequenceFilter(FilterSet):
"""Filter ID sequence configurations by name or prefix."""
[docs]
class MaterialFilterSet(FilterSet):
"""Filter materials by code prefix or name substring."""
[docs]
class OrganizationFilterSet(FilterSet):
"""Filter organisations by name, contact email, or contact name."""
[docs]
class StoredFileFilterSet(FilterSet):
"""Filter stored files by name substring."""
[docs]
class SubscriptionPlanFilterSet(FilterSet):
"""Filter subscription plans by name or maximum tonnage range."""
max_tonnage = RangeFilter()
[docs]
class UserFilterSet(FilterSet):
"""Filter users by username, email address, or organisation."""