예제 #1
0
파일: summary.py 프로젝트: trams/faf
def index():
    summary_form = SummaryForm(request.args)
    summary_form.components.choices = component_list()
    reports = []
    if summary_form.validate():

        hist_table, hist_field = get_history_target(
            summary_form.resolution.data)

        component_ids = []
        for comp in summary_form.components.data or []:
            component_ids += map(int, comp.split(','))

        (since_date, to_date) = summary_form.daterange.data

        if summary_form.opsysreleases.data:
            opsysreleases = summary_form.opsysreleases.data
        else:
            opsysreleases = (
                db.session.query(OpSysRelease)
                .filter(OpSysRelease.status != "EOL")
                .order_by(OpSysRelease.releasedate)
                .all())

        for osr in opsysreleases:
            counts = (
                db.session.query(hist_field.label("time"),
                                 func.sum(hist_table.count).label("count"))
                .group_by(hist_field)
                .order_by(hist_field))

            counts = counts.filter(hist_table.opsysrelease_id == osr.id)

            if component_ids:
                counts = (counts.join(Report)
                                .filter(Report.component_id.in_(component_ids)))

            counts = (counts.filter(hist_field >= since_date)
                            .filter(hist_field <= to_date))

            counts = counts.all()

            dates = set(date_iterator(since_date,
                                      summary_form.resolution.data,
                                      to_date))

            for time, count in counts:
                dates.remove(time)
            for date in dates:
                counts.append((date, 0))
            counts = sorted(counts, key=itemgetter(0))
            reports.append((str(osr), counts))

    return render_template("summary/index.html",
                           summary_form=summary_form,
                           reports=reports,
                           resolution=summary_form.resolution.data[0])
예제 #2
0
파일: summary.py 프로젝트: patriczek/faf
def index():
    summary_form = SummaryForm(request.args)
    reports = []
    if summary_form.validate():

        index_plot_data = index_plot_data_cache(summary_form)
        return render_template("summary/index.html", summary_form=summary_form, index_plot_data=index_plot_data)

    return render_template(
        "summary/index.html", summary_form=summary_form, reports=reports, resolution=summary_form.resolution.data[0]
    )
예제 #3
0
파일: summary.py 프로젝트: xsuchy/faf
def index():
    summary_form = SummaryForm(request.args)
    reports = []
    if summary_form.validate():

        index_plot_data = index_plot_data_cache(summary_form)
        return render_template("summary/index.html",
                               summary_form=summary_form,
                               index_plot_data=index_plot_data)

    return render_template("summary/index.html",
                           summary_form=summary_form,
                           reports=reports,
                           resolution=summary_form.resolution.data[0])