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['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("""