mabuseif commited on
Commit
9e0ee9d
·
verified ·
1 Parent(s): cb56db3

Upload 31 files

Browse files
app/component_selection.py CHANGED
@@ -38,81 +38,93 @@ class ComponentSelection:
38
  Args:
39
  session_state: Streamlit session state
40
  """
 
 
 
 
 
 
 
 
 
 
41
  # Initialize pending actions if not exists
42
  if "pending_actions" not in session_state:
43
- session_state["pending_actions"] = {
44
- "add_wall": None,
45
- "delete_wall": None,
46
- "add_roof": None,
47
- "delete_roof": None,
48
- "add_floor": None,
49
- "delete_floor": None,
50
- "add_window": None,
51
- "delete_window": None,
52
- "add_door": None,
53
- "delete_door": None
54
- }
 
 
55
 
56
  # Process add wall action
57
- if session_state["pending_actions"]["add_wall"] is not None:
58
  new_wall = session_state["pending_actions"]["add_wall"]
59
  session_state["components"]["walls"].append(new_wall)
60
  session_state["pending_actions"]["add_wall"] = None
61
 
62
  # Process delete wall action
63
- if session_state["pending_actions"]["delete_wall"] is not None:
64
  wall_index = session_state["pending_actions"]["delete_wall"]
65
  if 0 <= wall_index < len(session_state["components"]["walls"]):
66
  session_state["components"]["walls"].pop(wall_index)
67
  session_state["pending_actions"]["delete_wall"] = None
68
 
69
  # Process add roof action
70
- if session_state["pending_actions"]["add_roof"] is not None:
71
  new_roof = session_state["pending_actions"]["add_roof"]
72
  session_state["components"]["roofs"].append(new_roof)
73
  session_state["pending_actions"]["add_roof"] = None
74
 
75
  # Process delete roof action
76
- if session_state["pending_actions"]["delete_roof"] is not None:
77
  roof_index = session_state["pending_actions"]["delete_roof"]
78
  if 0 <= roof_index < len(session_state["components"]["roofs"]):
79
  session_state["components"]["roofs"].pop(roof_index)
80
  session_state["pending_actions"]["delete_roof"] = None
81
 
82
  # Process add floor action
83
- if session_state["pending_actions"]["add_floor"] is not None:
84
  new_floor = session_state["pending_actions"]["add_floor"]
85
  session_state["components"]["floors"].append(new_floor)
86
  session_state["pending_actions"]["add_floor"] = None
87
 
88
  # Process delete floor action
89
- if session_state["pending_actions"]["delete_floor"] is not None:
90
  floor_index = session_state["pending_actions"]["delete_floor"]
91
  if 0 <= floor_index < len(session_state["components"]["floors"]):
92
  session_state["components"]["floors"].pop(floor_index)
93
  session_state["pending_actions"]["delete_floor"] = None
94
 
95
  # Process add window action
96
- if session_state["pending_actions"]["add_window"] is not None:
97
  new_window = session_state["pending_actions"]["add_window"]
98
  session_state["components"]["windows"].append(new_window)
99
  session_state["pending_actions"]["add_window"] = None
100
 
101
  # Process delete window action
102
- if session_state["pending_actions"]["delete_window"] is not None:
103
  window_index = session_state["pending_actions"]["delete_window"]
104
  if 0 <= window_index < len(session_state["components"]["windows"]):
105
  session_state["components"]["windows"].pop(window_index)
106
  session_state["pending_actions"]["delete_window"] = None
107
 
108
  # Process add door action
109
- if session_state["pending_actions"]["add_door"] is not None:
110
  new_door = session_state["pending_actions"]["add_door"]
111
  session_state["components"]["doors"].append(new_door)
112
  session_state["pending_actions"]["add_door"] = None
113
 
114
  # Process delete door action
115
- if session_state["pending_actions"]["delete_door"] is not None:
116
  door_index = session_state["pending_actions"]["delete_door"]
117
  if 0 <= door_index < len(session_state["components"]["doors"]):
118
  session_state["components"]["doors"].pop(door_index)
 
38
  Args:
39
  session_state: Streamlit session state
40
  """
41
+ # Ensure components structure exists
42
+ if "components" not in session_state:
43
+ session_state["components"] = {
44
+ 'walls': [],
45
+ 'roofs': [],
46
+ 'floors': [],
47
+ 'windows': [],
48
+ 'doors': []
49
+ }
50
+
51
  # Initialize pending actions if not exists
52
  if "pending_actions" not in session_state:
53
+ session_state["pending_actions"] = {}
54
+
55
+ # Ensure all required pending action keys exist
56
+ required_keys = [
57
+ "add_wall", "delete_wall",
58
+ "add_roof", "delete_roof",
59
+ "add_floor", "delete_floor",
60
+ "add_window", "delete_window",
61
+ "add_door", "delete_door"
62
+ ]
63
+
64
+ for key in required_keys:
65
+ if key not in session_state["pending_actions"]:
66
+ session_state["pending_actions"][key] = None
67
 
68
  # Process add wall action
69
+ if session_state["pending_actions"].get("add_wall") is not None:
70
  new_wall = session_state["pending_actions"]["add_wall"]
71
  session_state["components"]["walls"].append(new_wall)
72
  session_state["pending_actions"]["add_wall"] = None
73
 
74
  # Process delete wall action
75
+ if session_state["pending_actions"].get("delete_wall") is not None:
76
  wall_index = session_state["pending_actions"]["delete_wall"]
77
  if 0 <= wall_index < len(session_state["components"]["walls"]):
78
  session_state["components"]["walls"].pop(wall_index)
79
  session_state["pending_actions"]["delete_wall"] = None
80
 
81
  # Process add roof action
82
+ if session_state["pending_actions"].get("add_roof") is not None:
83
  new_roof = session_state["pending_actions"]["add_roof"]
84
  session_state["components"]["roofs"].append(new_roof)
85
  session_state["pending_actions"]["add_roof"] = None
86
 
87
  # Process delete roof action
88
+ if session_state["pending_actions"].get("delete_roof") is not None:
89
  roof_index = session_state["pending_actions"]["delete_roof"]
90
  if 0 <= roof_index < len(session_state["components"]["roofs"]):
91
  session_state["components"]["roofs"].pop(roof_index)
92
  session_state["pending_actions"]["delete_roof"] = None
93
 
94
  # Process add floor action
95
+ if session_state["pending_actions"].get("add_floor") is not None:
96
  new_floor = session_state["pending_actions"]["add_floor"]
97
  session_state["components"]["floors"].append(new_floor)
98
  session_state["pending_actions"]["add_floor"] = None
99
 
100
  # Process delete floor action
101
+ if session_state["pending_actions"].get("delete_floor") is not None:
102
  floor_index = session_state["pending_actions"]["delete_floor"]
103
  if 0 <= floor_index < len(session_state["components"]["floors"]):
104
  session_state["components"]["floors"].pop(floor_index)
105
  session_state["pending_actions"]["delete_floor"] = None
106
 
107
  # Process add window action
108
+ if session_state["pending_actions"].get("add_window") is not None:
109
  new_window = session_state["pending_actions"]["add_window"]
110
  session_state["components"]["windows"].append(new_window)
111
  session_state["pending_actions"]["add_window"] = None
112
 
113
  # Process delete window action
114
+ if session_state["pending_actions"].get("delete_window") is not None:
115
  window_index = session_state["pending_actions"]["delete_window"]
116
  if 0 <= window_index < len(session_state["components"]["windows"]):
117
  session_state["components"]["windows"].pop(window_index)
118
  session_state["pending_actions"]["delete_window"] = None
119
 
120
  # Process add door action
121
+ if session_state["pending_actions"].get("add_door") is not None:
122
  new_door = session_state["pending_actions"]["add_door"]
123
  session_state["components"]["doors"].append(new_door)
124
  session_state["pending_actions"]["add_door"] = None
125
 
126
  # Process delete door action
127
+ if session_state["pending_actions"].get("delete_door") is not None:
128
  door_index = session_state["pending_actions"]["delete_door"]
129
  if 0 <= door_index < len(session_state["components"]["doors"]):
130
  session_state["components"]["doors"].pop(door_index)
app/results_display.py CHANGED
@@ -52,8 +52,16 @@ class ResultsDisplay:
52
  Args:
53
  session_state: Streamlit session state containing pending actions
54
  """
 
 
 
 
 
 
 
 
55
  if "pending_actions" not in session_state:
56
- return
57
 
58
  # Process save scenario action
59
  if "save_scenario" in session_state["pending_actions"]:
 
52
  Args:
53
  session_state: Streamlit session state containing pending actions
54
  """
55
+ # Ensure calculation_results structure exists
56
+ if "calculation_results" not in session_state:
57
+ session_state["calculation_results"] = {
58
+ 'cooling': {},
59
+ 'heating': {}
60
+ }
61
+
62
+ # Initialize pending actions if not exists
63
  if "pending_actions" not in session_state:
64
+ session_state["pending_actions"] = {}
65
 
66
  # Process save scenario action
67
  if "save_scenario" in session_state["pending_actions"]: