def create_linked_ucr(domain_link, report_config_id): if domain_link.is_remote: remote_configs = remote_get_ucr_config(domain_link, report_config_id) datasource = remote_configs["datasource"] report_config = remote_configs["report"] else: report_config = ReportConfiguration.get(report_config_id) datasource = DataSourceConfiguration.get(report_config.config_id) new_datasource = _get_or_create_datasource_link(domain_link, datasource) new_report = _get_or_create_report_link(domain_link, report_config, new_datasource) return LinkedUCRInfo(datasource=new_datasource, report=new_report)
def update_linked_ucr(domain_link, report_id): linked_report = ReportConfiguration.get(report_id) linked_datasource = linked_report.config if domain_link.is_remote: remote_configs = remote_get_ucr_config(domain_link, report_id) master_report = remote_configs["report"] master_datasource = remote_configs["datasource"] else: master_report = ReportConfiguration.get(linked_report.report_meta.master_id) master_datasource = master_report.config _update_linked_datasource(master_datasource, linked_datasource) _update_linked_report(master_report, linked_report)
def create_linked_ucr(domain_link, report_config_id): if domain_link.is_remote: remote_configs = remote_get_ucr_config(domain_link, report_config_id) datasource = remote_configs["datasource"] report_config = remote_configs["report"] else: report_config = ReportConfiguration.get(report_config_id) datasource = DataSourceConfiguration.get(report_config.config_id) # grab the linked app this linked report references try: downstream_app_id = get_downstream_app_id(domain_link.linked_domain, datasource.meta.build.app_id) except MultipleDownstreamAppsError: raise DomainLinkError(_("This report cannot be linked because it references an app that has multiple " "downstream apps.")) new_datasource = _get_or_create_datasource_link(domain_link, datasource, downstream_app_id) new_report = _get_or_create_report_link(domain_link, report_config, new_datasource) return LinkedUCRInfo(datasource=new_datasource, report=new_report)