def choices_to_list(choices):
    """Helper function that transforms choices dict to an ordered string list.
    Numeric values are sorted and placed after string values.

    :param dict choices: The dict containing available choices.
    :rtype: list[str]

    >>> choices_to_list({0: 0, 1: 1, 2: 2, "foo": 2})
    ['foo', '0', '1', '2']
    """
    return list(
        map(
            str,
            sorted(choices.keys(), key=lambda v: v if type(v) == int else -1),
        )
    )