'Determine if a tool can be used in workflows. External tools and the
upload tool are currently not supported by workflows.'

def check_workflow_compatible(self, tool_source):

    if self.has_multiple_pages:
        return False
    if self.tool_type.startswith('data_source'):
        return False
    if self.produces_collections_of_unknown_type:
        return False
    if hasattr(tool_source, 'root'):
        root = tool_source.root
        if (not string_as_bool(root.get('workflow_compatible', 'True'))):
            return False
    return True
