meal_date to suggested_date
This commit is contained in:
parent
7882b16bd4
commit
d6b667463b
4 changed files with 15 additions and 15 deletions
16
meals/db.py
16
meals/db.py
|
|
@ -10,9 +10,9 @@ from persons import Person
|
|||
import datetime
|
||||
|
||||
class Meal(BaseModel):
|
||||
KEYS: ClassVar[List[str]] = ['id', 'meal_date']
|
||||
KEYS: ClassVar[List[str]] = ['id', 'suggested_date']
|
||||
id: int = -1
|
||||
meal_date: datetime.datetime
|
||||
suggested_date: datetime.datetime
|
||||
purchase_date: Optional[datetime.datetime] = None
|
||||
|
||||
chefs: List[Person] = []
|
||||
|
|
@ -25,7 +25,7 @@ async def create(conn):
|
|||
await conn.execute('''
|
||||
CREATE TABLE IF NOT EXISTS Meal (
|
||||
id INTEGER PRIMARY KEY,
|
||||
meal_date TEXT
|
||||
suggested_date TEXT
|
||||
);''')
|
||||
|
||||
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 with conn.execute('''
|
||||
INSERT INTO Meal (meal_date)
|
||||
INSERT INTO Meal (suggested_date)
|
||||
VALUES (?)
|
||||
''', (meal.meal_date,)) as cursor:
|
||||
''', (meal.suggested_date,)) as cursor:
|
||||
meal.id = cursor.lastrowid
|
||||
|
||||
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 with conn.execute(f'''
|
||||
SELECT {','.join(Meal.KEYS)} FROM Meal
|
||||
WHERE meal_date >= ? AND meal_date <= ?
|
||||
WHERE suggested_date >= ? AND suggested_date <= ?
|
||||
''', (start, end)) as cursor:
|
||||
async for row in cursor:
|
||||
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:
|
||||
await conn.execute('''
|
||||
UPDATE Meal
|
||||
SET meal_date = ?
|
||||
SET suggested_date = ?
|
||||
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.cleanup, 'cleanup')
|
||||
|
|
|
|||
|
|
@ -231,7 +231,7 @@ class Meals:
|
|||
id=0,
|
||||
create_date=datetime(2021, 12, 25),
|
||||
created_by=Persons.jacob,
|
||||
meal_date=datetime(2021, 12, 25),
|
||||
suggested_date=datetime(2021, 12, 25),
|
||||
chefs=[Persons.jacob],
|
||||
cleanup=[Persons.ryan],
|
||||
consumers=[Persons.ellie, Persons.chris],
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ class TestMeals(unittest.IsolatedAsyncioTestCase):
|
|||
|
||||
self.assertIsNotNone(meal_by_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(meal_by_id.chefs[0].id, meal.chefs[0].id)
|
||||
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].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.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(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(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)
|
||||
|
|
@ -251,7 +251,7 @@ class TestMeals(unittest.IsolatedAsyncioTestCase):
|
|||
self.assertIsNotNone(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.extra_ingredients.append(test_data.Ingredients.butter)
|
||||
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.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.cleanup, saved_meal.cleanup)
|
||||
self.assertPersons(updated_meal.consumers, saved_meal.consumers)
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class TestShopping(unittest.IsolatedAsyncioTestCase):
|
|||
for recipe in meal.recipes:
|
||||
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)
|
||||
|
||||
shopping_list = await shopping.current_shopping_list(self.conn)
|
||||
|
|
|
|||
Loading…
Reference in a new issue