From e3ee10a547ec9cb4352aa052f1adf20fcd880612 Mon Sep 17 00:00:00 2001 From: Christophe SCAYA <> Date: Sat, 9 Apr 2022 21:49:47 +0200 Subject: [PATCH] Un score par pseudo --- quiz_atomes/views.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/quiz_atomes/views.py b/quiz_atomes/views.py index ecbe86c..faca895 100644 --- a/quiz_atomes/views.py +++ b/quiz_atomes/views.py @@ -89,22 +89,27 @@ def resultats(request): resultats.append(current) - score=points+dt + new_score=points+dt best_score=0 - if score>0: + + if new_score>0: score_list = Score.objects.all().order_by('-score')[:20] min_selection_score = score_list.aggregate(Min("score")).get('score__min') - if score>=min_selection_score or Score.objects.count()<20: - new_score = Score(pseudo=request.session['pseudo'], score=int(score), score_date=datetime.now()) - new_score.save() - best_score=1 + if new_score>min_selection_score or Score.objects.count()<20: + if len(Score.objects.filter(pseudo=request.session['pseudo'])) >= 1: + if Score.objects.filter(pseudo=request.session['pseudo']).values_list('score',flat=True)[0] < new_score: + Score.objects.select_for_update().filter(pseudo=request.session['pseudo']).update(score=new_score, score_date=datetime.now()) + best_score=1 + else: + Score(pseudo=request.session['pseudo'], score=new_score, score_date=datetime.now()).save() + best_score=1 template = loader.get_template('quiz_atomes/resultats.html') context = { 'points': points, 'dt': dt, - 'score': score, + 'score': new_score, 'best_score': best_score, 'correction': resultats, 'favicon':'vial-solid.svg'