Files
Meal-Picker/src/MealSelector.py
2025-12-17 23:17:17 -05:00

51 lines
1.6 KiB
Python

from FileHandler import read_ingredient_json, combine_ingredients, write_checklist
import flet as ft
selected_meals = {}
meal_json = read_ingredient_json()
def selector(page: ft.Page):
def update_meal_selection(event):
for meal in meal_list:
if meal.value == False:
if meal.label in selected_meals:
selected_meals.pop(meal.label)
else:
selected_meals[meal.label] = meal_json[meal.label]
if selected_meals == {}:
page.show_dialog(ft.SnackBar(ft.Text("Please select at least one meal.")))
return
write_checklist(combine_ingredients(selected_meals))
page.title = "Select Some Meals"
meal_list = []
for name, _ in meal_json.items():
meal_list.append(ft.Checkbox(
label = name,
active_color = '#6da0cd',
)
)
submit_button = ft.Button(content=ft.Text("Make Shopping List"), on_click=update_meal_selection)
page.controls[0].content = ft.Column(
controls = [
ft.ListView(
controls=meal_list,
expand=True,
spacing=10,
padding=10,
),
submit_button,
],
height = 700,
expand = False,
)
page.update()
if __name__ == "__main__":
ft.app(selector)