Пример #1
0
def reserve():
    state = ReserveState(Config.context)

    offForm = ReserveOffTimeForm()
    onForm = ReserveOnTimeForm()
    undoForm = UndoReservationForm()

    if offForm.validate_on_submit():
        # state書き換え
        state.change_state(offForm)

        # 赤外線送信
        # stateを元に赤外線送信
        if not state.sendSignalToAC():
            flash('信号を送信できませんでした')
        else:
            offtext = "{h}時間後の切予約をしました".\
                    format(h=offForm.off_hour.data)
            flash(offtext)
        return redirect(url_for('reserve'))

    if onForm.validate_on_submit():
        # state書き換え
        state.change_state(onForm)

        # 赤外線送信
        # stateを元に赤外線送信
        if not state.sendSignalToAC():
            flash('信号を送信できませんでした')
        else:
            ontext = "{h}時間後の入予約をしました".\
                    format(h=onForm.on_hour.data)
            flash(ontext)
        return redirect(url_for('reserve'))

    if undoForm.validate_on_submit():
        # state書き換え
        # 取り消し処理
        state.change_state(undoForm)

        # 赤外線送信
        # stateを元に赤外線送信
        if not state.sendSignalToAC():
            flash('信号を送信できませんでした')
        else:
            undotext = "予約を取り消しました"
            flash(undotext)
        return redirect(url_for('reserve'))

    timeout_text = state.makeTimeoutText()

    return render_template('reservation.html',
                           timeout_text=timeout_text,
                           offForm=offForm,
                           onForm=onForm,
                           undoForm=undoForm)