diff --git a/pms_api_rest/datamodels/pms_partner.py b/pms_api_rest/datamodels/pms_partner.py index 02f3a6dbe..4b0c9e03d 100644 --- a/pms_api_rest/datamodels/pms_partner.py +++ b/pms_api_rest/datamodels/pms_partner.py @@ -14,6 +14,7 @@ class PmsPartnerSearchParam(Datamodel): name = fields.String(required=False, allow_none=True) housed = fields.Boolean(required=False, allow_none=True) filter = fields.String(required=False, allow_none=True) + filterByType = fields.String(required=False, allow_none=True) class PmsPartnerInfo(Datamodel): diff --git a/pms_api_rest/services/pms_partner_service.py b/pms_api_rest/services/pms_partner_service.py index 7aac4ded8..54bf754a7 100644 --- a/pms_api_rest/services/pms_partner_service.py +++ b/pms_api_rest/services/pms_partner_service.py @@ -39,6 +39,17 @@ class PmsPartnerService(Component): .mapped("partner_id") ) domain.append(("id", "in", partners_housed.ids)) + if ( + pms_partner_search_params.filterByType + and pms_partner_search_params.filterByType != "all" + ): + if pms_partner_search_params.filterByType == "company": + domain.append(("is_company", "=", True)) + elif pms_partner_search_params.filterByType == "agency": + domain.append(("is_agency", "=", True)) + elif pms_partner_search_params.filterByType == "individual": + domain.append(("is_company", "=", False)) + domain.append(("is_agency", "=", False)) if pms_partner_search_params.filter: domain.append(("display_name", "ilike", pms_partner_search_params.filter)) if pms_partner_search_params.vatNumberOrName: