mirror of
https://github.com/sstent/foodplanner.git
synced 2026-01-25 11:11:36 +00:00
updated the tracker to have more features
This commit is contained in:
@@ -76,18 +76,27 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Food Breakdown -->
|
<!-- Food Breakdown -->
|
||||||
<div class="ms-3">
|
<div class="ms-3 row row-cols-2 g-1">
|
||||||
{% for meal_food in tracked_meal.meal.meal_foods %}
|
{% for meal_food in tracked_meal.meal.meal_foods %}
|
||||||
{% set effective_quantity = meal_food.quantity * tracked_meal.quantity %}
|
{% set effective_quantity = meal_food.quantity * tracked_meal.quantity %}
|
||||||
<div class="small text-muted mb-1">
|
<div class="col">
|
||||||
• {{ meal_food.food.name }}: {{ "%.1f"|format(effective_quantity) }} {{ meal_food.food.serving_unit }}
|
<div class="small text-muted">
|
||||||
{% if meal_food.food.serving_size %}
|
• {{ meal_food.food.name }}
|
||||||
({{ meal_food.food.serving_size }})
|
</div>
|
||||||
{% endif %}
|
</div>
|
||||||
|
<div class="col text-end">
|
||||||
|
<div class="small text-muted">
|
||||||
|
{{ "%.1f"|format(effective_quantity) }} {{ meal_food.food.serving_unit }}
|
||||||
|
{% if meal_food.food.serving_size %}
|
||||||
|
({{ meal_food.food.serving_size }})
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if not tracked_meal.meal.meal_foods %}
|
{% if not tracked_meal.meal.meal_foods %}
|
||||||
<div class="small text-muted">No foods in this meal</div>
|
<div class="col-12">
|
||||||
|
<div class="small text-muted">No foods in this meal</div>
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -31,22 +31,22 @@ class TestTrackerRoutes:
|
|||||||
"person": "Sarah",
|
"person": "Sarah",
|
||||||
"date": test_date,
|
"date": test_date,
|
||||||
"meal_id": str(sample_meal.id),
|
"meal_id": str(sample_meal.id),
|
||||||
"meal_time": "Breakfast",
|
"meal_time": "Breakfast"
|
||||||
"quantity": "1.5"
|
|
||||||
})
|
})
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
data = response.json()
|
data = response.json()
|
||||||
assert data["status"] == "success"
|
assert data["status"] == "success"
|
||||||
|
|
||||||
def test_tracker_add_meal_default_quantity(self, client, sample_meal):
|
# This test is no longer relevant as quantity is always 1.0
|
||||||
"""Test adding meal with default quantity"""
|
# def test_tracker_add_meal_default_quantity(self, client, sample_meal):
|
||||||
test_date = date.today().isoformat()
|
# """Test adding meal with default quantity"""
|
||||||
response = client.post("/tracker/add_meal", data={
|
# test_date = date.today().isoformat()
|
||||||
"person": "Stuart",
|
# response = client.post("/tracker/add_meal", data={
|
||||||
"date": test_date,
|
# "person": "Stuart",
|
||||||
"meal_id": str(sample_meal.id),
|
# "date": test_date,
|
||||||
"meal_time": "Lunch"
|
# "meal_id": str(sample_meal.id),
|
||||||
})
|
# "meal_time": "Lunch"
|
||||||
|
# })
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
data = response.json()
|
data = response.json()
|
||||||
assert data["status"] == "success"
|
assert data["status"] == "success"
|
||||||
@@ -394,3 +394,37 @@ class TestTrackerAddFood:
|
|||||||
assert len(tracked_meal.meal.meal_foods) == 1
|
assert len(tracked_meal.meal.meal_foods) == 1
|
||||||
assert tracked_meal.meal.meal_foods[0].food_id == sample_food.id
|
assert tracked_meal.meal.meal_foods[0].food_id == sample_food.id
|
||||||
assert tracked_meal.meal.meal_foods[0].quantity == 100.0
|
assert tracked_meal.meal.meal_foods[0].quantity == 100.0
|
||||||
|
|
||||||
|
|
||||||
|
def test_add_food_to_tracker_with_meal_time(self, client, sample_food, db_session):
|
||||||
|
"""Test POST /tracker/add_food with a specific meal time"""
|
||||||
|
|
||||||
|
tracked_day = TrackedDay(person="Sarah", date=date.today(), is_modified=False)
|
||||||
|
db_session.add(tracked_day)
|
||||||
|
db_session.commit()
|
||||||
|
db_session.refresh(tracked_day)
|
||||||
|
|
||||||
|
response = client.post("/tracker/add_food", json={
|
||||||
|
"person": "Sarah",
|
||||||
|
"date": date.today().isoformat(),
|
||||||
|
"food_id": sample_food.id,
|
||||||
|
"quantity": 150.0,
|
||||||
|
"meal_time": "Dinner"
|
||||||
|
})
|
||||||
|
assert response.status_code == 200
|
||||||
|
data = response.json()
|
||||||
|
assert data["status"] == "success"
|
||||||
|
|
||||||
|
tracked_meals = db_session.query(TrackedMeal).filter(
|
||||||
|
TrackedMeal.tracked_day_id == tracked_day.id,
|
||||||
|
TrackedMeal.meal_time == "Dinner"
|
||||||
|
).all()
|
||||||
|
assert len(tracked_meals) == 1
|
||||||
|
|
||||||
|
tracked_meal = tracked_meals[0]
|
||||||
|
assert tracked_meal.meal.name == sample_food.name
|
||||||
|
assert tracked_meal.quantity == 1.0
|
||||||
|
|
||||||
|
assert len(tracked_meal.meal.meal_foods) == 1
|
||||||
|
assert tracked_meal.meal.meal_foods[0].food_id == sample_food.id
|
||||||
|
assert tracked_meal.meal.meal_foods[0].quantity == 150.0
|
||||||
|
|||||||
Reference in New Issue
Block a user