.row.mb-4 style="height: calc(100vh - 280px)" .col.d-flex.flex-column style="height: 100%" .row.mb-4 .col a.btn.btn-primary href=new_contest_contestant_path(@contest) style="margin-top: -3px" | + #{t("helpers.buttons.add")} a.ms-2.btn.btn.btn-primary href=contest_import_path(@contest) style="margin-top: -3px" | #{t("helpers.buttons.import")} a.ms-2.btn.btn.btn-primary href="/contests/#{@contest.id}/export.csv" style="margin-top: -3px" | #{t("helpers.buttons.export")} - if @contest.categories.size > 0 .row .col select.mt-2.mb-2 id="categories" style="padding: 5px" option value=-1 | Tous.tes les participant.e.s option value=-2 | Participant.e.s sans catégorie - @contest.categories.each do |category| option value=category.id = category.name javascript: categorySelectEl = document.getElementById('categories'); urlParams = new URLSearchParams(window.location.search); selectedCategory = urlParams.get('category'); Array.from(categorySelectEl.children).forEach((option) => { if (option.value == selectedCategory) option.selected = true; }); categorySelectEl.addEventListener('change', (e) => { window.location.replace(`#{contest_contestants_path(@contest)}?category=${e.target.value}`); }) .d-flex.flex-column style="overflow-y: auto" table.table.table-striped.table-hover thead tr th = t("activerecord.attributes.contestant.name") th = t("activerecord.attributes.contestant.offline") th = t("activerecord.attributes.contestant.completions") th = t("activerecord.attributes.contestant.display_time") tbody - @contestants.each_with_index do |contestant, index| tr scope="row" td = contestant.name td - if contestant.offline.present? td = contestant.completions.where(remaining_pieces: nil).length td = contestant.completions.size > 0 && contestant.completions[-1].remaining_pieces ? "#{contestant.completions.map{|completion| completion.puzzle.pieces}.sum - contestant.completions[-1].remaining_pieces}p" : contestant.display_time td a.btn.btn-sm.btn-secondary href=edit_contest_contestant_path(@contest, contestant) = t("helpers.buttons.open")