import gradio as gr from simple_salesforce import Salesforce # Salesforce Connection sf = Salesforce(username='diggavalli98@gmail.com', password='Sati@1020', security_token='sSSjyhInIsUohKpG8sHzty2q') # Fetch menu items from Salesforce def fetch_menu(): query = "SELECT Id, Name, Price__c, Description__c, Image1__c, Veg_NonVeg__c, Section__c FROM Menu_Item__c" result = sf.query(query) return result['records'] # Fetch add-ons from Salesforce def fetch_add_ons(): query = "SELECT Id, Name, Price__c, Menu_Item__c FROM Add_Ons__c" result = sf.query(query) return result['records'] # Generate HTML for the menu items def generate_menu_html(menu_items, add_ons, preference): html = "" sections = set(item['Section__c'] for item in menu_items) for section in sorted(sections): html += f"

{section}

" for item in menu_items: if item['Section__c'] == section and (preference == 'All' or item['Veg_NonVeg__c'] == preference): item_add_ons = [addon for addon in add_ons if addon['Menu_Item__c'] == item['Id']] add_ons_html = "".join( f"
{addon['Name']} (+${addon['Price__c']})
" for addon in item_add_ons ) html += f"""
{item[

{item['Name']}

{item['Description__c']}

Price: ${item['Price__c']}

""" html += "
" return html # JavaScript for popup functionality popup_script = """ """ # Gradio app with gr.Blocks() as app: with gr.Row(): gr.Markdown("# Welcome to Biryani Hub") preference = gr.Radio(label="Filter Preference", choices=["All", "Veg", "Non-Veg"], value="All") menu_html = gr.HTML() with gr.Row(): gr.HTML(""" """ + popup_script) def update_menu(preference): menu_items = fetch_menu() add_ons = fetch_add_ons() return generate_menu_html(menu_items, add_ons, preference) preference.change(update_menu, inputs=preference, outputs=menu_html) app.launch()