Example #1
0
def wakeupSettings():
    adminInfo = admin.query.filter_by(username='******').first()
    wakeupEventInfo = wakeupEvent.query.filter_by(id=1).first()
    if not adminInfo or not wakeupEventInfo:
        db.session.close()
        return redirect('/init')
    if not 'username' in session:
        flash(u'请先登录', 'error')
        db.session.close()
        return redirect('/manage/login')
    else:
        wakeupEventInfo = wakeupEvent.query.filter_by(id=1).first()
        if request.method == 'GET':
            _info = {}
            _info['switch']     = wakeupEventInfo.switch
            _info['begin_time'] = wakeupEventInfo.begin_time
            _info['end_time']   = wakeupEventInfo.end_time
            _info['early_ret']  = wakeupEventInfo.early_ret
            _info['late_ret']   = wakeupEventInfo.late_ret
            _info['off_ret']    = wakeupEventInfo.off_ret
            _info['acc_ret']    = wakeupEventInfo.acc_ret
            _info['done_ret']   = wakeupEventInfo.done_ret
            db.session.close()
            return render_template('manage_wakeup_settings.html', info=_info)
        else:
            switch     = int(str(request.form['switch']))
            begin_time = request.form['begin_time']
            end_time   = request.form['end_time']
            early_ret  = request.form['early_ret']
            late_ret   = request.form['late_ret']
            off_ret    = request.form['off_ret']
            acc_ret    = request.form['acc_ret']
            done_ret   = request.form['done_ret']
            if begin_time == '':
                flash(u'请填写开始时间', 'error')
                db.session.close()
                return redirect('/manage/wakeup_event/settings')
            elif end_time == '':
                flash(u'请填写结束时间', 'error')
                db.session.close()
                return redirect('/manage/wakeup_event/settings')
            else:
                if time_misc.check_double_time(begin_time, end_time):
                    wakeupEventInfo.switch     = switch
                    wakeupEventInfo.begin_time = begin_time
                    wakeupEventInfo.end_time   = end_time
                    wakeupEventInfo.early_ret  = early_ret
                    wakeupEventInfo.late_ret   = late_ret
                    wakeupEventInfo.off_ret    = off_ret
                    wakeupEventInfo.acc_ret    = acc_ret
                    wakeupEventInfo.done_ret   = done_ret
                    db.session.commit()
                    flash(u'修改成功', 'success')
                    db.session.close()
                    return redirect('/manage/wakeup_event/summary')
                else:
                    flash(u'时间不合法或者结束时间大于开始时间', 'error')
                    db.session.close()
                    return redirect('/manage/wakeup_event/settings')
Example #2
0
def initStepTwo():
    adminInfo = admin.query.filter_by(username='******').first()
    wakeupEventInfo = wakeupEvent.query.filter_by(id=1).first()
    if not adminInfo:
        flash(u'请先完成第一步,设置密码', 'error')
        db.session.close()
        return redirect('/init/step1')
    if wakeupEventInfo:
        db.session.close()
        return redirect('/')
    if request.method == 'GET':
        db.session.close()
        return render_template('init_step_two.html')
    elif request.method == 'POST':
        begin_time = request.form['begin_time']
        end_time   = request.form['end_time']
        early_ret  = request.form['early_ret']
        late_ret   = request.form['late_ret']
        off_ret    = request.form['off_ret']
        acc_ret    = request.form['acc_ret']
        done_ret   = request.form['done_ret']
        if begin_time == '':
            flash(u'请填写开始时间', 'error')
            db.session.close()
            return redirect('/init/step2')
        elif end_time == '':
            flash(u'请填写结束时间', 'error')
            db.session.close()
            return redirect('/init/step2')
        else:
            if time_misc.check_double_time(begin_time, end_time):
                wakeupEventInfo = wakeupEvent('1970-1-1', 0, begin_time, end_time, early_ret, late_ret, off_ret, acc_ret, done_ret)
                db.session.add(wakeupEventInfo)
                db.session.commit()
                db.session.close()
                return redirect('/init/done')
            else:
                flash(u'时间不合法或者结束时间大于开始时间', 'error')
                db.session.close()
                return redirect('/init/step2')
Example #3
0
def reflectReq():
    adminInfo = admin.query.filter_by(username='******').first()
    wakeupEventInfo = wakeupEvent.query.filter_by(id=1).first()
    if not adminInfo or not wakeupEventInfo:
        db.session.close()
        return redirect('/init')
    _event = request.args.get('event')
    if _event:
        if _event == 'wakeup':
            try:
                _id = int(request.args.get('id'))
            except Exception, e:
                db.session.close()
                return abort(404)
            userInfo = user.query.filter_by(id=_id).first()
            if not userInfo:
                userInfo = user(_id, '')
                db.session.add(userInfo)
                db.session.commit()
            _date = time.strftime("%Y-%m-%d", time.localtime())
            _time = time.strftime('%H:%M',time.localtime())
            # Return transed off_ret if switch is off
            if not wakeupEventInfo.switch:
                _ret = str_misc.trans_str(wakeupEventInfo.off_ret, _time)
                db.session.close()
                return _ret
            wakeupRecInfo = wakeupRec.query.filter_by(user_id=_id, create_date=_date).first()
            if not wakeupRecInfo:
                # Return early_ret if user hasn't checked and time is earlier than the begin time
                if time_misc.check_double_time(_time, wakeupEventInfo.begin_time):
                    _ret = str_misc.trans_str(wakeupEventInfo.early_ret, _time)
                    db.session.close()
                    return _ret
                # Return late_ret if user hasn't checked and time is later than the begin time
                if time_misc.check_double_time(wakeupEventInfo.end_time, _time):
                    _ret = str_misc.trans_str(wakeupEventInfo.late_ret, _time)
                    db.session.close()
                    return _ret
                # Return acc_ret if all thing is right
                db.engine.execute('UPDATE wakeup_event SET last_total = total, last_update_time = %s WHERE last_update_time != %s',
                                  (_date, _date))
                db.engine.execute('UPDATE wakeup_event SET total = total + 1')
                wakeupRecInfo = wakeupRec(_id, _date, _time)
                db.session.add(wakeupRecInfo)
                db.session.commit()
                wakeupRecInfo = wakeupRec.query.filter_by(user_id=_id, create_date=_date).first()
                _rank = wakeupRecInfo._id - wakeupEvent.query.filter_by(id=1).first().last_total
                wakeupRecInfo.rank = _rank
                db.session.commit()
                _ret = str_misc.trans_str(wakeupEventInfo.acc_ret, _time, _time, str(_rank))
                db.session.close()
                return _ret
            else:
            # Return done_ret if user has checked in wakeupEvent
                _ret = str_misc.trans_str(wakeupEventInfo.done_ret, _time, wakeupRecInfo.create_time, str(wakeupRecInfo.rank))
                db.session.close()
                return _ret
        if _event == 'normal':
            try:
                event_id = int(request.args.get('event_id'))
            except Exception, e:
                db.session.close()
                return abort(404)
            try:
                _id = int(request.args.get('id'))
            except Exception, e:
                db.session.close()
                return abort(404)