diff --git a/forms-flow-api/src/formsflow_api/models/form_process_mapper.py b/forms-flow-api/src/formsflow_api/models/form_process_mapper.py index de721c15f9..e1d0509cfd 100644 --- a/forms-flow-api/src/formsflow_api/models/form_process_mapper.py +++ b/forms-flow-api/src/formsflow_api/models/form_process_mapper.py @@ -191,6 +191,7 @@ def find_all_forms( sort_order=None, form_ids=None, is_active=None, + form_type=None, **filters, ): # pylint: disable=too-many-arguments """Fetch all active and inactive forms which are not deleted.""" @@ -204,6 +205,9 @@ def find_all_forms( and_(FormProcessMapper.deleted.is_(False)), FormProcessMapper.id.in_(filtered_form_ids), ) + # form type is list of type to filter the form + if form_type: + query = query.filter(FormProcessMapper.form_type.in_(form_type)) if is_active is not None: value = FormProcessMapperStatus["ACTIVE" if is_active else "INACTIVE"].value diff --git a/forms-flow-api/src/formsflow_api/resources/form_process_mapper.py b/forms-flow-api/src/formsflow_api/resources/form_process_mapper.py index 9284c6640a..5b3fe639f7 100644 --- a/forms-flow-api/src/formsflow_api/resources/form_process_mapper.py +++ b/forms-flow-api/src/formsflow_api/resources/form_process_mapper.py @@ -215,9 +215,11 @@ def get(): # pylint: disable=too-many-locals limit: int = dict_data.get("limit") sort_by: str = dict_data.get("sort_by", "id") sort_order: str = dict_data.get("sort_order", "desc") - form_type: str = dict_data.get("form_type", "form") + form_type: str = dict_data.get("form_type", None) is_active = dict_data.get("is_active", None) + if form_type: + form_type = form_type.split(",") if form_name: form_name: str = form_name.replace("%", r"\%").replace("_", r"\_") diff --git a/forms-flow-web/src/components/Form/List.js b/forms-flow-web/src/components/Form/List.js index 4ca987b911..99cc9c9460 100644 --- a/forms-flow-web/src/components/Form/List.js +++ b/forms-flow-web/src/components/Form/List.js @@ -71,8 +71,7 @@ const List = React.memo((props) => { const designerFormLoading = useSelector( (state) => state.formCheckList.designerFormLoading ); - const searchText = useSelector((state) => state.bpmForms.searchText); - const formType = useSelector((state) => state.bpmForms.formType); + const searchText = useSelector((state) => state.bpmForms.searchText); const isDesigner = userRoles.includes(STAFF_DESIGNER); const pageNo = useSelector((state) => state.bpmForms.page); @@ -108,9 +107,6 @@ const List = React.memo((props) => { const fetchForms = () => { let filters = [pageNo, limit, sortBy, sortOrder, searchText]; - if (isDesigner) { - filters.push(formType); - } dispatch(setFormSearchLoading(true)); dispatch(fetchBPMFormList(...filters)); }; @@ -126,7 +122,6 @@ const List = React.memo((props) => { sortBy, sortOrder, searchText, - formType, ]); const formCheck = (formCheckList) => {