def download_report(self, *event):
        """Generate and download final report"""
        report_stream = io.BytesIO()
        reports.generate(
            self._report_cfg.generator,
            template_url=self._report_cfg.template,
            cfg=self._report_cfg,
            data=self.data,
            output_path=report_stream,
        )

        try:
            session_id = pn.state.curdoc.session_context.id
            logger.insights(
                f"New report with GeoXID: {self.geox_id}, SessionID: {session_id}"
            )
        except AttributeError as e:
            logger.insights(f"New report with GeoXID: {self.geox_id}")
            logger.error(f"SessionID not available: {e}")

        # Clear scenarios from state
        self._state["scenarios"].clear()

        # Reset report byte stream to start before passing it back
        report_stream.seek(0)
        return report_stream
Exemplo n.º 2
0
async def log_dep(token, session_id):
    if not get_log_settings().log_user_info:
        return
    user_token = await oauth.obo(token, scope="User.Read")
    dep = await _user_department(user_token, config.api.ms_graph.url)
    if dep is not None:
        logger.insights(f"Department: {dep}, SessionID: {session_id}")

    return None
Exemplo n.º 3
0
    def __init__(self, report_from_composition, net_gross):
        """Set initial values based on previous stage"""
        super().__init__()
        self._state = state.get_user_state().setdefault(APP, {})
        self._state.setdefault("scenarios", {})
        self._current_scenario_name = None
        self.net_gross = net_gross
        self.report_from_composition = report_from_composition
        self.scenario_name = f"Scenario {len(self._state['scenarios']) + 1}"
        self.data = charts.data_as_dataframe(report_from_composition, CFG.columns)

        try:
            session_id = pn.state.curdoc.session_context.id
            logger.insights(f"New result: {self.net_gross}, SessionID: {session_id}")
            logger.insights(
                f"SessionID: {session_id}, Choices: {report_from_composition}"
            )
        except AttributeError as e:
            logger.error(f"SessionID not available: {e}")
            logger.insights(f"New result: {self.net_gross}")
            logger.insights(f"Choices: {report_from_composition}")