Fix Template to use last session data in Block
This commit is contained in:
parent
014ccacb46
commit
209359043e
2 changed files with 28 additions and 5 deletions
|
|
@ -155,6 +155,10 @@
|
||||||
const tbody = document.getElementById('activeTableBody');
|
const tbody = document.getElementById('activeTableBody');
|
||||||
tbody.innerHTML = '';
|
tbody.innerHTML = '';
|
||||||
|
|
||||||
|
// Get current template data to seed values
|
||||||
|
const templateName = document.getElementById('templateSelect').value;
|
||||||
|
const templateData = templates[templateName] || [];
|
||||||
|
|
||||||
const selects = [
|
const selects = [
|
||||||
{ el: document.getElementById('primarySelect'), group: 'Primary' },
|
{ el: document.getElementById('primarySelect'), group: 'Primary' },
|
||||||
{ el: document.getElementById('secondarySelect'), group: 'Secondary' },
|
{ el: document.getElementById('secondarySelect'), group: 'Secondary' },
|
||||||
|
|
@ -167,15 +171,23 @@
|
||||||
for (let set = 1; set <= 4; set++) {
|
for (let set = 1; set <= 4; set++) {
|
||||||
selects.forEach(s => {
|
selects.forEach(s => {
|
||||||
const opt = s.el.options[s.el.selectedIndex];
|
const opt = s.el.options[s.el.selectedIndex];
|
||||||
|
const exName = s.el.value;
|
||||||
|
|
||||||
|
// Look for existing data in the template for this exercise/set
|
||||||
|
const match = templateData.find(row => row.exercise === exName && row.set === set);
|
||||||
|
const rReps = match ? match.reps : 0;
|
||||||
|
const rWeight = match ? match.weight : 0;
|
||||||
|
const rNotes = match ? (match.notes || '') : '';
|
||||||
|
|
||||||
const row = `
|
const row = `
|
||||||
<tr>
|
<tr>
|
||||||
<td>${s.el.value}<input type="hidden" class="d-ex" value="${s.el.value}"></td>
|
<td>${exName}<input type="hidden" class="d-ex" value="${exName}"></td>
|
||||||
<td>${s.group}<input type="hidden" class="d-gr" value="${s.group}">
|
<td>${s.group}<input type="hidden" class="d-gr" value="${s.group}">
|
||||||
<input type="hidden" class="d-ty" value="${opt.dataset.type}"></td>
|
<input type="hidden" class="d-ty" value="${opt.dataset.type}"></td>
|
||||||
<td>${set}<input type="hidden" class="d-st" value="${set}"></td>
|
<td>${set}<input type="hidden" class="d-st" value="${set}"></td>
|
||||||
<td><input type="number" class="table-input d-rp" value="0"></td>
|
<td><input type="number" class="table-input d-rp" value="${rReps}"></td>
|
||||||
<td><input type="number" class="table-input d-wt" step="0.5" value="0"></td>
|
<td><input type="number" class="table-input d-wt" step="0.5" value="${rWeight}"></td>
|
||||||
<td><input type="text" class="table-input d-nt" placeholder="Notes"></td>
|
<td><input type="text" class="table-input d-nt" value="${rNotes}" placeholder="Notes"></td>
|
||||||
</tr>`;
|
</tr>`;
|
||||||
tbody.insertAdjacentHTML('beforeend', row);
|
tbody.insertAdjacentHTML('beforeend', row);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ from django.db import transaction
|
||||||
from .models import Exercise, Workout, ChestTemplate, BackTemplate, LegsTemplate
|
from .models import Exercise, Workout, ChestTemplate, BackTemplate, LegsTemplate
|
||||||
import json
|
import json
|
||||||
from datetime import date
|
from datetime import date
|
||||||
|
from django.core.serializers.json import DjangoJSONEncoder
|
||||||
|
|
||||||
def workout_tracker(request):
|
def workout_tracker(request):
|
||||||
template_models = {
|
template_models = {
|
||||||
|
|
@ -50,4 +51,14 @@ def workout_tracker(request):
|
||||||
|
|
||||||
# GET: Fetch exercises for dropdowns
|
# GET: Fetch exercises for dropdowns
|
||||||
exercises = list(Exercise.objects.values('exercise', 'type', 'group'))
|
exercises = list(Exercise.objects.values('exercise', 'type', 'group'))
|
||||||
return render(request, 'tracker/index.html', {'exercises_json': json.dumps(exercises)})
|
|
||||||
|
# Fetch current template data to seed the view
|
||||||
|
templates_data = {
|
||||||
|
name: list(model.objects.values())
|
||||||
|
for name, model in template_models.items()
|
||||||
|
}
|
||||||
|
|
||||||
|
return render(request, 'tracker/index.html', {
|
||||||
|
'exercises_json': json.dumps(exercises),
|
||||||
|
'templates_json': json.dumps(templates_data, cls=DjangoJSONEncoder)
|
||||||
|
})
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue