Beispiel #1
0
    def make_html_report_per_user(self,
                                  results,
                                  email,
                                  domain='emmaa.indra.bio',
                                  limit=None):
        """Produce a report for all query results per user in an html file.

        Parameters
        ----------
        results : list[tuple]
            Results as a list of tuples where each tuple has the format
            (model_name, query, mc_type, result_json, date).
        email : str
            The email of the user to get the results for.
        domain : str
            The domain name for the unsubscibe link in the report. Default:
            "emmaa.indra.bio".
        limit : int
            The limit for how many results to show. With this set,
            on the first 'limit' results are processed into html, i.e. use
            results[:limit]. Default: all.

        Returns
        -------
        str
            A string containing an html document
        """
        results = results[:limit] if limit else results

        # Get the query deltas
        static_results_delta, dynamic_results_delta = \
            self.make_reports_from_results(results, report_format='html',
                                           include_no_diff=False,
                                           domain=domain)

        # Generate unsubscribe link
        link = generate_unsubscribe_link(email=email, domain=domain)

        if static_results_delta or dynamic_results_delta:
            return email_html.render(
                static_query_deltas=static_results_delta,
                dynamic_query_deltas=dynamic_results_delta,
                unsub_link=link)
        else:
            return ''
Beispiel #2
0
def make_html_report_per_user(static_results_delta,
                              open_results_delta,
                              dynamic_results_delta,
                              email,
                              domain='emmaa.indra.bio'):
    """Produce a report for all query results per user in an html file.

    Parameters
    ----------
    static_results_delta : list
        A list of tuples of query deltas for static queries. Each tuple
        has a format (english_query, link, model, mc_type)
    open_results_delta : list
        A list of tuples of query deltas for open queries. Each tuple
        has a format (english_query, link, model, mc_type)
    dynamic_results_delta : list
        A list of tuples of query deltas for dynamic queries. Each tuple
        has a format (english_query, link, model, mc_type)
    email : str
        The email of the user to get the results for.
    domain : str
        The domain name for the unsubscibe link in the report. Default:
        "emmaa.indra.bio".

    Returns
    -------
    str
        A string containing an html document
    """
    # Generate unsubscribe link
    link = generate_unsubscribe_link(email=email, domain=domain)
    email_html = QueryEmailHtmlBody()
    if static_results_delta or open_results_delta or dynamic_results_delta:
        return email_html.render(static_query_deltas=static_results_delta,
                                 open_query_deltas=open_results_delta,
                                 dynamic_query_deltas=dynamic_results_delta,
                                 unsub_link=link)
    else:
        return ''
Beispiel #3
0
def make_model_html_email(msg_dicts, email, domain='emmaa.indra.bio'):
    """Render html file for model notification email."""
    unsub_link = generate_unsubscribe_link(email=email, domain=domain)
    email_html = ModelDeltaEmailHtmlBody()
    return email_html.render(msg_dicts, unsub_link=unsub_link)