def remove_additional_filters()

in annotation/annotation/tasks/services.py [0:0]


def remove_additional_filters(filter_args: Dict[str, Any]) -> Dict[str, Any]:
    """
    Remove inplace additional filter fields
    that are not related to the original model.
    Return their names and values.
    """
    additional_filters = {}

    new_filters = []
    for filter_field in filter_args["filters"]:
        field_name = filter_field["field"]
        if field_name not in ADDITIONAL_TASK_FIELDS:
            new_filters.append(filter_field)
            continue
        additional_filters[field_name] = (
            filter_field["value"]
            if isinstance(filter_field["value"], list)
            else [filter_field["value"]]
        )
    filter_args["filters"] = new_filters

    new_sorting = []
    for sorting_field in filter_args["sorting"]:
        if sorting_field["field"] not in ADDITIONAL_TASK_FIELDS:
            new_sorting.append(sorting_field)
    filter_args["sorting"] = new_sorting

    return additional_filters