meal_date to suggested_date

This commit is contained in:
jableader 2024-05-25 12:09:32 +10:00
parent 7882b16bd4
commit d6b667463b
4 changed files with 15 additions and 15 deletions

View file

@ -10,9 +10,9 @@ from persons import Person
import datetime import datetime
class Meal(BaseModel): class Meal(BaseModel):
KEYS: ClassVar[List[str]] = ['id', 'meal_date'] KEYS: ClassVar[List[str]] = ['id', 'suggested_date']
id: int = -1 id: int = -1
meal_date: datetime.datetime suggested_date: datetime.datetime
purchase_date: Optional[datetime.datetime] = None purchase_date: Optional[datetime.datetime] = None
chefs: List[Person] = [] chefs: List[Person] = []
@ -25,7 +25,7 @@ async def create(conn):
await conn.execute(''' await conn.execute('''
CREATE TABLE IF NOT EXISTS Meal ( CREATE TABLE IF NOT EXISTS Meal (
id INTEGER PRIMARY KEY, id INTEGER PRIMARY KEY,
meal_date TEXT suggested_date TEXT
);''') );''')
await conn.execute(''' await conn.execute('''
@ -71,9 +71,9 @@ async def insert_meal_recipe(conn, meal_id: int, recipe_id: int):
async def insert_meal(conn, meal: Meal): async def insert_meal(conn, meal: Meal):
async with conn.execute(''' async with conn.execute('''
INSERT INTO Meal (meal_date) INSERT INTO Meal (suggested_date)
VALUES (?) VALUES (?)
''', (meal.meal_date,)) as cursor: ''', (meal.suggested_date,)) as cursor:
meal.id = cursor.lastrowid meal.id = cursor.lastrowid
await sync_meal_participants(conn, meal.id, meal.chefs, 'chef') await sync_meal_participants(conn, meal.id, meal.chefs, 'chef')
@ -102,7 +102,7 @@ async def find_meal_by_id(conn, meal_id: int) -> Meal:
async def find_meals_by_date_range(conn, start: datetime, end: datetime) -> AsyncIterator[Meal]: async def find_meals_by_date_range(conn, start: datetime, end: datetime) -> AsyncIterator[Meal]:
async with conn.execute(f''' async with conn.execute(f'''
SELECT {','.join(Meal.KEYS)} FROM Meal SELECT {','.join(Meal.KEYS)} FROM Meal
WHERE meal_date >= ? AND meal_date <= ? WHERE suggested_date >= ? AND suggested_date <= ?
''', (start, end)) as cursor: ''', (start, end)) as cursor:
async for row in cursor: async for row in cursor:
yield await with_purchase_date(conn, Meal(**{k:v for k,v in zip(Meal.KEYS, row)})) yield await with_purchase_date(conn, Meal(**{k:v for k,v in zip(Meal.KEYS, row)}))
@ -181,9 +181,9 @@ async def sync_recipes(conn, meal_id: int, recipes: List[Recipe]) -> None:
async def update_meal(conn, meal: Meal) -> None: async def update_meal(conn, meal: Meal) -> None:
await conn.execute(''' await conn.execute('''
UPDATE Meal UPDATE Meal
SET meal_date = ? SET suggested_date = ?
WHERE id = ? WHERE id = ?
''', (meal.meal_date, meal.id)) ''', (meal.suggested_date, meal.id))
await sync_meal_participants(conn, meal.id, meal.chefs, 'chef') await sync_meal_participants(conn, meal.id, meal.chefs, 'chef')
await sync_meal_participants(conn, meal.id, meal.cleanup, 'cleanup') await sync_meal_participants(conn, meal.id, meal.cleanup, 'cleanup')

View file

@ -231,7 +231,7 @@ class Meals:
id=0, id=0,
create_date=datetime(2021, 12, 25), create_date=datetime(2021, 12, 25),
created_by=Persons.jacob, created_by=Persons.jacob,
meal_date=datetime(2021, 12, 25), suggested_date=datetime(2021, 12, 25),
chefs=[Persons.jacob], chefs=[Persons.jacob],
cleanup=[Persons.ryan], cleanup=[Persons.ryan],
consumers=[Persons.ellie, Persons.chris], consumers=[Persons.ellie, Persons.chris],

View file

@ -191,7 +191,7 @@ class TestMeals(unittest.IsolatedAsyncioTestCase):
self.assertIsNotNone(meal_by_id) self.assertIsNotNone(meal_by_id)
self.assertEqual(meal_by_id.id, meal.id) self.assertEqual(meal_by_id.id, meal.id)
self.assertEqual(meal_by_id.meal_date, meal.meal_date) self.assertEqual(meal_by_id.suggested_date, meal.suggested_date)
self.assertEqual(len(meal_by_id.chefs), 1) self.assertEqual(len(meal_by_id.chefs), 1)
self.assertEqual(meal_by_id.chefs[0].id, meal.chefs[0].id) self.assertEqual(meal_by_id.chefs[0].id, meal.chefs[0].id)
self.assertEqual(meal_by_id.chefs[0].name, meal.chefs[0].name) self.assertEqual(meal_by_id.chefs[0].name, meal.chefs[0].name)
@ -214,12 +214,12 @@ class TestMeals(unittest.IsolatedAsyncioTestCase):
self.assertEqual(meal_by_id.extra_ingredients[0].id, extra_ingredient.id) self.assertEqual(meal_by_id.extra_ingredients[0].id, extra_ingredient.id)
self.assertEqual(meal_by_id.extra_ingredients[0].line, extra_ingredient.line) self.assertEqual(meal_by_id.extra_ingredients[0].line, extra_ingredient.line)
meals_by_date_range = await main.get_meals(meal.meal_date, meal.meal_date, self.conn) meals_by_date_range = await main.get_meals(meal.suggested_date, meal.suggested_date, self.conn)
self.assertIsNotNone(meals_by_date_range) self.assertIsNotNone(meals_by_date_range)
self.assertIsInstance(meals_by_date_range, list, msg=meals_by_date_range.body if hasattr(meals_by_date_range, 'body') else meals_by_date_range) self.assertIsInstance(meals_by_date_range, list, msg=meals_by_date_range.body if hasattr(meals_by_date_range, 'body') else meals_by_date_range)
self.assertEqual(len(meals_by_date_range), 1) self.assertEqual(len(meals_by_date_range), 1)
self.assertEqual(meals_by_date_range[0].id, meal.id) self.assertEqual(meals_by_date_range[0].id, meal.id)
self.assertEqual(meals_by_date_range[0].meal_date, meal.meal_date) self.assertEqual(meals_by_date_range[0].suggested_date, meal.suggested_date)
self.assertEqual(len(meals_by_date_range[0].chefs), 1) self.assertEqual(len(meals_by_date_range[0].chefs), 1)
self.assertEqual(meals_by_date_range[0].chefs[0].id, meal.chefs[0].id) self.assertEqual(meals_by_date_range[0].chefs[0].id, meal.chefs[0].id)
self.assertEqual(meals_by_date_range[0].chefs[0].name, meal.chefs[0].name) self.assertEqual(meals_by_date_range[0].chefs[0].name, meal.chefs[0].name)
@ -251,7 +251,7 @@ class TestMeals(unittest.IsolatedAsyncioTestCase):
self.assertIsNotNone(saved_meal) self.assertIsNotNone(saved_meal)
self.assertIsInstance(saved_meal, meals.Meal, msg=saved_meal.body if hasattr(saved_meal, 'body') else saved_meal) self.assertIsInstance(saved_meal, meals.Meal, msg=saved_meal.body if hasattr(saved_meal, 'body') else saved_meal)
saved_meal.meal_date = datetime.datetime.fromisoformat('2021-01-01T12:00:00') saved_meal.suggested_date = datetime.datetime.fromisoformat('2021-01-01T12:00:00')
saved_meal.recipes = [test_data.Recipes.how_to_steam_green_beans] saved_meal.recipes = [test_data.Recipes.how_to_steam_green_beans]
saved_meal.extra_ingredients.append(test_data.Ingredients.butter) saved_meal.extra_ingredients.append(test_data.Ingredients.butter)
saved_meal.chefs.append(test_data.Persons.ryan) saved_meal.chefs.append(test_data.Persons.ryan)
@ -263,7 +263,7 @@ class TestMeals(unittest.IsolatedAsyncioTestCase):
self.assertIsInstance(updated_meal, meals.Meal, msg=updated_meal.body if hasattr(updated_meal, 'body') else updated_meal) self.assertIsInstance(updated_meal, meals.Meal, msg=updated_meal.body if hasattr(updated_meal, 'body') else updated_meal)
self.assertEqual(updated_meal.id, saved_meal.id) self.assertEqual(updated_meal.id, saved_meal.id)
self.assertEqual(updated_meal.meal_date, saved_meal.meal_date) self.assertEqual(updated_meal.suggested_date, saved_meal.suggested_date)
self.assertPersons(updated_meal.chefs, saved_meal.chefs) self.assertPersons(updated_meal.chefs, saved_meal.chefs)
self.assertPersons(updated_meal.cleanup, saved_meal.cleanup) self.assertPersons(updated_meal.cleanup, saved_meal.cleanup)
self.assertPersons(updated_meal.consumers, saved_meal.consumers) self.assertPersons(updated_meal.consumers, saved_meal.consumers)

View file

@ -45,7 +45,7 @@ class TestShopping(unittest.IsolatedAsyncioTestCase):
for recipe in meal.recipes: for recipe in meal.recipes:
await recipes.insert_recipe(self.conn, recipe) await recipes.insert_recipe(self.conn, recipe)
meal.meal_date = datetime.now() + timedelta(days=1) meal.suggested_date = datetime.now() + timedelta(days=1)
await meals.insert_meal(self.conn, meal) await meals.insert_meal(self.conn, meal)
shopping_list = await shopping.current_shopping_list(self.conn) shopping_list = await shopping.current_shopping_list(self.conn)