ToggleButtons options and import errors solved

This commit is contained in:
Luis Aleixo 2021-11-24 10:09:52 +01:00
parent e4cc8bf023
commit 5d6f248e67
3 changed files with 14 additions and 28 deletions

View file

@ -13,7 +13,6 @@ from cara import models
from cara import state
from cara import data
from IPython.display import display, Markdown
def collapsible(widgets_to_collapse: typing.List, title: str, start_collapsed=False):
collapsed = widgets.Accordion([widgets.VBox(widgets_to_collapse)])
@ -354,7 +353,7 @@ class ModelWidgets(View):
# TODO: Link the state back to the widget, not just the other way around.
q_air_mech.observe(q_air_mech_change, names=['value'])
return q_air_mech
return widgets.HBox([q_air_mech, widgets.Label('m³/h')])
def _build_ach(self, node):
air_exch = widgets.IntSlider(value=node.air_exch, min=0, max=50, step=5)
@ -365,20 +364,20 @@ class ModelWidgets(View):
# TODO: Link the state back to the widget, not just the other way around.
air_exch.observe(air_exch_change, names=['value'])
return air_exch
return widgets.HBox([air_exch, widgets.Label('h⁻¹')])
def _build_mechanical(self, node):
mechanical_widgets = {
'Mechanical': self._build_q_air_mech(node._states['Mechanical']),
'Air changes per hour': self._build_ach(node._states['Air changes per hour']),
'HVACMechanical': self._build_q_air_mech(node._states['HVACMechanical']),
'AirChange': self._build_ach(node._states['AirChange']),
}
for name, widget in mechanical_widgets.items():
widget.layout.visible = False
mechanival_w = widgets.ToggleButtons(
options=mechanical_widgets.keys(),
button_style='info',
mechanival_w = widgets.RadioButtons(
options=list(zip(['Air supply flow rate (m³/h)', 'Air changes per hour (h⁻¹)'], mechanical_widgets.keys())),
# button_style='info',
)
def toggle_mechanical(value):
@ -467,13 +466,13 @@ class ModelWidgets(View):
) -> widgets.Widget:
ventilation_widgets = {
'Natural': self._build_window(node._states['Natural']).build(),
'Mechanical': self._build_mechanical(node),
'HVACMechanical': self._build_mechanical(node),
}
for name, widget in ventilation_widgets.items():
widget.layout.visible = False
ventilation_w = widgets.Dropdown(
options=['Natural', 'Mechanical', 'No ventilation'],
options=[('Natural', 'Natural'), ('Mechanical', 'HVACMechanical'), ('No ventilation', 'No ventilation')],
button_style='info',
style={'button_width':'100px'}
# tooltips=[],
@ -571,18 +570,18 @@ class CARAStateBuilder(state.StateBuilder):
s: state.DataclassStateNamed = state.DataclassStateNamed(
states={
'Natural': self.build_generic(models.WindowOpening),
'Mechanical': self.build_generic(models.HVACMechanical),
'Air changes per hour': self.build_generic(models.AirChange),
'HVACMechanical': self.build_generic(models.HVACMechanical),
'AirChange': self.build_generic(models.AirChange),
'No ventilation': self.build_generic(models.AirChange),
},
state_builder=self,
)
# Initialise the HVAC state
s._states['Mechanical'].dcs_update_from(
s._states['HVACMechanical'].dcs_update_from(
models.HVACMechanical(models.PeriodicInterval(period=24*60, duration=24*60), 500.)
)
# Initialise the HVAC state
s._states['Air changes per hour'].dcs_update_from(
# Initialise the AirChange state
s._states['AirChange'].dcs_update_from(
models.AirChange(models.PeriodicInterval(period=24*60, duration=24*60), 10.)
)
# Initialise the No ventilation state

View file

@ -1,18 +1,5 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<!-- <div style=\"text-align: center;\" align=\"center\">\n",
"<img src=\"../files/static/images/cara_logo_text_cern.png\" align=\"center\" style=\"text-align: center; height: 12em;\" /></div>\n",
"<p style=\"color: blue; font-weight: bold; font-size: x-large; text-align: center;\" align=\"center\">\n",
"Airborne Transmission of SARS-CoV-2\n",
"</p>\n",
"<p style=\"text-align: center;\">\n",
"Please see the <a href=\"https://cara.web.cern.ch/\">CARA homepage</a> for details on the methodology, assumptions and limitations of CARA.</p> -->"
]
},
{
"cell_type": "markdown",
"metadata": {

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB