debug: Add logging and warnings for Goal System issues
Based on test feedback - 3 issues addressed: 1. Primary Toggle (Frontend Debug): - Add console.log in handleSaveGoal - Shows what data is sent to backend - Helps debug if checkbox state is correct 2. Lean Mass Display (Backend Debug): - Add error handling in lean_mass calculation - Log why calculation fails (missing weight/bf data) - Try-catch for value conversion errors 3. BP/Strength/Flexibility Warning (UI): - Yellow warning box for incomplete goal types - BP: "benötigt 2 Werte (geplant für v2.0)" - Strength/Flexibility: "Keine Datenquelle" - Transparent about limitations Next: User re-tests with debug output to identify root cause. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
14d80fc903
commit
27a8af7008
|
|
@ -444,10 +444,17 @@ def _get_current_value_for_goal_type(conn, profile_id: str, goal_type: str) -> O
|
||||||
bf_row = cur.fetchone()
|
bf_row = cur.fetchone()
|
||||||
|
|
||||||
if weight_row and bf_row:
|
if weight_row and bf_row:
|
||||||
weight = float(weight_row['weight'])
|
try:
|
||||||
bf_pct = float(bf_row['body_fat_pct'])
|
weight = float(weight_row['weight'])
|
||||||
lean_mass = weight - (weight * bf_pct / 100.0)
|
bf_pct = float(bf_row['body_fat_pct'])
|
||||||
return round(lean_mass, 2)
|
lean_mass = weight - (weight * bf_pct / 100.0)
|
||||||
|
return round(lean_mass, 2)
|
||||||
|
except (ValueError, TypeError) as e:
|
||||||
|
print(f"[DEBUG] lean_mass calculation error: {e}, weight={weight_row}, bf={bf_row}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
# Debug: Log why calculation failed
|
||||||
|
print(f"[DEBUG] lean_mass calc failed - weight_row: {weight_row is not None}, bf_row: {bf_row is not None}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
elif goal_type == 'vo2max':
|
elif goal_type == 'vo2max':
|
||||||
|
|
|
||||||
|
|
@ -167,6 +167,8 @@ export default function GoalsPage() {
|
||||||
description: formData.description || null
|
description: formData.description || null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('[DEBUG] Saving goal:', { editingGoal, data })
|
||||||
|
|
||||||
if (editingGoal) {
|
if (editingGoal) {
|
||||||
await api.updateGoal(editingGoal, data)
|
await api.updateGoal(editingGoal, data)
|
||||||
showToast('✓ Ziel aktualisiert')
|
showToast('✓ Ziel aktualisiert')
|
||||||
|
|
@ -493,6 +495,24 @@ export default function GoalsPage() {
|
||||||
</option>
|
</option>
|
||||||
))}
|
))}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
{/* Warning for incomplete goal types */}
|
||||||
|
{['bp', 'strength', 'flexibility'].includes(formData.goal_type) && (
|
||||||
|
<div style={{
|
||||||
|
marginTop: 8,
|
||||||
|
padding: 8,
|
||||||
|
background: '#FEF3C7',
|
||||||
|
border: '1px solid #F59E0B',
|
||||||
|
borderRadius: 6,
|
||||||
|
fontSize: 12,
|
||||||
|
color: '#92400E'
|
||||||
|
}}>
|
||||||
|
⚠️ Dieser Zieltyp ist aktuell eingeschränkt:
|
||||||
|
{formData.goal_type === 'bp' && ' Blutdruck benötigt 2 Werte (geplant für v2.0)'}
|
||||||
|
{formData.goal_type === 'strength' && ' Keine Datenquelle vorhanden (geplant für v2.0)'}
|
||||||
|
{formData.goal_type === 'flexibility' && ' Keine Datenquelle vorhanden (geplant für v2.0)'}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Name */}
|
{/* Name */}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user