def get_product_templates(context, product_ids, blocked_products=None):
    """ Retrieves the top n_templates product templates of all given products.

        :param context: A session context.
        :param product_ids: A list with the ids of the intended products.

        :returns: A map {product_id: list of (strength, template_id) tuples}.
    """
    result = {}
    if blocked_products is None:
        blocked_products = []

    templates_map = context.data_proxy.fetch_product_templates(product_ids)
    for p_id, templates_tuple in templates_map.items():
        approved_templates = [t for t in templates_tuple[0] if t[1] not in blocked_products]
        result[p_id] = approved_templates

    return result