Exemplo n.º 1
0
def checkoutGames():
    [now,tomorrow]=getTiming()
    username_before=request.args.get('usr')
    user=User.query.filter_by(userName=username_before).first()
    exact=[]
    winner=[]


    basedir = os.path.abspath(os.path.dirname(__file__))
    homedir = os.path.abspath(os.path.join(basedir, os.pardir))
        
    with open(homedir+'/admin/update/showGamesExact1.json') as f:
        showGamesExact = json.load(f)
    with open(homedir+'/admin/update/showGamesWinner1.json') as f:
        showGamesWinner = json.load(f)
            
    usr_games_exact=showGamesExact[user.userName]
    usr_games_winner=showGamesWinner[user.userName]
    
    for item in usr_games_exact:
        game=Games.query.filter_by(game=item).first()
        game.date=datetime.datetime.strftime(game.date, "%d %B %Y")
        game.time=str(game.time)[0:5].replace(':','h') 
        exact.append(game)
        
    for item in usr_games_winner:
        game=Games.query.filter_by(game=item).first()
        usr_game = Scores.query.filter_by(parent_id=user.user_id)\
                               .filter_by(game=item).first()
        game.date=datetime.datetime.strftime(game.date, "%d %B %Y")
        game.time=str(game.time)[0:5].replace(':','h') 
        winner.append([game,usr_game])     
       
    return render_template('checkout.html',exact=exact,winner=winner,user=user)
Exemplo n.º 2
0
def graphs():
    [now,tomorrow]=getTiming()
    today= datetime.datetime.strftime(now.date(), "%A-%d %B %Y").split('-')

    users=User.query.all()
    users.sort(key=lambda x: x.lastName.lower())
    
    if request.method =='POST': 
        graphType=request.args.get('type')
        selected_users=[]
        for item in request.form:
            if item!="checkAll":
                user=User.query.filter_by(userName=item).first()
                selected_users.append(user.userName)
        session['selected_users']=selected_users
        session['type']=graphType

        return redirect(url_for('results.showGraphs'))
   
    if request.method =='GET':  
        return render_template('graphs.html',today=today,users=users)
Exemplo n.º 3
0
def checkoutQuestions():
    [now,tomorrow]=getTiming()
    username_before=request.args.get('usr')
    user=User.query.filter_by(userName=username_before).first()
    questions=[]

    basedir = os.path.abspath(os.path.dirname(__file__))
    with open(basedir+'/checkout/showQuestions.json') as f:
        showQuestions = json.load(f)
          
    usr_questions=showQuestions[user.userName]
    
    count=0 
    count2=0
    question5=[]
    question9=None
    print usr_questions
    for item in usr_questions:
        print item
        if isinstance(item, int) :
            question=Questions.query.filter_by(id=item).first() 
            questions.append(question)
        elif isinstance(item, list) and item !=[]:
            question5.append("Group "+item[1])
            if count==0:
                count=1
                question=Questions.query.filter_by(id=5).first() 
                questions.append(question)  
        elif isinstance(item, unicode) and item !=[]:
            print "unicooode"
            question=Questions.query.filter_by(id=int(item.split('-')[0])).first() 
            questions.append(question)  
            question9=item.split('-')[1]
            
    question5=[str(x) for x in question5]


    return render_template('checkQuestions.html',questions=questions,user=user,\
                                    question5=question5,question9=question9)                       
Exemplo n.º 4
0
def plotBarChart(users,last_number):  
    [now,tomorrow]=getTiming()
    questions={}
    games_total={}
    Q1_ranges=[]
    Q4_ranges=[]
    Q9_ranges=[]
    Q11_ranges=[]
    for username in users:
        #QUESTIONS
        user=User.query.filter_by(userName=username).first()
        all_questions=UserQuestions.query.filter_by(parent_id=user.user_id).all()
        usr_questions=0
        
        for item in all_questions:
            question=Questions.query.filter_by(id=item.answer_id).first()
            if question.id not in [1,4,5,9,11]:
                if item.answer == question.answer and question.answer!='' and question.answer!=None\
                    and question.answer != 'empty':
                    usr_questions = usr_questions+10
            elif question.id == 5:
                import ast
                try:
                    answers=ast.literal_eval(question.answer)
                    usr_answers = ast.literal_eval(item.answer)
                    for ans in answers:
                        count=0
                        if answers[ans]==usr_answers[ans] and answers[ans]!='' and answers[ans]!=None\
                            and answers[ans] != 'empty':
                            usr_questions = usr_questions+4    
                except:  
                    "noope"
                    
            elif question.id in [1,4,9,11]:
                #check range from actual answer
                if question.answer!='' and question.answer!=None\
                    and question.answer != 'empty' and item.answer!='' and item.answer!=None\
                    and item.answer != 'empty':
                        ans_range=abs(int(item.answer)-int(question.answer))
                        if question.id==1:
                            Q1_ranges.append((user.userName,ans_range))
                        if question.id==4:
                            Q4_ranges.append((user.userName,ans_range))
                        if question.id==9:
                            Q9_ranges.append((user.userName,ans_range))
                        if question.id==11:
                            Q11_ranges.append((user.userName,ans_range))
                            
      
        questions[user.userName]=usr_questions


        #SCORES
        user=User.query.filter_by(userName=username).first()
        
        scores=Scores.query.filter_by(parent_id=user.user_id).all()
        usr_games_winner=0
        usr_games_exact=0
        
        for item in scores:
            game=Games.query.filter_by(game=item.game).first()
            if item.date <= now.date(): 
                #EXACT SCORE
                if item.score == game.score and game.score!='-' and game.score!='':
                    usr_games_exact= usr_games_exact+7
                else:
                    #WINNERS
                    try:
                        score_left=int(item.score.split('-')[0])
                        score_right=int(item.score.split('-')[1])
                        game_score_left=int(game.score.split('-')[0])
                        game_score_right=int(game.score.split('-')[1]) 
                        if game_score_left>game_score_right:
                            game_winner=game.teamHome
                        if game_score_left<game_score_right:
                            game_winner=game.teamAway
                        if game_score_left==game_score_right:
                            game_winner='tie'
                        if score_left>score_right:
                            winner=game.teamHome
                        if score_left<score_right:
                            winner=game.teamAway
                        if score_left==score_right:
                            winner='tie'
                        if winner==game_winner:
                            usr_games_winner= usr_games_winner+3

                    except:
                        "no integers possible, scores not filled in yet"
        
        games_total[user.userName]=usr_games_exact+usr_games_winner

    try:
    #    min_range_Q1 = min(Q1_ranges, key=lambda x: x[1])
        Q1_ranges.sort(key=lambda x: x[1])
        questions[Q1_ranges[0][0]]=questions[Q1_ranges[0][0]]+10
        for i in range(1,len(Q1_ranges)-1):
            if Q1_ranges[i][1]==Q1_ranges[i-1][1]:
                questions[Q1_ranges[i][0]]=questions[Q1_ranges[i][0]]+10
            else:
                break
        
        Q4_ranges.sort(key=lambda x: x[1])
        questions[Q4_ranges[0][0]]=questions[Q4_ranges[0][0]]+10
        for i in range(1,len(Q4_ranges)-1):
            if Q4_ranges[i][1]==Q4_ranges[i-1][1]:
                questions[Q4_ranges[i][0]]=questions[Q4_ranges[i][0]]+10
            else:
                break
                
        Q9_ranges.sort(key=lambda x: x[1])
        questions[Q9_ranges[0][0]]=questions[Q9_ranges[0][0]]+10
        if len(Q9_ranges)>=5:
            end=5
        else:
            end=len(Q9_ranges)
        count=0
        for i in range(1,end):
            last_score=10
            if Q9_ranges[i][1]==Q9_ranges[i-1][1] and count<5:
                questions[Q9_ranges[i][0]]=questions[Q9_ranges[i][0]]+last_score
                count=count+1
            elif count<5:
                last_score=last_score-2*i
                questions[Q9_ranges[i][0]]=questions[Q9_ranges[i][0]]+last_score
                count=count+1
            else:
                break
            
        Q11_ranges.sort(key=lambda x: x[1])
        questions[Q11_ranges[0][0]]=questions[Q11_ranges[0][0]]+10
        for i in range(1,len(Q11_ranges)-1):
            if Q11_ranges[i][1]==Q11_ranges[i-1][1]:
                questions[Q11_ranges[i][0]]=questions[Q11_ranges[i][0]]+10
            else:
                break
    except:
        "nothing here yet"
                        
    basedir = os.path.abspath(os.path.dirname(__file__))
    
    import plotly.plotly as py
    import plotly.graph_objs as go
    
    py.sign_in('Baekel', 'fhhezplvr3')  
    
    x_quest=[]
    y_quest=[]
    for item in questions:
        x_quest.append(item)
        y_quest.append(questions[item])
    
    x_games=[]
    y_games=[]
    
    for item in games_total:
        x_games.append(item)
        y_games.append(games_total[item])
        
    trace1 = go.Bar(
        x=x_quest,
        y=y_quest,
        name='Bonus points'
    )
    y_games=sorted(y_games,reverse=True)
    trace2 = go.Bar(
        x=x_games,
        y=y_games,
        name='Game points'
    )

    today= datetime.datetime.strftime(now.date(), "%A %d %B %Y")

    
    data = [trace2,trace1]
    layout = go.Layout(
        barmode='group',
        title="Bar Chart ["+str(today)+"] \n (sorted by game points)",
        yaxis=dict(
            title='Points',
            titlefont=dict(
                size=15,
                color='#191919'
            )
        )
        
    )
    fig = go.Figure(data=data, layout=layout)
    
    try: 
        nr=int(last_number)
        nr=nr+1
        filename="bar-"+str(nr)+".png"
    except:
        "nooo"
    
    py.image.save_as(fig, filename=app.config['UPLOAD_FOLDER']+"/"+filename)
    
    

    return filename
Exemplo n.º 5
0
def plotLineGraphTotal(users,last_number):  
    [now,tomorrow]=getTiming()
    scores={}
    count_usr=0
    dates=[]
    questions={}
    games_total={}
    Q1_ranges=[]
    Q4_ranges=[]
    Q9_ranges=[]
    Q11_ranges=[]
    endDate=datetime.datetime.strptime('11-07-2016', '%d-%m-%Y')

    for username in users:        
        count_usr=count_usr+1
        startDate=datetime.datetime.strptime('10-06-2016', '%d-%m-%Y')
        user=User.query.filter_by(userName=username).first()
        usr_games_winner=[]
        usr_games_exact=[]
        usr_games_total=[]
        count=0
        
        while startDate.date() <= now.date() and startDate.date()<= endDate.date():
            if count_usr==1:
                dates.append(datetime.datetime.strftime(startDate.date(), '%d-%m-%Y'))
            
            games=Games.query.filter_by(date=startDate.date()).all()
            if count==0:
                usr_games_exact.append(0)
                usr_games_winner.append(0)
                usr_games_total.append(0)

            else:
                usr_games_exact.append(usr_games_exact[count-1])
                usr_games_winner.append(usr_games_winner[count-1])
                usr_games_total.append(usr_games_total[count-1])

            for game in games:
                #EXACT SCORE
                userScore=Scores.query.filter_by(parent_id=user.user_id)\
                                       .filter_by(game=game.game).first()
                if userScore!=None:
                    if userScore.score == game.score and game.score!='-' and game.score!='':
                        print "eeeela"
                        usr_games_exact[count]= usr_games_exact[count]+7
                    else:
                        #WINNERS
                        try:
                            score_left=int(userScore.score.split('-')[0])
                            score_right=int(userScore.score.split('-')[1])
                            game_score_left=int(game.score.split('-')[0])
                            game_score_right=int(game.score.split('-')[1]) 
                            if game_score_left>game_score_right:
                                game_winner=game.teamHome
                            if game_score_left<game_score_right:
                                game_winner=game.teamAway
                            if game_score_left==game_score_right:
                                game_winner='tie'
                            if score_left>score_right:
                                winner=game.teamHome
                            if score_left<score_right:
                                winner=game.teamAway
                            if score_left==score_right:
                                winner='tie'
                            if winner==game_winner:
                                usr_games_winner[count]= usr_games_winner[count]+3
                        except:
                            "no integers possible, scores not filled in yet"
                            

                usr_games_total[count]=usr_games_exact[count]+\
                                                usr_games_winner[count]
                        
            startDate= startDate + datetime.timedelta(days=1)
            count=count+1
            
        scores[user.userName]=usr_games_total

        #QUESTIONS
        user=User.query.filter_by(userName=username).first()
        all_questions=UserQuestions.query.filter_by(parent_id=user.user_id).all()
        usr_questions=0
        
        for item in all_questions:
            question=Questions.query.filter_by(id=item.answer_id).first()
            if question.id not in [1,4,5,9,11]:
                if item.answer == question.answer and question.answer!='' and question.answer!=None\
                    and question.answer != 'empty':
                    usr_questions = usr_questions+10
            elif question.id == 5:
                import ast
                try:
                    answers=ast.literal_eval(question.answer)
                    usr_answers = ast.literal_eval(item.answer)
                    for ans in answers:
                        count=0
                        if answers[ans]==usr_answers[ans] and answers[ans]!='' and answers[ans]!=None\
                            and answers[ans] != 'empty':
                            usr_questions = usr_questions+4    
                except:  
                    "noope"
                    
            elif question.id in [1,4,9,11]:
                #check range from actual answer
                if question.answer!='' and question.answer!=None\
                    and question.answer != 'empty' and item.answer!='' and item.answer!=None\
                    and item.answer != 'empty':
                        ans_range=abs(int(item.answer)-int(question.answer))
                        if question.id==1:
                            Q1_ranges.append((user.userName,ans_range))
                        if question.id==4:
                            Q4_ranges.append((user.userName,ans_range))
                        if question.id==9:
                            Q9_ranges.append((user.userName,ans_range))
                        if question.id==11:
                            Q11_ranges.append((user.userName,ans_range))
                            
      
        questions[user.userName]=usr_questions
    
    try:
    #    min_range_Q1 = min(Q1_ranges, key=lambda x: x[1])
        Q1_ranges.sort(key=lambda x: x[1])
        questions[Q1_ranges[0][0]]=questions[Q1_ranges[0][0]]+10
        for i in range(1,len(Q1_ranges)-1):
            if Q1_ranges[i][1]==Q1_ranges[i-1][1]:
                questions[Q1_ranges[i][0]]=questions[Q1_ranges[i][0]]+10
            else:
                break
        
        Q4_ranges.sort(key=lambda x: x[1])
        questions[Q4_ranges[0][0]]=questions[Q4_ranges[0][0]]+10
        for i in range(1,len(Q4_ranges)-1):
            if Q4_ranges[i][1]==Q4_ranges[i-1][1]:
                questions[Q4_ranges[i][0]]=questions[Q4_ranges[i][0]]+10
            else:
                break
                
        Q9_ranges.sort(key=lambda x: x[1])
        questions[Q9_ranges[0][0]]=questions[Q9_ranges[0][0]]+10
        if len(Q9_ranges)>=5:
            end=5
        else:
            end=len(Q9_ranges)
        count=0
        for i in range(1,end):
            last_score=10
            if Q9_ranges[i][1]==Q9_ranges[i-1][1] and count<5:
                questions[Q9_ranges[i][0]]=questions[Q9_ranges[i][0]]+last_score
                count=count+1
            elif count<5:
                last_score=last_score-2*i
                questions[Q9_ranges[i][0]]=questions[Q9_ranges[i][0]]+last_score
                count=count+1
            else:
                break
        Q11_ranges.sort(key=lambda x: x[1])
        questions[Q11_ranges[0][0]]=questions[Q11_ranges[0][0]]+10
        for i in range(1,len(Q11_ranges)-1):
            if Q11_ranges[i][1]==Q11_ranges[i-1][1]:
                questions[Q11_ranges[i][0]]=questions[Q11_ranges[i][0]]+10
            else:
                break
    except:
        "nothing here yet"
        
    basedir = os.path.abspath(os.path.dirname(__file__))
    

    start=datetime.datetime.strptime('10-06-2016', '%d-%m-%Y')
    if now.date() >= start.date():
        for username in users:
            scores[username]=[x+questions[username] for x in scores[username]] 
            
    import plotly.plotly as py
    import plotly.graph_objs as go
    
    py.sign_in('Baekel', 'fhhezplvr3') 
    
    data=[]
    for item in scores:
        trace = go.Scatter(
        x = dates,
        y = scores[item],
        name = item
        )
        data.append(trace)
    
    # Edit the layout
    layout = dict(title = 'Line graph of total points (up untill today)',
                  xaxis = dict(title = 'Dates'),
                  yaxis = dict(title = 'Points'),
                  )
    try: 
        nr=int(last_number)
        nr=nr+1
        filename="line-"+str(nr)+".png"
    except:
        "nooo"
        
    fig = dict(data=data, layout=layout)
    py.image.save_as(fig, filename=app.config['UPLOAD_FOLDER']+"/"+filename)
       
    return filename
Exemplo n.º 6
0
def rankings():
    [now,tomorrow]=getTiming()

    basedir = os.path.abspath(os.path.dirname(__file__))
    homedir = os.path.abspath(os.path.join(basedir, os.pardir))
        
    with open(homedir+'/admin/update/showGamesExact1.json') as f:
        showGamesExact = json.load(f)
    with open(homedir+'/admin/update/showGamesWinner1.json') as f:
        showGamesWinner = json.load(f)
    with open(homedir+'/admin/update/games_winner1.json') as f:
        games_winner = json.load(f)
    with open(homedir+'/admin/update/games_exact1.json') as f:
        games_exact = json.load(f)
    with open(homedir+'/admin/update/table1.json') as f:
        table = json.load(f)        
    with open(homedir+'/admin/update/tableScores1.json') as f:
        tableScores = json.load(f)    
    with open(homedir+'/admin/update/questions1.json') as f:
        questions = json.load(f) 
        
    
    from operator import itemgetter
    table=sorted(table, key=itemgetter(1),reverse=True)
    tableScores=sorted(tableScores, key=itemgetter(1),reverse=True)
        
    today= datetime.datetime.strftime(now.date(), "%A-%d %B %Y").split('-')
    ############################################
    scores=Games.query.all()
    scores.sort(key=lambda x: x.date)

    scores_MD1=[]
    scores_MD2=[]
    scores_MD3=[]
    scores_MD4=[]
    scores_MD5=[]
    scores_MD6=[]
    scores_MD7=[]
    
    count1=0
    count2=0
    count3=0
    count4=0
    count5=0
    count6=0
    count7=0
    
    for i in range(len(scores)):
        if scores[i].game[0:3] =='MD1':
            scores_MD1.append(scores[i])
            scores_MD1[count1].time=str(scores_MD1[count1].time)[0:5]
            scores_MD1[count1].date=datetime.datetime.strftime(scores_MD1[count1].date, "%d-%m-%Y") 
    
            count1=count1+1
    
        if scores[i].game[0:3]=='MD2':
            scores_MD2.append(scores[i])
            scores_MD2[count2].time=str(scores_MD2[count2].time)[0:5]
            scores_MD2[count2].date=datetime.datetime.strftime(scores_MD2[count2].date, "%d-%m-%Y") 
    
            count2=count2+1
    
        if scores[i].game[0:3] =='MD3':
            scores_MD3.append(scores[i])
            scores_MD3[count3].time=str(scores_MD3[count3].time)[0:5]
            scores_MD3[count3].date=datetime.datetime.strftime(scores_MD3[count3].date, "%d-%m-%Y") 
            count3=count3+1
            
        if scores[i].game[0:3] =='MD4':
            scores_MD4.append(scores[i])
            scores_MD4[count4].time=str(scores_MD4[count4].time)[0:5]
            scores_MD4[count4].date=datetime.datetime.strftime(scores_MD4[count4].date, "%d-%m-%Y") 
    
            count4=count4+1
    
        if scores[i].game[0:3]=='MD5':
            scores_MD5.append(scores[i])
            scores_MD5[count5].time=str(scores_MD5[count5].time)[0:5]
            scores_MD5[count5].date=datetime.datetime.strftime(scores_MD5[count5].date, "%d-%m-%Y") 
    
            count5=count5+1
    
        if scores[i].game[0:3] =='MD6':
            scores_MD6.append(scores[i])
            scores_MD6[count6].time=str(scores_MD6[count6].time)[0:5]
            scores_MD6[count6].date=datetime.datetime.strftime(scores_MD6[count6].date, "%d-%m-%Y") 
            count6=count6+1
        
        if scores[i].game[0:3] =='MD7':
            scores_MD7.append(scores[i])
            scores_MD7[count7].time=str(scores_MD7[count7].time)[0:5]
            scores_MD7[count7].date=datetime.datetime.strftime(scores_MD7[count7].date, "%d-%m-%Y") 
            count7=count7+1
    
            
    return render_template('rankings.html',games_exact=games_exact,games_winner=games_winner,\
                            today=today,table=table,showGamesExact=showGamesExact,\
                            showGamesWinner=showGamesWinner, scores_MD1=scores_MD1,\
                                scores_MD2=scores_MD2, scores_MD3=scores_MD3,\
                                scores_MD4=scores_MD4, scores_MD5=scores_MD5, \
                                scores_MD6=scores_MD6, scores_MD7=scores_MD7,tableScores=tableScores)
Exemplo n.º 7
0
def questions():   
    [now,tomorrow]=getTiming()
    
    questions={}
    showQuestions={}
    question_table=[]
    answer_range={}
    Q1_ranges=[]
    Q4_ranges=[]
    Q9_ranges=[]
    Q11_ranges=[]

    users=User.query.all()
    for user in users:
        all_questions=UserQuestions.query.filter_by(parent_id=user.user_id).all()
        usr_questions=[0,[]]
        answer_range[user.userName]=[]
        for item in all_questions:
            question=Questions.query.filter_by(id=item.answer_id).first()
            if question.id not in [1,4,5,9,11,10]:
                if item.answer == question.answer and question.answer!='' and question.answer!=None\
                    and question.answer != 'empty':
                    usr_questions[0] = usr_questions[0]+10
                    usr_questions[1].append(item.answer_id)
            elif question.id == 5:
                import ast
                try:
                    answers=ast.literal_eval(question.answer)
                    usr_answers = ast.literal_eval(item.answer)
                    for ans in answers:
                        count=0
                        if answers[ans]==usr_answers[ans] and answers[ans]!='' and answers[ans]!=None\
                            and answers[ans] != 'empty':
                            usr_questions[0] = usr_questions[0]+4    
                            if count == 0:
                                usr_questions[1].append([item.answer_id,ans])
                            else:
                                usr_questions[1][-1].append(ans)                    
                            count=1
                except:  
                    "noope"

            elif question.id==10:
                if item.answer in ['Switzerland','Poland','Italy']:
                    usr_questions[0] = usr_questions[0]+10
                    usr_questions[1].append(item.answer_id)

            elif question.id in [1,4,9,11]:
                #check range from actual answer
                if question.answer!='' and question.answer!=None\
                    and question.answer != 'empty' and item.answer!='' and item.answer!=None\
                    and item.answer != 'empty':
                        ans_range=abs(int(item.answer)-int(question.answer))
                        if question.id==1:
                            Q1_ranges.append((user.userName,ans_range))
                        if question.id==4:
                            Q4_ranges.append((user.userName,ans_range))
                        if question.id==9:
                            Q9_ranges.append((user.userName,ans_range))
                        if question.id==11:
                            Q11_ranges.append((user.userName,ans_range))
                            
                        
                                            
        questions[user.userName]=usr_questions
        #question_id that a user answered correctly

    try:
        #    min_range_Q1 = min(Q1_ranges, key=lambda x: x[1])
        Q1_ranges.sort(key=lambda x: x[1])
        questions[Q1_ranges[0][0]][0]=questions[Q1_ranges[0][0]][0]+10
        questions[Q1_ranges[0][0]][1].append(1)
        for i in range(1,len(Q1_ranges)-1):
            if Q1_ranges[i][1]==Q1_ranges[i-1][1]:
                questions[Q1_ranges[i][0]][0]=questions[Q1_ranges[i][0]][0]+10
                questions[Q1_ranges[i][0]][1].append(1)
            else:
                break
        
        Q4_ranges.sort(key=lambda x: x[1])
        questions[Q4_ranges[0][0]][0]=questions[Q4_ranges[0][0]][0]+10
        questions[Q4_ranges[0][0]][1].append(4)
        for i in range(1,len(Q4_ranges)-1):
            if Q4_ranges[i][1]==Q4_ranges[i-1][1]:
                questions[Q4_ranges[i][0]][0]=questions[Q4_ranges[i][0]][0]+10
                questions[Q4_ranges[i][0]][1].append(4)
            else:
                break
                
        Q9_ranges.sort(key=lambda x: x[1])
        questions[Q9_ranges[0][0]][0]=questions[Q9_ranges[0][0]][0]+10
        questions[Q9_ranges[0][0]][1].append('9-'+str(10))
        if len(Q9_ranges)>=5:
            end=5
        else:
            end=len(Q9_ranges)
        count=0
        for i in range(1,end):
            last_score=10
            if Q9_ranges[i][1]==Q9_ranges[i-1][1] and count<5:
                questions[Q9_ranges[i][0]][0]=questions[Q9_ranges[i][0]][0]+last_score
                questions[Q9_ranges[i][0]][1].append('9-'+str(last_score))
                count=count+1
            elif count<5:
                last_score=last_score-2*i
                questions[Q9_ranges[i][0]][0]=questions[Q9_ranges[i][0]][0]+last_score
                questions[Q9_ranges[i][0]][1].append('9-'+str(last_score))
                count=count+1
            else:
                break
        
        Q11_ranges.sort(key=lambda x: x[1])
        questions[Q11_ranges[0][0]][0]=questions[Q11_ranges[0][0]][0]+10
        questions[Q11_ranges[0][0]][1].append(11)
        for i in range(1,len(Q11_ranges)-1):
            if Q11_ranges[i][1]==Q11_ranges[i-1][1]:
                questions[Q11_ranges[i][0]][0]=questions[Q11_ranges[i][0]][0]+10
                questions[Q11_ranges[i][0]][1].append(11)
            else:
                break
    except:
        "no scores entered yet"
                
    for user in users:      
        showQuestions[user.userName]=questions[user.userName][1]
        question_table.append([user, questions[user.userName][0]])      
            
    from operator import itemgetter
    question_table=sorted(question_table, key=itemgetter(1),reverse=True)

    basedir = os.path.abspath(os.path.dirname(__file__))
    with open(basedir+'/checkout/showQuestions.json', 'w') as fp:
        json.dump(showQuestions, fp) 
        
    today= datetime.datetime.strftime(now.date(), "%A-%d %B %Y").split('-')
    
    questions_correct=Questions.query.all()
    questions_correct.sort(key=lambda x: x.id)
    question5=Questions.query.filter_by(id=5).first()
    try:
        import ast
        quest5=ast.literal_eval(question5.answer)
    except:
        quest5={'A': '', 'C': '', 'B': '', 'E': '', 'D': '', 'F': ''}
        

    
    return render_template('questions.html',questions=questions,showQuestions=showQuestions,\
                               question_table=question_table,today=today,\
                               questions_correct=questions_correct,quest5=quest5)
Exemplo n.º 8
0
def editScoresGF(m):
    [now,tomorrow]=getTiming()
    form_MD1 = ScoresFormMD1(request.form)
    form_MD2= ScoresFormMD2(request.form)
    form_MD3= ScoresFormMD3(request.form)
    form=request.form
    

    games_MD1=[]
    games_MD2=[]
    games_MD3=[]

    save=[None,m,[]] #later save[2] will be expanded with the games with integer errors
    #later save[3] is the amount of saved games 
    saved_MD1=0
    saved_MD2=0
    saved_MD3=0
    
    user=User.query.filter_by(userName=session['userName']).first()
    user_id=db.session.query(User).filter_by(userName=session['userName']).first().user_id
    games=db.session.query(Games).filter_by(fase="group stage").all()
    games.sort(key=lambda x: (x.date,x.time))

    thisScores=[]
    if request.method =='POST':  
        error=None
        thisScores=[['','']]*len(list(games))
        if user.activated==True:
            for item in request.form:
                if request.form[item]!='' and request.form[item]!=u'':
                    try: 
                        int(request.form[item])
                        if int(request.form[item])<0:
                            save[0]=False
                            save[2].append(int(item[8:10]))    
                    except:
                        save[0]=False
                        save[2].append(int(item[8:10]))   
                    
            if save[0]!=False:
                save[0]=True
                
            save[2].sort()
            
            if save[0]==True: 
    #           #Update
                try:
                    getScoresGF(form,user,user_id)
                except:
                    "no forms"
    
                scores=db.session.query(Scores).filter_by(userName=user.userName)\
                                               .filter_by(fase='group stage').all()
                                   
                [thisScores,saved_MD1,saved_MD2,saved_MD3]=updateScoreFormsGS(scores,\
                                                        thisScores,saved_MD1,saved_MD2,saved_MD3)
                        
                            
            else: #IN THIS CASE THERE IS AN ERROR INPUT, A NON-INTEGER (however '' or u'' are not errored)
                thisScores=[['','']]*len(list(games))
                scores=db.session.query(Scores).filter_by(userName=user.userName)\
                                   .filter_by(fase='group stage').all()
                [saved_MD1,saved_MD2,saved_MD3]=updateScoreFormsWithErrorGS(scores,\
                                                                saved_MD1,saved_MD2,saved_MD3)
                for item in request.form:
                    if str(item)[6]=='1':
                        if item[11] == 'l':
                            thisScores[int(item[8:10])-1]=[request.form[item],thisScores[int(item[8:10])-1][1]]
                        elif item[11] == 'r':
                            thisScores[int(item[8:10])-1]=[thisScores[int(item[8:10])-1][0],request.form[item]]
                    if str(item)[6]=='2':
                        if item[11] == 'l':
                            thisScores[int(item[8:10])-1+12]=[request.form[item],thisScores[int(item[8:10])-1+12][1]]
                        elif item[11] == 'r':
                            thisScores[int(item[8:10])-1+12]=[thisScores[int(item[8:10])-1+12][0],request.form[item]]
                    if str(item)[6]=='3':
                        if item[11] == 'l':
                            thisScores[int(item[8:10])-1+24]=[request.form[item],thisScores[int(item[8:10])-1+24][1]]
                        elif item[11] == 'r':
                            thisScores[int(item[8:10])-1+24]=[thisScores[int(item[8:10])-1+24][0],request.form[item]]
                    
                
        else: #NOT YET ACTIVATED
            error=""" Your account is not yet activated. You can checkout the app, but your input won't be saved
                      since the payment is not yet confirmed. """
        for item in games:
            if item.date <= now.date():
                item.deadlinePassed=True
            else:
                item.deadlinePassed=False   
            if item.game[0:3]=="MD1":
                games_MD1.append(item)
            if item.game[0:3]=="MD2":
                games_MD2.append(item)
            if item.game[0:3]=="MD3":
                games_MD3.append(item)
                
            item.date=datetime.datetime.strftime(item.date, "%A-%d %B %Y").split('-')
            item.time=str(item.time)[0:5].replace(':','h') 
            
        return render_template('editScoresGF.html', form_MD1=form_MD1,form_MD2=form_MD2,form_MD3=form_MD3,\
                    save=save,scores=thisScores, saved_MD1=saved_MD1,saved_MD2=saved_MD2,saved_MD3=saved_MD3,\
                    games_MD1=games_MD1,games_MD2=games_MD2,games_MD3=games_MD3,error=error)
                    
        
    if request.method == 'GET':
        error=None
        scores=db.session.query(Scores).filter_by(userName=user.userName)\
                               .filter_by(fase='group stage').all()
                               
        thisScores=[['','']]*len(list(games))
                     
        [thisScores,saved_MD1,saved_MD2,saved_MD3]=updateScoreFormsGS(scores,\
                                                    thisScores,saved_MD1,saved_MD2,saved_MD3)

        for item in games:
            if item.date <= now.date():
                item.deadlinePassed=True
            else:
                item.deadlinePassed=False
            if item.game[0:3]=="MD1":
                games_MD1.append(item)
            if item.game[0:3]=="MD2":
                games_MD2.append(item)
            if item.game[0:3]=="MD3":
                games_MD3.append(item)
            item.date=datetime.datetime.strftime(item.date, "%A-%d %B %Y").split('-')
            item.time=str(item.time)[0:5].replace(':','h')
            
        
        return render_template('editScoresGF.html', form_MD1=form_MD1,form_MD2=form_MD2,form_MD3=form_MD3,\
                    save=save,scores=thisScores, saved_MD1=saved_MD1,saved_MD2=saved_MD2,saved_MD3=saved_MD3,\
                    games_MD1=games_MD1,games_MD2=games_MD2,games_MD3=games_MD3,error=error)
Exemplo n.º 9
0
def editScoresKF(m):  
    [now,tomorrow]=getTiming()
    form_R16 = GamesR16Form(request.form)
    form_QF= GamesQFForm(request.form)
    form_SF= GamesSFForm(request.form)
    form_F= GamesFForm(request.form)
    form=request.form

    save=[None,m,[]] #later save[2] will be expanded with the games with integer errors
    #later save[3] is the amount of saved games 
    saved_MD4=0
    saved_MD5=0
    saved_MD6=0
    saved_MD7=0
    user=User.query.filter_by(userName=session['userName']).first()
    user_id=db.session.query(User).filter_by(userName=session['userName']).first().user_id
    games=db.session.query(Games).filter_by(groep='N/A').all()


    if request.method =='POST':  
        error=None
        thisScores=[['','']]*len(list(games))
        if user.activated==True:
            for item in request.form:
                if request.form[item]!='' and request.form[item]!=u'':
                    try: 
                        int(request.form[item])
                        if int(request.form[item])<0:
                            save[0]=False
                            save[2].append(int(item[8:10]))  
                    except:
                        save[0]=False
                        save[2].append(int(item[8:10]))   
                    
            if save[0]!=False:
                save[0]=True
                
            save[2].sort()
            
            if save[0]==True: 
    #           #Update
                try:
                    getScoresKF(form,user,user_id)
                except:
                    "nooo"
    
                scores=db.session.query(Scores).filter_by(userName=user.userName)\
                                   .filter_by(groep='N/A').all()
                                   
                [thisScores,saved_MD4,saved_MD5,saved_MD6,saved_MD7]=updateScoreFormsKP(scores,\
                                                        thisScores,saved_MD4,saved_MD5,saved_MD6,saved_MD7)
                        
                            
            else: #IN THIS CASE THERE IS AN ERROR INPUT, A NON-INTEGER (however '' or u'' are not errored)
                thisScores=[['','']]*len(list(games))
                scores=db.session.query(Scores).filter_by(userName=user.userName)\
                                   .filter_by(groep='N/A').all()
                [saved_MD4,saved_MD5,saved_MD6,saved_MD7]=updateScoreFormsWithErrorKP(scores,\
                                                        saved_MD4,saved_MD5,saved_MD6,saved_MD7)
                for item in request.form:
                    if str(item)[6]=='4':
                        if item[11] == 'l':
                            thisScores[int(item[8:10])-1]=[request.form[item],thisScores[int(item[8:10])-1][1]]
                        elif item[11] == 'r':
                            thisScores[int(item[8:10])-1]=[thisScores[int(item[8:10])-1][0],request.form[item]]
                    if str(item)[6]=='5':
                        if item[11] == 'l':
                            thisScores[int(item[8:10])-1+8]=[request.form[item],thisScores[int(item[8:10])-1+8][1]]
                        elif item[11] == 'r':
                            thisScores[int(item[8:10])-1+8]=[thisScores[int(item[8:10])-1+8][0],request.form[item]]
                    if str(item)[6]=='6':
                        if item[11] == 'l':
                            thisScores[int(item[8:10])-1+12]=[request.form[item],thisScores[int(item[8:10])-1+12][1]]
                        elif item[11] == 'r':
                            thisScores[int(item[8:10])-1+12]=[thisScores[int(item[8:10])-1+12][0],request.form[item]]
                    if str(item)[6]=='7':
                        if item[11] == 'l':
                            thisScores[int(item[8:10])-1+14]=[request.form[item],thisScores[int(item[8:10])-1+14][1]]
                        elif item[11] == 'r':
                            thisScores[int(item[8:10])-1+14]=[thisScores[int(item[8:10])-1+14][0],request.form[item]]
            
        else: #NOT ACTIVATED YET
            error=""" Your account is not yet activated. You can checkout the app, but your input won't be saved
                      since the payment is not yet confirmed."""
                      
        games_R16=db.session.query(Games).filter_by(fase='R16').all()
        games_R16.sort(key=lambda x: (x.date,x.time))
        games_QF=db.session.query(Games).filter_by(fase='QF').all()
        games_QF.sort(key=lambda x: (x.date,x.time))
        games_SF=db.session.query(Games).filter_by(fase='SF').all()
        games_SF.sort(key=lambda x: (x.date,x.time))
        games_F=db.session.query(Games).filter_by(fase='F').all()
        games_F.sort(key=lambda x: (x.date,x.time))

        for item in games:
            if item.date <= now.date():
                item.deadlinePassed=True
            else:
                item.deadlinePassed=False
            item.date=datetime.datetime.strftime(item.date, "%A-%d %B %Y").split('-')
            item.time=str(item.time)[0:5].replace(':','h') 
                
              
        return render_template('editScoresKF.html', form_R16=form_R16,form_QF=form_QF,form_SF=form_SF,\
                    form_F=form_F,save=save,scores=thisScores,\
                    saved_MD4=saved_MD4,saved_MD5=saved_MD5,saved_MD6=saved_MD6,saved_MD7=saved_MD7,\
                    games_R16=games_R16,games_QF=games_QF,games_SF=games_SF,games_F=games_F,error=error)
                    
        
    if request.method == 'GET':
        error=None
        scores=db.session.query(Scores).filter_by(userName=user.userName)\
                               .filter_by(groep='N/A').all()
                               
        thisScores=[['','']]*len(list(games))
                     
        [thisScores,saved_MD4,saved_MD5,saved_MD6,saved_MD7]=updateScoreFormsKP(scores,\
                                                    thisScores,saved_MD4,saved_MD5,saved_MD6,saved_MD7)
        games_R16=db.session.query(Games).filter_by(fase='R16').all()
        games_R16.sort(key=lambda x: (x.date,x.time))
        games_QF=db.session.query(Games).filter_by(fase='QF').all()
        games_QF.sort(key=lambda x: (x.date,x.time))
        games_SF=db.session.query(Games).filter_by(fase='SF').all()
        games_SF.sort(key=lambda x: (x.date,x.time))
        games_F=db.session.query(Games).filter_by(fase='F').all()
        games_F.sort(key=lambda x: (x.date,x.time))
        
        for item in games:
            if item.date <= now.date():
                item.deadlinePassed=True
            else:
                item.deadlinePassed=False
            
            item.date=datetime.datetime.strftime(item.date, "%A-%d %B %Y").split('-')
            item.time=str(item.time)[0:5].replace(':','h')
            
        
        return render_template('editScoresKF.html', form_R16=form_R16,form_QF=form_QF,form_SF=form_SF,\
                    form_F=form_F,save=save,scores=thisScores,\
                    saved_MD4=saved_MD4,saved_MD5=saved_MD5,saved_MD6=saved_MD6,saved_MD7=saved_MD7,\
                    games_R16=games_R16,games_QF=games_QF,games_SF=games_SF,games_F=games_F,error=error)
Exemplo n.º 10
0
def get_total_points():
    [now,tomorrow]=getTiming()
    games_winner={}
    games_exact={}
    table=[]
    tableScores=[]
    showGamesExact={}
    showGamesWinner={}
    questions={}
    Q1_ranges=[]
    Q4_ranges=[]
    Q9_ranges=[]
    Q11_ranges=[]
    
    users=User.query.all()
    for user in users:
        if user.user_id not in [67,26,28,24,27]:
            scores=Scores.query.filter_by(parent_id=user.user_id).all()
            usr_games_winner=[0,[]]
            usr_games_exact=[0,[]]
            usr_showGamesExact=[]
            usr_showGamesWinner=[]
            
      
            #SCORES
            #------------------------------------------------------#
            for item in scores:
                game=Games.query.filter_by(game=item.game).first()
                if item.date <= now.date(): 
                    #EXACT SCORE
                    if item.score == game.score and game.score!='-' and game.score!='':
                        usr_games_exact[0]= usr_games_exact[0]+7
                        usr_games_exact[1].append(item.game)
                        usr_showGamesExact.append(game.game)                    
                    else:
                        #WINNERS
                        try:
                            score_left=int(item.score.split('-')[0])
                            score_right=int(item.score.split('-')[1])
                            game_score_left=int(game.score.split('-')[0])
                            game_score_right=int(game.score.split('-')[1]) 
                            if game_score_left>game_score_right:
                                game_winner=game.teamHome
                            if game_score_left<game_score_right:
                                game_winner=game.teamAway
                            if game_score_left==game_score_right:
                                game_winner='tie'
                            if score_left>score_right:
                                winner=game.teamHome
                            if score_left<score_right:
                                winner=game.teamAway
                            if score_left==score_right:
                                winner='tie'
                            if winner==game_winner:
                                usr_games_winner[0]= usr_games_winner[0]+3
                                usr_games_winner[1].append(item.game)
                                usr_showGamesWinner.append(game.game)                    
    
                        except:
                            "no integers possible, scores not filled in yet"
            
            games_exact[user.user_id]=usr_games_exact
            games_winner[user.user_id]=usr_games_winner
            showGamesExact[user.userName]=usr_showGamesExact
            showGamesWinner[user.userName]=usr_showGamesWinner
    #    
    #        table.append([user,usr_games_exact[0]+usr_games_winner[0],usr_games_exact[0],\
    #                usr_games_winner[0]])
            
            #Questions
            #------------------------------------------------------#
            all_questions=UserQuestions.query.filter_by(parent_id=user.user_id).all()
            usr_questions=0
            
            for item in all_questions:
                question=Questions.query.filter_by(id=item.answer_id).first()
                if question.id not in [1,4,5,9,11,10]:
                    if item.answer == question.answer and question.answer!='' and question.answer!=None\
                        and question.answer != 'empty':
                        usr_questions = usr_questions+10
                elif question.id == 5:
                    import ast
                    try:
                        answers=ast.literal_eval(question.answer)
                        usr_answers = ast.literal_eval(item.answer)
                        for ans in answers:
                            count=0
                            if answers[ans]==usr_answers[ans] and answers[ans]!='' and answers[ans]!=None\
                                and answers[ans] != 'empty':
                                usr_questions = usr_questions+4
                            
                    except:  
                        "noope"
                elif question.id==10:
                    if item.answer in ['Switzerland','Poland','Italy']:
                        usr_questions = usr_questions+10
    
                elif question.id in [1,4,9,11]:
                    #check range from actual answer
                    if question.answer!='' and question.answer!=None\
                        and question.answer != 'empty' and item.answer!='' and item.answer!=None\
                        and item.answer != 'empty':
                            print item.answer
                            print question.answer
                            ans_range=abs(int(item.answer)-int(question.answer))
                            if question.id==1:
                                Q1_ranges.append((user.userName,ans_range))
                            if question.id==4:
                                Q4_ranges.append((user.userName,ans_range))
                            if question.id==9:
                                Q9_ranges.append((user.userName,ans_range))
                            if question.id==11:
                                Q11_ranges.append((user.userName,ans_range))
                                
          
            questions[user.userName]=usr_questions
            
    #NOW FOR THE CLOSEST RANGE QUESTIONS:
    try:
        Q1_ranges.sort(key=lambda x: x[1])
        questions[Q1_ranges[0][0]]=questions[Q1_ranges[0][0]]+10
        for i in range(1,len(Q1_ranges)-1):
            if Q1_ranges[i][1]==Q1_ranges[i-1][1]:
                questions[Q1_ranges[i][0]]=questions[Q1_ranges[i][0]]+10
            else:
                break
        
        Q4_ranges.sort(key=lambda x: x[1])
        questions[Q4_ranges[0][0]]=questions[Q4_ranges[0][0]]+10
        for i in range(1,len(Q4_ranges)-1):
            if Q4_ranges[i][1]==Q4_ranges[i-1][1]:
                questions[Q4_ranges[i][0]]=questions[Q4_ranges[i][0]]+10
            else:
                break
                
        Q9_ranges.sort(key=lambda x: x[1])
        questions[Q9_ranges[0][0]]=questions[Q9_ranges[0][0]]+10
        if len(Q9_ranges)>=5:
            end=5
        else:
            end=len(Q9_ranges)
        count=0
        for i in range(1,end):
            last_score=10
            if Q9_ranges[i][1]==Q9_ranges[i-1][1] and count<5:
                questions[Q9_ranges[i][0]]=questions[Q9_ranges[i][0]]+last_score
                count=count+1
            elif count<5:
                last_score=last_score-2*i
                questions[Q9_ranges[i][0]]=questions[Q9_ranges[i][0]]+last_score
                count=count+1
            else:
                break
                
        Q11_ranges.sort(key=lambda x: x[1])
        questions[Q11_ranges[0][0]]=questions[Q11_ranges[0][0]]+10
        for i in range(1,len(Q11_ranges)-1):
            if Q11_ranges[i][1]==Q11_ranges[i-1][1]:
                questions[Q11_ranges[i][0]]=questions[Q11_ranges[i][0]]+10
            else:
                break
    except:
        "nothing here yet"
        
        
        #---------------------------------------------------------------#
    for user in users:
        if user.user_id not in [67,26,28,24,27]:
            table.append([user.firstName+' '+user.lastName,games_exact[user.user_id][0]+games_winner[user.user_id][0]+\
                        questions[user.userName],games_exact[user.user_id][0],games_winner[user.user_id][0],\
                        questions[user.userName],user.userName])
                        
            tableScores.append([user.firstName+' '+user.lastName,games_exact[user.user_id][0]+games_winner[user.user_id][0],\
                            games_exact[user.user_id][0],games_winner[user.user_id][0],user.userName])

            
    return [games_winner, games_exact, table, tableScores,\
                showGamesExact, showGamesWinner,questions]
                
                
Exemplo n.º 11
0
def editQuestions():
    [now,tomorrow]=getTiming()

    form = AnswerForm(request.form)
    rform=request.form
    user=User.query.filter_by(userName=session['userName']).first() 
    deadlinePassed=False
    firstGame=Games.query.filter_by(game='MD1-G01').first()
    startDate=firstGame.date
    if now.date()>=startDate:
        deadlinePassed=True

    
    saved=0
    save=None
   
    if request.method =='POST':
        error=None
        if user.activated==True:
            getAnswers(rform,user)
            questions=UserQuestions.query.filter_by(parent_id=user.user_id).all()
#            answers_ned=['']*len(questions)
#            answers_en=['']*len(questions)
#            postman=[0]*len(questions)
            
            for item in questions:
                if str(item.answer_id) =='5': 
                    import ast
                    answer5=ast.literal_eval(item.answer)
                    for item in answer5:
                        if answer5[item]!='empty' and answer5[item]!='' and answer5[item]!=None:
                            saved=saved+1
                else:
                    if item.answer !='empty' and item.answer!='' and item.answer!=None:
                        saved=saved+1
                
                save=True
        else: #user not activated
            error=""" Your account is not yet activated. You can checkout the app, but your input won't be saved
                      since the payment is not yet confirmed."""
                   
        
        questions=Questions.query.all()  
        questions.sort(key=lambda x: x.id)       
        return render_template('editQuestions.html', form=form,questions=questions,saved=saved,\
                                save=save,\
                                deadlinePassed=deadlinePassed,error=error)
        
    if request.method == 'GET':
        error=None
        questions=UserQuestions.query.filter_by(parent_id=user.user_id).all()
#        answers_ned=['']*len(questions)
#        answers_en=['']*len(questions)
#        postman=[0]*len(questions)
        for item in questions:
            if str(item.answer_id) =='5': 
                import ast
                answer5=ast.literal_eval(item.answer)
                form["answer5A"].default=answer5['A']
                form["answer5B"].default=answer5['B']
                form["answer5C"].default=answer5['C']
                form["answer5D"].default=answer5['D']
                form["answer5E"].default=answer5['E']
                form["answer5F"].default=answer5['F']
                for item in answer5:
                    if answer5[item]!='empty' and answer5[item]!='' and answer5[item]!=None:
                        saved=saved+1

            else:
                form['answer{0}'.format(item.answer_id)].default=item.answer
                if item.answer !='empty' and item.answer!='' and item.answer!=None:
                    saved=saved+1
        
        form.process()
                   
        questions=Questions.query.all()  
        questions.sort(key=lambda x: x.id)       

        return render_template('editQuestions.html', form=form,questions=questions,saved=saved,\
                                save=save, \
                                deadlinePassed=deadlinePassed,error=error)
Exemplo n.º 12
0
def appHome():
    [now, tomorrow] = getTiming()

    #    now=datetime.datetime.now()
    #    tomorrow= now + datetime.timedelta(days=1)
    #
    #    now=  now + datetime.timedelta(days=56)
    #    tomorrow= now + datetime.timedelta(days=1)

    #    now=datetime.datetime.now()
    #    tomorrow= now + datetime.timedelta(days=1)
    #    now=datetime.datetime.strptime('10-06-2016', '%d-%m-%Y')
    #    tomorrow= now + datetime.timedelta(days=1)

    games = Games.query.all()
    gamesToday = []
    gamesTomorrow = []

    countToday = 0
    countTomorrow = 0

    checkToday = False
    checkTomorrow = False

    user = User.query.filter_by(userName=session["userName"]).first()

    todayEntered = None
    tomorrowEntered = None

    for i in range(len(games)):
        if games[i].date >= now.date() and games[i].date < tomorrow.date():
            game = Scores.query.filter_by(parent_id=user.user_id).filter_by(game=games[i].game).first()
            if game != None and game.score != "" and game.score != "-":
                gamesToday.append(game)
            else:
                gamesToday.append(games[i])
                todayEntered = False
            countToday = countToday + 1
            checkToday = True

        if games[i].date > now.date() and games[i].date <= tomorrow.date():
            game = Scores.query.filter_by(parent_id=user.user_id).filter_by(game=games[i].game).first()
            if game != None and game.score != "" and game.score != "-":
                gamesTomorrow.append(game)
            else:
                gamesTomorrow.append(games[i])
                tomorrowEntered = False
            countTomorrow = countTomorrow + 1
            checkTomorrow = True

    knock = False

    for item in gamesToday:
        item.time = str(item.time)[0:5]
        item.date = datetime.datetime.strftime(item.date, "%d-%m-%Y")

    for item in gamesTomorrow:
        if item.date > datetime.datetime.strptime("24-06-2016", "%d-%m-%Y").date():
            knock = True
        item.time = str(item.time)[0:5]
        item.date = datetime.datetime.strftime(item.date, "%d-%m-%Y")

    date = datetime.datetime.strftime(now.date(), "%A %d %B %Y")

    return render_template(
        "appHome.html",
        gamesToday=gamesToday,
        gamesTomorrow=gamesTomorrow,
        checkToday=checkToday,
        checkTomorrow=checkTomorrow,
        date=date,
        todayEntered=todayEntered,
        tomorrowEntered=tomorrowEntered,
        knock=knock,
    )