from rest_framework_filters import FilterSet, RelatedFilter, AllLookupsFilter from .models import Project, Stage, Order, Realty, BuildingClassfication, ConstructionType class BuildingClassficationFilterSet(FilterSet): id = AllLookupsFilter() name = AllLookupsFilter() class Meta: model = BuildingClassfication class ConstructionTypeFilterSet(FilterSet): id = AllLookupsFilter() name = AllLookupsFilter() class Meta: model = ConstructionType class ProjectFilterSet(FilterSet): budget = AllLookupsFilter() budget_by_agreement = AllLookupsFilter() created = AllLookupsFilter() cro = AllLookupsFilter() currency = AllLookupsFilter() deal_type = AllLookupsFilter() name = AllLookupsFilter() price_and_term_required = AllLookupsFilter() state = AllLookupsFilter() term = AllLookupsFilter() term_type = AllLookupsFilter() text = AllLookupsFilter() work_type = AllLookupsFilter() customer = RelatedFilter('users.filters.UserFilterSet') realty = RelatedFilter('projects.filters.RealtyFilterSet') specialization = RelatedFilter('specializations.filters.SpecializationFilterSet') class Meta: model = Project class OrderFilterSet(FilterSet): id = AllLookupsFilter() contractor = RelatedFilter('users.filters.UserFilterSet') created = AllLookupsFilter() project = RelatedFilter('projects.filters.ProjectFilterSet') secure = AllLookupsFilter() status = AllLookupsFilter() class Meta: model = Order class StageFilterSet(FilterSet): id = AllLookupsFilter() name = AllLookupsFilter() result = AllLookupsFilter() cost = AllLookupsFilter() term = AllLookupsFilter() cost_type = AllLookupsFilter() term_type = AllLookupsFilter() order = RelatedFilter('projects.filters.OrderFilterSet') class Meta: model = Stage class RealtyFilterSet(FilterSet): id = AllLookupsFilter() name = AllLookupsFilter() building_classification = RelatedFilter('projects.filters.BuildingClassficationFilterSet') construction_type = RelatedFilter('projects.filters.ConstructionTypeFilterSet') location = RelatedFilter('common.filters.LocationFilterSet') user = RelatedFilter('users.filters.UserFilterSet') class Meta: model = Realty