def infographic_pdf_extractor(impact_report, component_metadata): """Extracting infographic result and format it for PDF generation. :param impact_report: the impact report that acts as a proxy to fetch all the data that extractor needed :type impact_report: safe.report.impact_report.ImpactReport :param component_metadata: the component metadata. Used to obtain information about the component we want to render :type component_metadata: safe.report.report_metadata. QgisComposerComponentsMetadata :return: context for rendering phase :rtype: dict .. versionadded:: 4.0 """ # QGIS Composer needed certain context to generate the output # - Map Settings # - Substitution maps # - Element settings, such as icon for picture file or image source context = QGISComposerContext() # we only have html elements for this try: infographic_html = jinja2_output_as_string( impact_report, 'infographic-layout') except TemplateError: return context if infographic_html.strip(): # get component object margin_left = 0 margin_right = 0 margin_top = 4.5 margin_bottom = 0 html_frame_elements = [ { 'id': 'infographic', 'mode': 'text', 'text': jinja2_output_as_string( impact_report, 'infographic-layout'), 'margin_left': margin_left, 'margin_top': margin_top, 'height': ( component_metadata.page_height - margin_top - margin_bottom), 'width': ( component_metadata.page_width - margin_left - margin_right) } ] context.html_frame_elements = html_frame_elements return context
def infographic_pdf_extractor(impact_report, component_metadata): """Extracting infographic result and format it for PDF generation. :param impact_report: the impact report that acts as a proxy to fetch all the data that extractor needed :type impact_report: safe.report.impact_report.ImpactReport :param component_metadata: the component metadata. Used to obtain information about the component we want to render :type component_metadata: safe.report.report_metadata. QgisComposerComponentsMetadata :return: context for rendering phase :rtype: dict .. versionadded:: 4.0 """ # QGIS Composer needed certain context to generate the output # - Map Settings # - Substitution maps # - Element settings, such as icon for picture file or image source context = QGISComposerContext() # we only have html elements for this try: infographic_html = jinja2_output_as_string(impact_report, 'infographic-layout') except TemplateError: return context if infographic_html.strip(): # get component object margin_left = 0 margin_right = 0 margin_top = 4.5 margin_bottom = 0 html_frame_elements = [{ 'id': 'infographic', 'mode': 'text', 'text': jinja2_output_as_string(impact_report, 'infographic-layout'), 'margin_left': margin_left, 'margin_top': margin_top, 'height': (component_metadata.page_height - margin_top - margin_bottom), 'width': (component_metadata.page_width - margin_left - margin_right) }] context.html_frame_elements = html_frame_elements return context
def impact_table_pdf_extractor(impact_report, component_metadata): """Extracting impact summary of the impact layer. For PDF generations :param impact_report: the impact report that acts as a proxy to fetch all the data that extractor needed :type impact_report: safe.report.impact_report.ImpactReport :param component_metadata: the component metadata. Used to obtain information about the component we want to render :type component_metadata: safe.report.report_metadata. ReportComponentsMetadata :return: context for rendering phase :rtype: dict .. versionadded:: 4.0 """ # QGIS Composer needed certain context to generate the output # - Map Settings # - Substitution maps # - Element settings, such as icon for picture file or image source context = QGISComposerContext() extra_args = component_metadata.extra_args html_report_component_key = resolve_from_dictionary( extra_args, ['html_report_component_key']) # we only have html elements for this html_frame_elements = [{ 'id': 'impact-report', 'mode': 'text', 'text': jinja2_output_as_string(impact_report, html_report_component_key), 'margin_left': 10, 'margin_top': 10, }] context.html_frame_elements = html_frame_elements return context
def analysis_provenance_details_pdf_extractor(impact_report, component_metadata): """Extracting the main provenance details to its own pdf report. For PDF generations :param impact_report: the impact report that acts as a proxy to fetch all the data that extractor needed :type impact_report: safe.report.impact_report.ImpactReport :param component_metadata: the component metadata. Used to obtain information about the component we want to render :type component_metadata: safe.report.report_metadata. ReportComponentsMetadata :return: context for rendering phase :rtype: dict .. versionadded:: 4.1 """ # QGIS Composer needed certain context to generate the output # - Map Settings # - Substitution maps # - Element settings, such as icon for picture file or image source context = QGISComposerContext() # we only have html elements for this html_frame_elements = [{ 'id': 'analysis-provenance-details-report', 'mode': 'text', 'text': jinja2_output_as_string(impact_report, 'analysis-provenance-details-report'), 'margin_left': 10, 'margin_top': 10, }] context.html_frame_elements = html_frame_elements return context
def impact_table_pdf_extractor(impact_report, component_metadata): """Extracting impact summary of the impact layer. For PDF generations :param impact_report: the impact report that acts as a proxy to fetch all the data that extractor needed :type impact_report: safe.report.impact_report.ImpactReport :param component_metadata: the component metadata. Used to obtain information about the component we want to render :type component_metadata: safe.report.report_metadata. ReportComponentsMetadata :return: context for rendering phase :rtype: dict .. versionadded:: 4.0 """ # QGIS Composer needed certain context to generate the output # - Map Settings # - Substitution maps # - Element settings, such as icon for picture file or image source context = QGISComposerContext() extra_args = component_metadata.extra_args html_report_component_key = resolve_from_dictionary( extra_args, ['html_report_component_key']) # we only have html elements for this html_frame_elements = [ { 'id': 'impact-report', 'mode': 'text', 'text': jinja2_output_as_string( impact_report, html_report_component_key), 'margin_left': 10, 'margin_top': 10, } ] context.html_frame_elements = html_frame_elements return context
def analysis_provenance_details_pdf_extractor( impact_report, component_metadata): """Extracting the main provenance details to its own pdf report. For PDF generations :param impact_report: the impact report that acts as a proxy to fetch all the data that extractor needed :type impact_report: safe.report.impact_report.ImpactReport :param component_metadata: the component metadata. Used to obtain information about the component we want to render :type component_metadata: safe.report.report_metadata. ReportComponentsMetadata :return: context for rendering phase :rtype: dict .. versionadded:: 4.1 """ # QGIS Composer needed certain context to generate the output # - Map Settings # - Substitution maps # - Element settings, such as icon for picture file or image source context = QGISComposerContext() # we only have html elements for this html_frame_elements = [ { 'id': 'analysis-provenance-details-report', 'mode': 'text', 'text': jinja2_output_as_string( impact_report, 'analysis-provenance-details-report'), 'margin_left': 10, 'margin_top': 10, } ] context.html_frame_elements = html_frame_elements return context