parent
0be9f102bc
commit
ade1eceb46
@ -0,0 +1,14 @@ |
|||||||
|
{% load static %} |
||||||
|
|
||||||
|
<div class="table-row-3-colums-ranks bottom-border"> |
||||||
|
|
||||||
|
<div class="table-cell"><div class="mybox center"><span x-text="ranking.formatted_ranking"></div></div> |
||||||
|
<div class="table-cell table-cell-large padding-left semibold"> |
||||||
|
|
||||||
|
<template x-for="name in ranking.names" > |
||||||
|
<div><span x-text="name"></div> |
||||||
|
</template> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="table-cell right horizontal-padding"><span x-text="ranking.points"></div> |
||||||
|
</div> |
||||||
@ -0,0 +1,71 @@ |
|||||||
|
{% extends 'tournaments/broadcast_base.html' %} |
||||||
|
|
||||||
|
{% block head_title %}Classement{% endblock %} |
||||||
|
{% block first_title %}{{ tournament.display_name }}{% endblock %} |
||||||
|
{% block second_title %}Classement{% endblock %} |
||||||
|
|
||||||
|
{% block content %} |
||||||
|
|
||||||
|
{% load static %} |
||||||
|
|
||||||
|
<div x-data="{ |
||||||
|
paginatedRankings: null, |
||||||
|
active: 1, |
||||||
|
retrieveRankings() { |
||||||
|
fetch('/tournament/{{ tournament.id }}/rankings/json/') |
||||||
|
.then(res => res.json()) |
||||||
|
.then((data) => { |
||||||
|
|
||||||
|
let pageSize = 20 |
||||||
|
this.paginatedRankings = this.paginate(data, pageSize) |
||||||
|
|
||||||
|
const splitGroups = []; |
||||||
|
this.paginatedRankings.forEach(group => { |
||||||
|
const firstHalf = group.slice(0, pageSize / 2); |
||||||
|
const secondHalf = group.slice(pageSize / 2); |
||||||
|
if (secondHalf.length > 0) { |
||||||
|
splitGroups.push([firstHalf, secondHalf]); |
||||||
|
} else { |
||||||
|
splitGroups.push([firstHalf]); |
||||||
|
} |
||||||
|
}); |
||||||
|
this.paginatedRankings = splitGroups; |
||||||
|
|
||||||
|
}) |
||||||
|
}, |
||||||
|
paginate(array, pageSize) { |
||||||
|
let paginatedArray = []; |
||||||
|
for (let i = 0; i < array.length; i += pageSize) { |
||||||
|
paginatedArray.push(array.slice(i, i + pageSize)); |
||||||
|
} |
||||||
|
return paginatedArray; |
||||||
|
}, |
||||||
|
loop() { |
||||||
|
this.retrieveRankings() |
||||||
|
setInterval(() => { |
||||||
|
this.retrieveRankings() |
||||||
|
this.active = this.active === this.paginatedRankings.length ? 1 : this.active+1 |
||||||
|
}, 15000) |
||||||
|
} |
||||||
|
|
||||||
|
}" x-init="loop()"> |
||||||
|
|
||||||
|
<div class="grid-x"> |
||||||
|
<template x-for="i in paginatedRankings.length" > |
||||||
|
<template x-for="column in paginatedRankings[i-1]" > |
||||||
|
<div class="cell medium-6 large-6 topblock my-block" x-show="active === i"> |
||||||
|
|
||||||
|
<div class="bubble"> |
||||||
|
<template x-for="ranking in column" > |
||||||
|
|
||||||
|
{% include 'tournaments/broadcasted_ranking.html' %} |
||||||
|
|
||||||
|
</template> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
</template> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
{% endblock %} |
||||||
@ -1,13 +1,13 @@ |
|||||||
{% load static %} |
{% load static %} |
||||||
|
|
||||||
<div class="table-row-3-colums-teams bottom-border"> |
<div class="table-row-3-colums-ranks bottom-border"> |
||||||
|
|
||||||
<div class="table-cell table-cell-large semibold"> |
<div class="table-cell"><div class="mybox center">{{ ranking.formatted_ranking }}</div></div> |
||||||
|
<div class="table-cell table-cell-large padding-left semibold"> |
||||||
{% for name in ranking.names %} |
{% for name in ranking.names %} |
||||||
<div>{{ name }}</div> |
<div>{{ name }}</div> |
||||||
{% endfor %} |
{% endfor %} |
||||||
</div> |
</div> |
||||||
|
|
||||||
<div class="table-cell right horizontal-padding">{{ ranking.points_earned_display }}</div> |
<div class="table-cell right horizontal-padding">{{ ranking.points }}</div> |
||||||
<div class="table-cell"><div class="mybox center">{{ ranking.ranking_display }}</div></div> |
|
||||||
</div> |
</div> |
||||||
|
|||||||
Loading…
Reference in new issue