diff --git a/met-api/src/met_api/models/survey.py b/met-api/src/met_api/models/survey.py index 72cdef593..a54a8a43f 100644 --- a/met-api/src/met_api/models/survey.py +++ b/met-api/src/met_api/models/survey.py @@ -84,17 +84,18 @@ def filter_by_search_options(cls, survey_search_options: SurveySearchOptions, qu if survey_search_options.exclude_template: query = query.filter(Survey.is_template.is_(False)) - if survey_search_options.is_unlinked: - query = query.filter(Survey.engagement_id.is_(None)) - + # filter by status + status_filters = [] if survey_search_options.is_linked: - query = query.filter(Survey.engagement_id.isnot(None)) - - if survey_search_options.is_hidden: - query = query.filter(Survey.is_hidden.is_(True)) - + status_filters.append(Survey.engagement_id.isnot(None)) + if survey_search_options.is_unlinked: + status_filters.append(Survey.engagement_id.is_(None)) if survey_search_options.is_template: - query = query.filter(Survey.is_template.is_(True)) + status_filters.append(Survey.is_template.is_(True)) + if survey_search_options.is_hidden: + status_filters.append(Survey.is_hidden.is_(True)) + if status_filters: + query = query.filter(or_(*status_filters)) query = cls._filter_by_created_date(query, survey_search_options) diff --git a/met-web/src/components/survey/listing/AdvancedSearch.tsx b/met-web/src/components/survey/listing/AdvancedSearch.tsx index 18169094f..2f7477639 100644 --- a/met-web/src/components/survey/listing/AdvancedSearch.tsx +++ b/met-web/src/components/survey/listing/AdvancedSearch.tsx @@ -12,6 +12,11 @@ import { } from '@mui/material'; import { MetLabel, PrimaryButton, SecondaryButton } from 'components/common'; import { AdvancedSearchFilters, SurveyListingContext } from './SurveyListingContext'; +import VisibilityOffIcon from '@mui/icons-material/VisibilityOff'; +import CheckIcon from '@mui/icons-material/Check'; +import LinkIcon from '@mui/icons-material/Link'; +import DashboardIcon from '@mui/icons-material/Dashboard'; +import { Palette } from 'styles/Theme'; export const AdvancedSearch = () => { const isMediumScreen = useMediaQuery((theme: Theme) => theme.breakpoints.down('lg')); @@ -58,21 +63,48 @@ export const AdvancedSearch = () => { } - label="Hidden" + label={ + + + Hidden + + } /> } - label="Template" + label={ + + + Template + + } /> } - label="Ready" + label={ + <> + + + Ready + + + } /> } - label="Linked" + label={ + <> + + + Linked + + + } />