geethareddy commited on
Commit
647ca3e
·
verified ·
1 Parent(s): 4dbc5a3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -34
app.py CHANGED
@@ -498,17 +498,15 @@ def menu():
498
 
499
  if user_email:
500
  session['user_email'] = user_email
501
- session['user_name'] = user_name # Store name in session
502
  else:
503
  return redirect(url_for("login"))
504
  else:
505
- user_name = session.get('user_name') # Get name from session if it's already stored
506
 
507
- # Get the first letter of the user's name (make it uppercase for consistency)
508
  first_letter = user_name[0].upper() if user_name else "A"
509
 
510
  try:
511
- # Fetch user referral and reward points
512
  user_query = f"SELECT Referral__c, Reward_Points__c FROM Customer_Login__c WHERE Email__c = '{user_email}'"
513
  user_result = sf.query(user_query)
514
 
@@ -518,7 +516,6 @@ def menu():
518
  referral_code = user_result['records'][0].get('Referral__c', 'N/A')
519
  reward_points = user_result['records'][0].get('Reward_Points__c', 0)
520
 
521
- # Query to fetch Menu_Item__c records including Total_Ordered__c for best sellers
522
  menu_query = """
523
  SELECT Name, Price__c, Description__c, Image1__c, Image2__c, Veg_NonVeg__c, Section__c, Total_Ordered__c
524
  FROM Menu_Item__c
@@ -526,28 +523,15 @@ def menu():
526
  result = sf.query(menu_query)
527
  food_items = result['records'] if 'records' in result else []
528
 
529
- # Ensure Total_Ordered__c has a valid value
530
  for item in food_items:
531
  if 'Total_Ordered__c' not in item or item['Total_Ordered__c'] is None:
532
- item['Total_Ordered__c'] = 0 # Default value
533
 
534
- # Query to fetch Custom_Dish__c records created within the last 7 days with Total_Ordered__c > 10
535
- custom_dish_query = """
536
- SELECT Name, Price__c, Description__c, Image1__c, Image2__c, Veg_NonVeg__c, Section__c, Total_Ordered__c
537
- FROM Custom_Dish__c
538
- WHERE CreatedDate >= LAST_N_DAYS:7
539
- """
540
- custom_dish_result = sf.query(custom_dish_query)
541
- custom_dishes = custom_dish_result['records'] if 'records' in custom_dish_result else []
542
-
543
- # Merge both Menu_Item__c and Custom_Dish__c records into the ordered menu
544
- all_items = food_items + custom_dishes
545
 
546
- # Define the order of sections, adding "Best Sellers" at the top
547
  section_order = ["Best Sellers", "Starters", "Biryanis", "Curries", "Breads", "Customized dish", "Apetizer", "Desserts", "Soft Drinks"]
548
  ordered_menu = {section: [] for section in section_order}
549
 
550
- # Sort items by Total_Ordered__c in descending order and pick top 4 as best sellers
551
  best_sellers = sorted(all_items, key=lambda x: x.get("Total_Ordered__c", 0), reverse=True)
552
 
553
  if selected_category == "Veg":
@@ -555,39 +539,30 @@ def menu():
555
  elif selected_category == "Non veg":
556
  best_sellers = [item for item in best_sellers if item.get("Veg_NonVeg__c") in ["Non veg", "both"]]
557
 
558
- # Take only the top 4 best sellers after filtering
559
  best_sellers = best_sellers[:4]
560
 
561
- # Ensure "Best Sellers" is added only if there are items after filtering
562
  if best_sellers:
563
  ordered_menu["Best Sellers"] = best_sellers
564
 
565
- # Create a set to track item names already added to prevent duplicates
566
  added_item_names = set()
567
 
568
- # Filter and organize menu items based on category and section (to avoid duplicates)
569
  for item in all_items:
570
- section = item.get("Section__c", "Others") # Default to "Others" if missing
571
  if section not in ordered_menu:
572
  ordered_menu[section] = []
573
 
574
- # Skip item if it's already been added to avoid duplicates
575
  if item['Name'] in added_item_names:
576
  continue
577
 
578
- # Apply category filters
579
  if selected_category == "Veg" and item.get("Veg_NonVeg__c") not in ["Veg", "both"]:
580
  continue
581
  if selected_category == "Non veg" and item.get("Veg_NonVeg__c") not in ["Non veg", "both"]:
582
  continue
583
 
584
  ordered_menu[section].append(item)
585
- added_item_names.add(item['Name']) # Add item to the set of added items
586
- print(f"Added item to {section}: {item['Name']}") # Debugging
587
 
588
- # Remove empty sections
589
  ordered_menu = {section: items for section, items in ordered_menu.items() if items}
590
- print(f"Final ordered menu: {ordered_menu.keys()}") # Debugging
591
 
592
  categories = ["All", "Veg", "Non veg"]
593
 
@@ -598,7 +573,6 @@ def menu():
598
  referral_code = 'N/A'
599
  reward_points = 0
600
 
601
- # Pass the user's first letter (first_letter) to the template
602
  return render_template(
603
  "menu.html",
604
  ordered_menu=ordered_menu,
@@ -606,8 +580,8 @@ def menu():
606
  selected_category=selected_category,
607
  referral_code=referral_code,
608
  reward_points=reward_points,
609
- user_name=user_name, # Pass name to the template
610
- first_letter=first_letter # Pass first letter to the template
611
  )
612
 
613
 
 
498
 
499
  if user_email:
500
  session['user_email'] = user_email
501
+ session['user_name'] = user_name
502
  else:
503
  return redirect(url_for("login"))
504
  else:
505
+ user_name = session.get('user_name')
506
 
 
507
  first_letter = user_name[0].upper() if user_name else "A"
508
 
509
  try:
 
510
  user_query = f"SELECT Referral__c, Reward_Points__c FROM Customer_Login__c WHERE Email__c = '{user_email}'"
511
  user_result = sf.query(user_query)
512
 
 
516
  referral_code = user_result['records'][0].get('Referral__c', 'N/A')
517
  reward_points = user_result['records'][0].get('Reward_Points__c', 0)
518
 
 
519
  menu_query = """
520
  SELECT Name, Price__c, Description__c, Image1__c, Image2__c, Veg_NonVeg__c, Section__c, Total_Ordered__c
521
  FROM Menu_Item__c
 
523
  result = sf.query(menu_query)
524
  food_items = result['records'] if 'records' in result else []
525
 
 
526
  for item in food_items:
527
  if 'Total_Ordered__c' not in item or item['Total_Ordered__c'] is None:
528
+ item['Total_Ordered__c'] = 0
529
 
530
+ all_items = food_items
 
 
 
 
 
 
 
 
 
 
531
 
 
532
  section_order = ["Best Sellers", "Starters", "Biryanis", "Curries", "Breads", "Customized dish", "Apetizer", "Desserts", "Soft Drinks"]
533
  ordered_menu = {section: [] for section in section_order}
534
 
 
535
  best_sellers = sorted(all_items, key=lambda x: x.get("Total_Ordered__c", 0), reverse=True)
536
 
537
  if selected_category == "Veg":
 
539
  elif selected_category == "Non veg":
540
  best_sellers = [item for item in best_sellers if item.get("Veg_NonVeg__c") in ["Non veg", "both"]]
541
 
 
542
  best_sellers = best_sellers[:4]
543
 
 
544
  if best_sellers:
545
  ordered_menu["Best Sellers"] = best_sellers
546
 
 
547
  added_item_names = set()
548
 
 
549
  for item in all_items:
550
+ section = item.get("Section__c", "Others")
551
  if section not in ordered_menu:
552
  ordered_menu[section] = []
553
 
 
554
  if item['Name'] in added_item_names:
555
  continue
556
 
 
557
  if selected_category == "Veg" and item.get("Veg_NonVeg__c") not in ["Veg", "both"]:
558
  continue
559
  if selected_category == "Non veg" and item.get("Veg_NonVeg__c") not in ["Non veg", "both"]:
560
  continue
561
 
562
  ordered_menu[section].append(item)
563
+ added_item_names.add(item['Name'])
 
564
 
 
565
  ordered_menu = {section: items for section, items in ordered_menu.items() if items}
 
566
 
567
  categories = ["All", "Veg", "Non veg"]
568
 
 
573
  referral_code = 'N/A'
574
  reward_points = 0
575
 
 
576
  return render_template(
577
  "menu.html",
578
  ordered_menu=ordered_menu,
 
580
  selected_category=selected_category,
581
  referral_code=referral_code,
582
  reward_points=reward_points,
583
+ user_name=user_name,
584
+ first_letter=first_letter
585
  )
586
 
587