fix bug that caused duplicate event lineup entries

This commit is contained in:
2022-08-05 12:59:58 -05:00
parent 9fbcfa622b
commit c79aff9b4f
3 changed files with 29 additions and 10 deletions

View File

@@ -37,6 +37,14 @@
postSubmit.addEventListener("click", e => {
e.preventDefault();
formData = new FormData(postSubmit.form);
for (player_lineup_row of postSubmit.form.querySelectorAll("[class=player-lineup-row]")) {
event_lineup_entry_id_input = player_lineup_row.querySelector('[id$="event_lineup_entry_id"]')
sequence = player_lineup_row.querySelector('[id$="sequence"]').value
position = player_lineup_row.dataset['position']
if (position == '' && sequence == '') {
event_lineup_entry_id_input.value = ''
}
}
fetch(postSubmit.formAction, {
method: 'POST',
body: formData,
@@ -44,10 +52,20 @@
.then(response => response)
.then(data => {
if (data.ok) {
data.json().then(response_data => {
for (event_lineup_entry of response_data){
player_lineup_row = postSubmit.form.querySelector(`[data-player-id="${event_lineup_entry['member_id']}"]`)
event_lineup_entry_id_input = player_lineup_row.querySelector('[id$="event_lineup_entry_id"]')
event_lineup_entry_id_input.value = event_lineup_entry['id']
event_lineup_id_input = player_lineup_row.querySelector('[id$="event_lineup_id"]')
event_lineup_id_input.value = event_lineup_entry['event_lineup_id']
}
})
document.querySelector("#popup-messages-content").innerHTML = `<div class="alert alert-dismissible alert-success" role="alert">
<strong>Success!</strong>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div> `
}
else {
document.querySelector("#popup-messages-content").innerHTML = `<div class="alert alert-dismissible alert-danger" role="alert">
@@ -57,7 +75,10 @@
}
})
.catch((error) => {
console.error('Error:', error);
document.querySelector("#popup-messages-content").innerHTML = `<div class="alert alert-dismissible alert-danger" role="alert">
<strong>Not Success! Some other error! </strong>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div> `
});
})
}

View File

@@ -2,7 +2,7 @@
<table class="table table-sm my-0 table-{{ table_id }}" style="min-height: 1rem">
<tbody class="tbody-{{ table_id }}">
{% for form in formset %}
<tr data-player-id="{{ form.member.data.id }}"
<tr class="player-lineup-row" data-player-id="{{ form.member.data.id }}"
data-position="{{ form.label.value }}"
data-order="{{ form.sequence.value }}"
data-player-name="{{ form.member.data.last_name }}, {{ form.member.data.first_name }}"
@@ -16,14 +16,12 @@
{{ form.position_only.as_hidden }}
{{ form.label.as_hidden }}
{{ form.member_name.as_hidden }}
{{ form.sequence.as_hidden }}
<th class="col-1" id="sequence-member-{{ form.member.data.id }}">
{{ form.sequence.value | add:"1" }}
</th>
<td class="col-1">
<div class="mx-1">
<span id="player-order-form-{{ form.member.id }}" class="lineup-sequence-form">
{{ form.sequence.as_hidden }}
</span>
<span id="player-order-{{ form.member.id }}" class="lineup-sequence-value">
{% if form.order.value > 0 %}{{ form.order.value | add:"1" }}{% endif %}
@@ -33,7 +31,6 @@
{% if form.availability.data.status_code == 2 %}
<i class="bi bi-question-circle-fill text-info"></i>
{% elif form.availability.data.status_code == 1 %}
{# <i class="bi bi-check-circle-fill text-success"></i>#}
<i class="bi bi-check-circle-fill text-success"></i>
{% elif form.availability.data.status_code == 0 %}
<i class="bi bi-x-circle-fill text-danger"></i>