Example #1
0
def _generate_display_html(template_renderer, xsrf, app_context,
                           visualizations):
    # Package-protected: pylint: disable=protected-access

    # First, load jobs for all generators required for an visualization.
    # Jobs may directly contain small results, just hold references to
    # larger results, or both.
    any_generator_not_running = False
    data_source_jobs = {}
    for generator_class in analytics_utils._generators_for_visualizations(
            visualizations):
        job = generator_class(app_context).load()
        data_source_jobs[generator_class] = job
        if not job or job.has_finished:
            any_generator_not_running = True

    # Generate HTML section for each visualization.
    html_sections = []
    for v in visualizations:
        html_sections.extend(
            _generate_visualization_section(template_renderer, xsrf,
                                            app_context, v, data_source_jobs))

    # Generate JS to pull contents of data-sources up to page and feed it
    # to visualization functions.
    html_sections.extend(
        _generate_data_source_script(template_renderer, visualizations, xsrf))

    # Generate page content
    names_of_visualizations_with_generators = []
    for visualization in visualizations:
        if analytics_utils._generators_for_visualizations([visualization]):
            names_of_visualizations_with_generators.append(visualization.name)
    rest_sources = []
    has_pagination = False  # True if any data_source has chunk size > 0
    for rdsc in analytics_utils._rest_data_source_classes(visualizations):
        rest_sources.append({
            'name': rdsc.get_name(),
            'title': rdsc.get_title(),
            'chunk_size': rdsc.get_default_chunk_size(),
        })
        has_pagination = has_pagination or rdsc.get_default_chunk_size()
    return template_renderer.render(
        None, 'models/analytics/display.html', {
            'sections': html_sections,
            'any_generator_not_running': any_generator_not_running,
            'xsrf_token_run': xsrf.create_xsrf_token('run_visualizations'),
            'visualizations': names_of_visualizations_with_generators,
            'rest_sources': rest_sources,
            'r': template_renderer.get_current_url(),
            'has_pagination': has_pagination
        })
Example #2
0
def _generate_display_html(template_renderer, xsrf, app_context,
                           visualizations):
    # Package-protected: pylint: disable=protected-access

    # First, load jobs for all generators required for an visualization.
    # Jobs may directly contain small results, just hold references to
    # larger results, or both.
    any_generator_not_running = False
    data_source_jobs = {}
    for generator_class in analytics_utils._generators_for_visualizations(
        visualizations):
        job = generator_class(app_context).load()
        data_source_jobs[generator_class] = job
        if not job or job.has_finished:
            any_generator_not_running = True

    # Generate HTML section for each visualization.
    html_sections = []
    for v in visualizations:
        html_sections.extend(_generate_visualization_section(
            template_renderer, xsrf, app_context, v, data_source_jobs))

    # Generate JS to pull contents of data-sources up to page and feed it
    # to visualization functions.
    html_sections.extend(_generate_data_source_script(template_renderer,
                                                      visualizations, xsrf))

    # Generate page content
    names_of_visualizations_with_generators = []
    for visualization in visualizations:
        if analytics_utils._generators_for_visualizations([visualization]):
            names_of_visualizations_with_generators.append(visualization.name)
    rest_sources = []
    has_pagination = False  # True if any data_source has chunk size > 0
    for rdsc in analytics_utils._rest_data_source_classes(visualizations):
        rest_sources.append({
            'name': rdsc.get_name(),
            'title': rdsc.get_title(),
            'chunk_size': rdsc.get_default_chunk_size(),
        })
        has_pagination = has_pagination or rdsc.get_default_chunk_size()
    return template_renderer.render(
        None, 'models/analytics/display.html',
        {
            'sections': html_sections,
            'any_generator_not_running': any_generator_not_running,
            'xsrf_token_run': xsrf.create_xsrf_token('run_visualizations'),
            'visualizations': names_of_visualizations_with_generators,
            'rest_sources': rest_sources,
            'r': template_renderer.get_current_url(),
            'has_pagination': has_pagination
        })
Example #3
0
 def _get_generator_classes(self):
     # pylint: disable=protected-access
     return analytics_utils._generators_for_visualizations(
         [by_name[name] for name in self.request.get_all('visualization')])
Example #4
0
 def _get_generator_classes(self):
     return analytics_utils._generators_for_visualizations(
         [by_name[name] for name in self.request.get_all('visualization')])
 def _get_generator_classes(self):
     return analytics_utils._generators_for_visualizations(
         [by_name[name] for name in self.request.get_all('visualization')])