Fix Template to use last session data in Block

This commit is contained in:
Cutty 2026-03-19 14:48:55 -06:00
parent 014ccacb46
commit 209359043e
2 changed files with 28 additions and 5 deletions

View file

@ -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);
}); });

View file

@ -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)
})