Esempio n. 1
0
File: summary.py Progetto: 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])
Esempio n. 2
0
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]
    )
Esempio n. 3
0
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])
Esempio n. 4
0
def survey_eval_summaries(id):
    '''
    Creates new summaries which are shown in form of histograms, when called (web GUI).
    '''
    srvy = db.session.query(SurveyModel).get(id)
    if srvy is None:
        print("srvy is none")  #debug
        abort(404)

    form = SummaryForm()
    if form.validate_on_submit():
        return redirect(url_for('survey_detail', id=srvy.id))
    return render_template('srvys/evaluate.html',
                           form=form,
                           title='summaries',
                           srvy=srvy,
                           survey_id=srvy.surveyid)
Esempio n. 5
0
def survey_summaries(id):
    '''
    Shows the summaries of a survey in form of histograms (web GUI).
    '''
    srvy = db.session.query(SurveyModel).get(id)
    print("hilfe")
    print(srvy)
    if srvy is None:
        abort(404)

    form = SummaryForm()
    if form.validate_on_submit():
        return redirect(url_for('survey_detail', id=srvy.id))
    return render_template('srvys/histograms.html',
                           form=form,
                           title='summaries',
                           srvy=srvy,
                           survey_id=srvy.surveyid)
def summary_index():
    form = SummaryForm()
    if form.validate_on_submit():
        table = PrettyTable()
        email = form.email.data
        requests = ip_request_for_email(email).all()
        table.add_column(u'Name', map(lambda x: x.name, requests))
        table.add_column(u'IPs', map(lambda x: ', '.join(x.ips), requests))
        table.add_column(u'Vom', map(lambda x: x.created_at.strftime('%d.%m.%Y'), requests))
        table.add_column(u'Löschlink', ['[%d]' % x for x in range(len(requests))])

        links = []
        for r in requests:
            url = url_for("main.config_destroy", request_id=r.id,
                          signed_token=r.token_destroy, _external=True)
            links.append(url)

        subject = '[Freifunk Berlin] IP-Auflistung'
        data = {'table' : table, 'links' : links, 'email': email}
        send_email(email, subject, 'summary/email.txt', data)
        return render_template('summary/success.html', email = email)

    return render_template('summary/form.html', form = form)
Esempio n. 7
0
def summary():
    form = SummaryForm()
    if 'email' not in session:
        return redirect(url_for('signin'))

    user = User.query.filter_by(email=session['email']).first()

    if user is None:
        return redirect(url_for('signin'))
    else:

        courses = Course.query.filter_by(ins_id=user.uid).all()
        courseChoices = []
        for course in courses:
            courseChoices.append(
                (course.code, course.code + '-' + course.cname))
        form.course.choices = courseChoices

        date = form.time.data
        ccode = courses[0].code
        if request.method == 'POST':
            ccode = form.course.data
            date = form.time.data
        course_name = Course.query.filter_by(code=ccode).first().cname
        attList = Attendance.query.filter_by(course_code=ccode,
                                             date=date).all()
        rows = []
        for att in attList:
            row = {}
            row['course_code'] = att.course_code
            row['course_name'] = course_name
            row['stu_id'] = att.stu_id
            row['stu_name'] = att.stu_name
            row['checkin_time'] = att.checkin_time
            row['checkout_time'] = att.checkout_time
            row['addi'] = att.additional
            row['status'] = att.status
            rows.append(row)
        sTable = AttendanceTable(rows)

        return render_template('summary.html', form=form, table=sTable)