import gradio as gr from simple_salesforce import Salesforce # Salesforce Connection sf = Salesforce(username='diggavalli98@gmail.com', password='Sati@1020', security_token='sSSjyhInIsUohKpG8sHzty2q') # Function to fetch menu data from Salesforce def fetch_menu_from_salesforce(preference): try: # Querying the Salesforce Menu_Item__c object query = "SELECT Name, Description__c, Price__c, Image1__c, Veg_NonVeg__c, Section__c FROM Menu_Item__c" menu_items = sf.query(query)["records"] # Filter menu based on preference filtered_menu = [ item for item in menu_items if preference == "All" or item["Veg_NonVeg__c"] == preference ] # Group items by section sections = {} for item in filtered_menu: section = item["Section__c"] if section not in sections: sections[section] = [] sections[section].append(item) # Generate HTML for menu display html = "" for section, items in sections.items(): html += f"

{section}

" for item in items: html += f"""

{item['Name']}

{item.get('Description__c', 'No description available')}

Price: ${item['Price__c']}

{item['Name']}
""" return html if html else "

No menu items available.

" except Exception as e: return f"

Error fetching menu: {str(e)}

" # Gradio App with gr.Blocks() as app: with gr.Row(): gr.HTML("

Welcome to Biryani Hub

") with gr.Row(): preference = gr.Radio(choices=["All", "Veg", "Non-Veg"], label="Filter Preference", value="All") menu_display = gr.HTML() # Update the menu display based on preference preference.change( lambda pref: fetch_menu_from_salesforce(pref), inputs=preference, outputs=menu_display ) # Initial Load menu_display.value = fetch_menu_from_salesforce("All") app.launch()