Browse Source

Gestion de la correction

master
Christophe SCAYA 4 years ago
parent
commit
a7e3139fdf
  1. 28
      quiz_atomes/templates/quiz_atomes/resultats.html
  2. 24
      quiz_atomes/views.py

28
quiz_atomes/templates/quiz_atomes/resultats.html

@ -8,7 +8,25 @@
</nav> </nav>
<div id="scoring" class="d-flex justify-content-center align-items-center"> <div id="scoring" class="d-flex justify-content-center align-items-center">
<div class="py-2 d-flex flex-column align-items-center"> <div class="py-2 d-flex flex-column align-items-center">
<h4 id="points"><b>POINTS : {{points}}</b></h4> <h4 id="points"><b>POINTS : {{points}}</b>&nbsp;<i id="correc" class="fa-solid fa-angles-down fa-xs"></i></i></h4>
<div id="correc_div" class="d-none">
<table class="table table-striped w-auto table-responsive-lg">
<thead>
<tr>
<th scope="col">Atome</th>
<th scope="col">Symbole</th>
<th scope="col">Points</th>
</tr>
</thead>
<tbody>{% if correction %}{% for atome in correction %}
<tr class="{{atome.4}}">
<td>{{atome.0}}</td>
<td>{% if atome.3 == "-10" %}<del>{{atome.1}}</del>&nbsp;{% endif %}{{atome.2}}</td>
<td>{{atome.3}}</td>
</tr>{% endfor %}{% endif %}
</tbody>
</table>
</div>
<h4 id="dt"><b>TEMPS : {{dt}}</b></h4> <h4 id="dt"><b>TEMPS : {{dt}}</b></h4>
<h1 id="score"><b>SCORE : {{score}}</b></h1>{% if best_score %} <h1 id="score"><b>SCORE : {{score}}</b></h1>{% if best_score %}
<h4><i class="fa-solid fa-star"></i><b>&nbsp;Nouveau&nbsp;<i class="fa-solid fa-star"></i><br/>meilleur score !</b>&nbsp;</h4>{% else %} <h4><i class="fa-solid fa-star"></i><b>&nbsp;Nouveau&nbsp;<i class="fa-solid fa-star"></i><br/>meilleur score !</b>&nbsp;</h4>{% else %}
@ -23,4 +41,10 @@
</a> </a>
</div> </div>
</div> </div>
</div>{% endblock %} </div>{% endblock %}{% block 'extra_scripts' %}{% load static %}
<script>
$( "#correc" ).click(function() {
$( "#correc_div" ).toggleClass(["d-flex","d-none"]);
});
</script>
{% endblock %}

24
quiz_atomes/views.py

@ -32,16 +32,12 @@ def quiz_atomes(request):
if 'pseudo' not in request.session or 'difficulte' not in request.session: if 'pseudo' not in request.session or 'difficulte' not in request.session:
return redirect('settings') return redirect('settings')
atome_list = Atome.objects.all() atome_list = Atome.objects.all().values()
random_list = list(atome_list) random_list = list(atome_list)
shuffle(random_list) shuffle(random_list)
random_list = random_list[:int(request.session['difficulte'])] random_list = random_list[:int(request.session['difficulte'])]
symbole_list = [] request.session['quiz'] = random_list
for x in random_list:
symbole_list.append(x.symbole)
request.session['quiz'] = symbole_list
request.session['time'] = time.time() request.session['time'] = time.time()
template = loader.get_template('quiz_atomes/quiz_atomes.html') template = loader.get_template('quiz_atomes/quiz_atomes.html')
@ -55,16 +51,29 @@ def quiz_atomes(request):
def resultats(request): def resultats(request):
resultats = []
points = 0 points = 0
dt = round(time.time()-request.session['time']-1)*-1 dt = round(time.time()-request.session['time']-1)*-1
for i in range(int(request.session['difficulte'])): for i in range(int(request.session['difficulte'])):
if request.POST.get('input'+str(i+1)).casefold()==request.session['quiz'][i].casefold(): current = [request.session['quiz'][i]['nom'],'',request.session['quiz'][i]['symbole'],'','']
if request.POST.get('input'+str(i+1)).casefold()==request.session['quiz'][i]['symbole'].casefold():
points+=20 points+=20
current[1]=request.session['quiz'][i]['symbole']
current[3]="+10"
current[4]="bg-success text-white"
elif request.POST.get('input'+str(i+1)).casefold()=="": elif request.POST.get('input'+str(i+1)).casefold()=="":
points-=5 points-=5
current[1]=request.session['quiz'][i]['symbole']
current[3]="-5"
current[4]="bg-warning text-dark"
else: else:
points-=10 points-=10
current[1]=request.POST.get('input'+str(i+1))
current[3]="-10"
current[4]="bg-danger text-white"
resultats.append(current)
score=points+dt score=points+dt
@ -83,6 +92,7 @@ def resultats(request):
'dt': dt, 'dt': dt,
'score': score, 'score': score,
'best_score': best_score, 'best_score': best_score,
'correction': resultats,
'favicon':'vial-solid.svg' 'favicon':'vial-solid.svg'
} }
return HttpResponse(template.render(context, request)) return HttpResponse(template.render(context, request))

Loading…
Cancel
Save