Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from utils.excel_operations import read_excel | |
| from utils.state_management import state | |
| def menu_page(): | |
| def get_filtered_menu(): | |
| user = state.get("user") | |
| if not user: | |
| return "Please log in first!" | |
| preferences = user["Preferences"] | |
| allergies = user["Allergies"].split(",") | |
| menu = read_excel("data/menu.xlsx") | |
| filtered_menu = [ | |
| item for item in menu | |
| if preferences in item["Category"] and not any(allergen in allergies for allergen in item["Allergens"]) | |
| ] | |
| return filtered_menu | |
| def add_to_cart(item, spice_level): | |
| cart = state.get("cart", []) | |
| cart.append({"Item": item, "Spice Level": spice_level}) | |
| state["cart"] = cart | |
| return "Added to cart!" | |
| menu_items = get_filtered_menu() | |
| with gr.Group(): | |
| gr.Markdown("### Menu") | |
| if isinstance(menu_items, str): | |
| gr.Label(menu_items) # Display message if menu_items is a string (e.g., "Please log in first!") | |
| else: | |
| for item in menu_items: | |
| with gr.Row(): # Use gr.Row to display menu items | |
| gr.Image(item["Image"], label=item["Name"]) | |
| gr.Text(f"{item['Price']} ₹") | |
| spice_level = gr.Radio(["Mild 🌶️", "Medium 🌶️🌶️", "High 🌶️🌶️🌶️"], label="Spice Level") | |
| add_button = gr.Button("Add to Cart") | |
| add_button.click(add_to_cart, inputs=[item["Name"], spice_level], outputs=gr.Label("Status")) | |