def index_plot_data_cache(summary_form): key = summary_form.caching_key() cached = flask_cache.get(key) if cached is not None: return cached reports = [] hist_table, hist_field = get_history_target( summary_form.resolution.data) component_ids = component_names_to_ids(summary_form.component_names.data) (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)) cached = render_template("summary/index_plot_data.html", reports=reports, resolution=summary_form.resolution.data[0]) flask_cache.set(key, cached, timeout=60*60) return cached
def index_plot_data_cache(summary_form): key = summary_form.caching_key() cached = flask_cache.get(key) if cached is not None: return cached reports = [] hist_table, hist_field = get_history_target(summary_form.resolution.data) component_ids = component_names_to_ids(summary_form.component_names.data) (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.opsys_id).order_by(OpSysRelease.version).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, _ in counts: dates.remove(time) for date in dates: counts.append((date, 0)) counts = sorted(counts, key=itemgetter(0)) reports.append((str(osr), counts)) cached = render_template("summary/index_plot_data.html", reports=reports, resolution=summary_form.resolution.data[0]) flask_cache.set(key, cached, timeout=60 * 60) return cached
def index_plot_data_cache(summary_form): key = summary_form.caching_key() cached = flask_cache.get(key) if cached is not None: return cached history = compute_totals(summary_form) cached = render_template("summary/index_plot_data.html", history=history, resolution=summary_form.resolution.data[0]) flask_cache.set(key, cached, timeout=60 * 60) return cached
def problems_list_table_rows_cache(filter_form, pagination): key = ",".join((filter_form.caching_key(), str(pagination.limit), str(pagination.offset))) cached = flask_cache.get(key) if cached is not None: return cached p = get_problems(filter_form, pagination) cached = (render_template("problems/list_table_rows.html", problems=p), len(p)) flask_cache.set(key, cached, timeout=60 * 60) return cached
def reports_list_table_rows_cache(filter_form, pagination): key = ",".join((filter_form.caching_key(), str(pagination.limit), str(pagination.offset))) cached = flask_cache.get(key) if cached is not None: return cached r = get_reports(filter_form, pagination) cached = (render_template("reports/list_table_rows.html", reports=r), len(r)) flask_cache.set(key, cached, timeout=60 * 60) return cached
def reports_list_table_rows_cache(filter_form, pagination): key = ",".join((filter_form.caching_key(), str(pagination.limit), str(pagination.offset))) cached = flask_cache.get(key) if cached is not None: return cached r = get_reports(filter_form, pagination) cached = (render_template("reports/list_table_rows.html", reports=r), len(r)) flask_cache.set(key, cached, timeout=60*60) return cached
def problems_list_table_rows_cache(filter_form, pagination): key = ",".join((filter_form.caching_key(), str(pagination.limit), str(pagination.offset))) cached = flask_cache.get(key) if cached is not None: return cached p = get_problems(filter_form, pagination) cached = (render_template("problems/list_table_rows.html", problems=p), len(p)) flask_cache.set(key, cached, timeout=60*60) return cached