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 ''
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 ''
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)