예제 #1
0
def todo_index():
    sql = 'select t.*, c.name from todo as t left outer join category as c ' \
          'on t.category_id = c.id;'
    todos = session.query(Todo).all()
    categories = session.query(Category).all()
    dts = session.query(Todo, Category).outerjoin(
        Category,
        Category.id == Todo.category_id).order_by(text('todo.id')).all()
    return render_template('todo/index.html',
                           todos=todos,
                           categories=categories,
                           dts=dts)
예제 #2
0
def history():
    if request.method == "POST":
        contest_ID = request.form["del"]
        contest_ID = int(contest_ID)
        print(contest_ID)
        session.query(
            pm.Problem).filter(pm.Problem.contestID == contest_ID).delete()
        session.commit()
        print("delete finish.")

    contests = session.query(pm.Problem.contest,pm.Problem.contestID,pm.Problem.start_time,pm.Problem.end_time)\
            .distinct(pm.Problem.contest).order_by(desc(pm.Problem.contestID)).all()

    return render_template("history.html", cont=contests)
예제 #3
0
def tryView(userid, userInfoBase):
    users = session.query(UserRegistration, TrainingStatus, Mitem, Mitemset). \
        filter(UserRegistration.userid == userid). \
        filter(UserRegistration.endflag == "0"). \
        filter(UserRegistration.userid == TrainingStatus.userid). \
        filter(TrainingStatus.endflag == "0"). \
        filter(Mitemset.setno == TrainingStatus.setno). \
        filter(or_(Mitemset.traning1 == Mitem.traningseq, Mitemset.traning2 == Mitem.traningseq,
                   Mitemset.traning3 == Mitem.traningseq, )). \
        all()

    for user in users:
        if user.Mitem.traningseq == user.Mitemset.traning1:
            userInfoBase['mitem']['traning1'][
                'mtraningname'] = user.Mitem.menuname
            userInfoBase['mitem']['traning1']['mtraningnum'] = str(
                user.Mitem.numberoftimes)
            userInfoBase['traningstuts']['traning1stuts'] = checkBoxStatus(
                user.TrainingStatus.traning1status)
        if user.Mitem.traningseq == user.Mitemset.traning2:
            userInfoBase['mitem']['traning2'][
                'mtraningname'] = user.Mitem.menuname
            userInfoBase['mitem']['traning2']['mtraningnum'] = str(
                user.Mitem.numberoftimes)
            userInfoBase['traningstuts']['traning2stuts'] = checkBoxStatus(
                user.TrainingStatus.traning2status)
        if user.Mitem.traningseq == user.Mitemset.traning3:
            userInfoBase['mitem']['traning3'][
                'mtraningname'] = user.Mitem.menuname
            userInfoBase['mitem']['traning3']['mtraningnum'] = str(
                user.Mitem.numberoftimes)
            userInfoBase['traningstuts']['traning3stuts'] = checkBoxStatus(
                user.TrainingStatus.traning3status)
예제 #4
0
def mypage():

    #postリクエストが飛んできたら
    if request.method == 'POST':

        #request内のユーザー名、パスワードを変数に格納
        name = request.form['name']
        password = request.form['password']

        #userテーブルのセッションを作成
        user = User()

        #nameカラムがnameのレコードを持ってくる
        users = session.query(User).\
           filter(User.name == name).\
           all()

        #27行目でsessionのクエリを発行したので追加してコミットする
        session.add(user)
        session.commit()

        #持ってきたレコードを順に見ていく
        for user in users:
            if (user.password == password):

                #passwordが合っているのが見つかったら、idとnameを
                session.name = name

                #mypageのHTMLをレンダリング
                return render_template('mypage.html', name=session.name)
            else:
                #合ってなかったら、ログイン失敗、リダイレクト
                return redirect(url_for('index'))
예제 #5
0
 def get_strength_by_user_id(user_id):
     strength = session.query(
         User.strength).filter(User.user_id == user_id).one_or_none()
     if strength is None:
         User.add_new_user(user_id)
         return INITIAL_RATING
     else:
         return strength[0]
예제 #6
0
def userRegistrationUpdate(userid):
    # ユーザ登録情報の更新
    userRegistrationquery = session.query(UserRegistration)

    userRegistration = userRegistrationquery.filter(UserRegistration.userid == userid). \
        filter(UserRegistration.endflag == "0"). \
        first()

    return userRegistration
예제 #7
0
    def set_strength_by_user_id(user_id, strength):
        user = session.query(User).filter(
            User.user_id == user_id).one_or_none()
        print(type(user), user)
        if user is None:
            user = User.add_new_user(user_id)

        user.strength = strength
        session.commit()
예제 #8
0
def modify(contestID):
    contest_ID = contestID

    print("modify contest page.")
    if request.method == "GET":
        contents = session.query(
            pm.Problem).filter(pm.Problem.contestID == contest_ID).all()
        return render_template("modify.html", cont=contents)

    else:
        print("modify this contest.")
        session.query(
            pm.Problem).filter(pm.Problem.contestID == contest_ID).delete()
        session.commit()

        contest_name = request.form["contest_name"]
        start_date = request.form["start_date"]
        start_time = request.form["start_time"]
        end_date = request.form["end_date"]
        end_time = request.form["end_time"]
        problems_url = request.form.getlist("problem_url")
        pr = session.query(pm.Problem).all()

        for url in problems_url:
            if len(url) == 0:
                continue

            pr = pm.Problem()
            pr.problemURL = url
            pr.problem = url.split('/')[5] + url.split('/')[6]
            pr.contest = contest_name
            pr.contestID = contest_ID
            pr.participant = "springroll"
            pr.start_time = start_date + " " + start_time + ":00"
            pr.end_time = end_date + " " + end_time + ":00"
            pr.penalty = 0
            pr.last_updated = start_date + " " + start_time + ":00"

            print(url)

            session.add(pr)
            session.commit()

        return redirect(url_for('contest', contestID=contest_ID))
예제 #9
0
def TrainingStatusUpdate(userid):
    trainingStatusquery = session.query(TrainingStatus)

    trainingStatus = trainingStatusquery.filter(UserRegistration.userid == userid). \
        filter(UserRegistration.endflag == "0"). \
        filter(UserRegistration.userid == TrainingStatus.userid). \
        filter(TrainingStatus.endflag == "0"). \
        first()

    return trainingStatus
예제 #10
0
def userRegistrationSelect(userid, userInfoBase):
    users = session.query(UserRegistration). \
        filter(UserRegistration.userid == userid). \
        filter(UserRegistration.endflag == "0"). \
        all()

    for user in users:
        # jsonユーザー情報.ユーザー情報.トレーニング実施完了フラグを設定
        userInfoBase['personaltrainar']['userid'] = user.userid
        # jsonユーザー情報.トレーニング実施完了フラグを設定
        userInfoBase['referenceResultFlag'] = True
예제 #11
0
def getAllMemo():

    #memoListセッションを作成
    memoList = MemoList()

    #memoListテーブルの全レコードを持ってくる
    result = session.query(MemoList).all()

    #list型のresultをjsonにダンプ
    result = json.dumps(result, cls=AlchemyEncoder)

    #resultをリターンする-->Javascriptのajaxのresponseに入る
    return result
예제 #12
0
def createContest():
    print("create contest page.")
    if request.method == "GET":
        return render_template("create.html")
    else:
        contest_name = request.form["contest_name"]
        start_date = request.form["start_date"]
        start_time = request.form["start_time"]
        end_date = request.form["end_date"]
        end_time = request.form["end_time"]
        problems_url = request.form.getlist("problem_url")
        pr = session.query(pm.Problem).all()

        res_mx = session.query(
            func.max(pm.Problem.contestID).label("max_contestid")).one()
        max_contestID = res_mx.max_contestid
        print(max_contestID)
        max_contestID += 1

        for url in problems_url:
            pr = pm.Problem()
            pr.problemURL = url
            pr.problem = url.split('/')[5] + url.split('/')[6]
            pr.contest = contest_name
            pr.contestID = max_contestID
            pr.participant = "springroll"
            pr.start_time = start_date + " " + start_time + ":00"
            pr.end_time = end_date + " " + end_time + ":00"
            pr.penalty = 0
            pr.last_updated = start_date + " " + start_time + ":00"

            session.add(pr)
            session.commit()

            print(pr.contestID)

        return redirect(url_for('contest', contestID=max_contestID))
예제 #13
0
def getUser():

    #memoListセッションを作成
    user = User()

    #memoListテーブルの全レコードを持ってくる
    result = session.query(User).\
        filter(User.id > 10).\
        all()

    #list型のresultをjsonにダンプ
    result = json.dumps(result, cls=AlchemyEncoder)

    #resultをリターンする-->Javascriptのajaxのresponseに入る
    return result
예제 #14
0
#!/usr/bin/python3

from setting import session
from zaiko import *
from uriage import *
from datetime import datetime
date = datetime.today()

zaiko = session.query(Zaiko).all()


def prin():
    print('------')


sum = 0
kago = []
count = []
k = {}
while True:

    prin()
    for tmp in zaiko:
        print(
            str(tmp.product_id) + ':', str(tmp.product_name),
            str(tmp.tanka) + 'yen')
    prin()

    num = input('input product_number:')
    nums = input('input product_quantity:')
    num = int(num)
예제 #15
0
def index():
    users = session.query(User).all()
    addresses = session.query(Address).all()
    dts = session.query(User, Address).outerjoin(Address, User.id==Address.user_id).all()
    return render_template('home/index.html', users=users, addresses=addresses, dts=dts)
예제 #16
0
# -*- coding: utf-8 -*-
from sqlalchemy.sql import func

# セッション変数の取得
from setting import session
from cloud import *

max_id = session.query(func.max(Cloud.id)).scalar()
print(max_id)
cloud_img_path = session.query(
    Cloud.img_path).filter(Cloud.id == max_id).scalar()
print(cloud_img_path)
예제 #17
0
from setting import session

from user import *


user = User()
user.name = '太郎'
user.age = '20'
user.email = '*****@*****.**'
users = session.add(user)
session.commit()


users = session.query(User).all()
for user in users :
    print(user.name)
예제 #18
0
def contest(contestID):
    contest_ID = contestID
    print("Getting Submmision data...")
    sub_data = getSubmissionInfo()
    print(" -> Finish.")
    crt = time.time()
    loc = datetime.fromtimestamp(crt)
    last_updateds = session.query(pm.Problem.last_updated).filter(
        pm.Problem.contestID == contest_ID).all()
    if len(last_updateds) == 0:
        return redirect(url_for('history'))

    last_max = "1997-12-03 00:00:00"
    for last_update in last_updateds:
        lustr = last_update[0].strftime('%Y-%m-%d %H:%M:%S')
        if last_max < lustr:
            last_max = lustr

    print(last_max)
    start_t = session.query(pm.Problem.start_time).filter(
        pm.Problem.contestID == contest_ID).first()

    print(start_t)
    start_epoch = int(start_t[0].timestamp())

    for sub in sub_data:
        sub_epochtime = sub["creationTimeSeconds"]
        sub_time = datetime.fromtimestamp(sub_epochtime)
        sub_time = sub_time.strftime('%Y-%m-%d %H:%M:%S')
        if sub_time > last_max:
            print(sub_time)
            problem = str(sub["contestId"]) + sub["problem"]["index"]
            update_pr = session.query(pm.Problem).filter(
                pm.Problem.contestID == contest_ID,
                pm.Problem.problem == problem).first()
            if update_pr is None:
                continue
            print(update_pr)
            for key, value in sub.items():
                print(str(key) + " " + str(value))
            if sub["passedTestCount"] == 0:
                continue

            update_pr.last_updated = loc
            if sub["verdict"] == "OK":
                ac_diff = sub_epochtime - start_epoch
                ac_tm = "{:02}:{:02}".format(ac_diff // 60, ac_diff % 60)
                update_pr.ac_time = ac_tm
            else:
                update_pr = session.query(pm.Problem).filter(
                    pm.Problem.contestID == contest_ID,
                    pm.Problem.problem == problem).first()
                update_pr.penalty = update_pr.penalty + 1

            session.commit()

    content = session.query(
        pm.Problem).filter(pm.Problem.contestID == contest_ID).all()
    max_time = 0
    sum_penalty = 0
    for con in content:
        if con.ac_time is not None:
            max_time = max(
                max_time,
                int(con.ac_time.split(':')[0]) * 60 +
                int(con.ac_time.split(':')[1]))
        sum_penalty += con.penalty

    max_time = "{:02}:{:02}".format(max_time // 60, max_time % 60)

    print("Complete.")
    return render_template('contest.html',
                           cont=content,
                           sum_time=max_time,
                           sum_penalty=sum_penalty)