43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
from FileHandler import read_json, combine_ingredients, write_checklist
|
|
|
|
import flet as ft
|
|
|
|
selected_meals = {}
|
|
meal_json = read_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]
|
|
print(selected_meals)
|
|
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))
|
|
|
|
submit_button = ft.ElevatedButton(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 = 500,
|
|
expand = False,
|
|
)
|
|
page.update()
|
|
|
|
if __name__ == "__main__":
|
|
ft.app(selector) |