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 %} |
||||
|
||||
<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 %} |
||||
<div>{{ name }}</div> |
||||
{% endfor %} |
||||
</div> |
||||
|
||||
<div class="table-cell right horizontal-padding">{{ ranking.points_earned_display }}</div> |
||||
<div class="table-cell"><div class="mybox center">{{ ranking.ranking_display }}</div></div> |
||||
<div class="table-cell right horizontal-padding">{{ ranking.points }}</div> |
||||
</div> |
||||
|
||||
Loading…
Reference in new issue