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)