DrDomedag commited on
Commit
5b4e2c0
·
1 Parent(s): 3207e42

Added guest overview page. Added memory to allergy input page radio buttons.

Browse files
pages/guest_overview.py ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from utils.allergens import *
3
+ from utils.variables import *
4
+
5
+ st.title("Guest list:")
6
+ for user_id in user_list:
7
+ user_name = user_name_db[user_id]
8
+ st.subheader(user_name)
9
+ for allergen in user_list[user_id].keys():
10
+ sensitivity_level = user_list[user_id][allergen][0]
11
+ #st.write(sensitivity_level)
12
+ sensitivity_level_string = sensitivities[sensitivity_level]
13
+ #st.write(sensitivity_level_string)
14
+ st.write(f"{sensitivity_level_string} to {allergen}{', but can eat it if cooked' if user_list[user_id][allergen][1] == True else ''}")
utils/allergens.py CHANGED
@@ -1,6 +1,15 @@
1
  from collections import defaultdict
2
 
3
 
 
 
 
 
 
 
 
 
 
4
  allergens = [
5
  "Dairy",
6
  "Egg",
 
1
  from collections import defaultdict
2
 
3
 
4
+ # Options for the sensitivity level with descriptions
5
+ sensitivity_options = {
6
+ "Extremely sensitive": "Cannot eat food prepared in the same kitchen as this ingredient",
7
+ "Sensitive": "Cannot eat food containing this ingredient",
8
+ "Slightly sensitive": "Can eat food that has touched this ingredient"
9
+ }
10
+
11
+ sensitivities = ["None", "Slightly sensitive", "Sensitive", "Extremely sensitive"]
12
+
13
  allergens = [
14
  "Dairy",
15
  "Egg",
utils/allergy_input.py CHANGED
@@ -20,14 +20,7 @@ st.markdown(
20
  st.title("Allergy input")
21
  st.write("Welcome to the allergy input page!")
22
 
23
- # Options for the sensitivity level with descriptions
24
- sensitivity_options = {
25
- "Extremely sensitive": "Cannot eat food prepared in the same kitchen as this ingredient",
26
- "Sensitive": "Cannot eat food containing this ingredient",
27
- "Slightly sensitive": "Can eat food that has touched this ingredient"
28
- }
29
 
30
- sensitivities = ["None", "Slightly sensitive", "Sensitive", "Extremely sensitive"]
31
 
32
 
33
 
@@ -75,18 +68,6 @@ def create_allergy_input(user_id):
75
 
76
  # Display the filtered list
77
  st.write("Results:") #Bara visa denna om query != ""?
78
- #import streamlit as st
79
-
80
- # Sample data
81
- # filtered_items = ["apple", "banana", "orange", "pear"]
82
- # user_allergen_list = ["apple", "pear"] # Example of items in the user's allergen list
83
-
84
- # Sensitivity options
85
- sensitivity_options = {
86
- "Extremely sensitive": "Cannot eat food prepared in the same kitchen as this ingredient",
87
- "Sensitive": "Cannot eat food containing this ingredient",
88
- "Slightly sensitive": "Can eat food that has touched this ingredient"
89
- }
90
 
91
 
92
  # Initialize session state to store titles and selections for each expander
@@ -140,15 +121,15 @@ def create_allergy_input(user_id):
140
  # if item in user_allergen_list:
141
  # key=f"{item}_radio"
142
  title = st.session_state[f"{user_id}_expander_titles"][item]
 
143
  with st.expander(title):
144
  # Radio buttons for sensitivity level with a "None" option
145
  sensitivity = st.radio(
146
  f"Sensitivity level for {item.capitalize()}",
147
  options=["None"] + [f"{level} - {description}" for level, description in sensitivity_options.items()],
148
  key=f"{user_id}_{item}_radio",
149
- on_change=lambda item=item: update_title(item) # Call update_title with the item argument
150
-
151
- )
152
  # Store the current selection in session_state for later access
153
  st.session_state[f"{user_id}_expander_selections"][item] = sensitivity
154
 
 
20
  st.title("Allergy input")
21
  st.write("Welcome to the allergy input page!")
22
 
 
 
 
 
 
 
23
 
 
24
 
25
 
26
 
 
68
 
69
  # Display the filtered list
70
  st.write("Results:") #Bara visa denna om query != ""?
 
 
 
 
 
 
 
 
 
 
 
 
71
 
72
 
73
  # Initialize session state to store titles and selections for each expander
 
121
  # if item in user_allergen_list:
122
  # key=f"{item}_radio"
123
  title = st.session_state[f"{user_id}_expander_titles"][item]
124
+ selection = st.session_state.get(f"{user_id}_{item}_radio", "None")
125
  with st.expander(title):
126
  # Radio buttons for sensitivity level with a "None" option
127
  sensitivity = st.radio(
128
  f"Sensitivity level for {item.capitalize()}",
129
  options=["None"] + [f"{level} - {description}" for level, description in sensitivity_options.items()],
130
  key=f"{user_id}_{item}_radio",
131
+ on_change=lambda item=item: update_title(item), # Call update_title with the item argument
132
+ ).index(selection)
 
133
  # Store the current selection in session_state for later access
134
  st.session_state[f"{user_id}_expander_selections"][item] = sensitivity
135
 
utils/variables.py CHANGED
@@ -16,3 +16,10 @@ user_list[0] = user_0_list
16
  user_list[1] = user_1_list
17
  user_list[2] = user_2_list
18
  user_list[3] = user_3_list
 
 
 
 
 
 
 
 
16
  user_list[1] = user_1_list
17
  user_list[2] = user_2_list
18
  user_list[3] = user_3_list
19
+
20
+ # Hardcoding some names for tech demo purposes. This (like much else) be part of some kind of SQL database in reality.
21
+ user_name_db = {}
22
+ user_name_db[0] = "Johan Hind"
23
+ user_name_db[1] = "Margareta Smöör"
24
+ user_name_db[2] = "Tea Grönblad"
25
+ user_name_db[3] = "Tim-Jan Lagercrantz"