Input data with different cards and min height for animation css
This commit is contained in:
parent
bb968e58e6
commit
5523fe28dc
2 changed files with 308 additions and 251 deletions
|
|
@ -51,17 +51,38 @@
|
|||
</button>
|
||||
</div>
|
||||
<div class="collapse show" id="collapseResults">
|
||||
<div class="card-body">
|
||||
<p class="card-text">
|
||||
<div class="align-self-center">
|
||||
{% block report_summary %}
|
||||
Taking into account the uncertainties tied to the model variables, in this scenario, the <b>probability of one exposed occupant getting infected is {{ prob_inf | non_zero_percentage }}</b><a href="#section1">[*]</a> and the <b>expected number of new cases is {{ expected_new_cases | float_format }}</b>.
|
||||
{% endblock report_summary %}
|
||||
</div>
|
||||
<p id="section1">[*] The results are based on the parameters and assumptions published in the CERN Open Report <a href="https://cds.cern.ch/record/2756083"> CERN-OPEN-2021-004</a></p>
|
||||
<img id="scenario_concentration_plot" src="{{ scenario_plot_src }}" />
|
||||
</p>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p class="card-text">
|
||||
<div class="align-self-center">
|
||||
<div class="d-flex">
|
||||
<div class="card bg-light w-25 mb-3 mr-3">
|
||||
<div class="card-header"><b>Probability of infection (%)</b></div>
|
||||
<div class="card-body d-flex" style="min-height: 160px">
|
||||
{% block warning_animation %}
|
||||
<div class="intro-banner-vdo-play-btn bg-secondary m-auto d-flex align-items-center justify-content-center">
|
||||
<b style="color: #000000">{{prob_inf | non_zero_percentage}}</b>
|
||||
<i class="glyphicon glyphicon-play whiteText" aria-hidden="true"></i>
|
||||
<span class="ripple bg-secondary"></span>
|
||||
<span class="ripple bg-secondary"></span>
|
||||
<span class="ripple bg-secondary"></span>
|
||||
</div>
|
||||
{% endblock warning_animation %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% block report_summary %}
|
||||
<div class="flex-row w-75 align-self-center alert alert-dark" role="alert">
|
||||
Taking into account the uncertainties tied to the model variables, in this scenario, the <b>probability of one exposed occupant getting infected is {{ prob_inf | non_zero_percentage }}</b><a href="#section1">[*]</a> and the <b>expected number of new cases is {{ expected_new_cases | float_format }}</b>.
|
||||
</div>
|
||||
{% endblock report_summary %}
|
||||
</div>
|
||||
{% block report_summary_footnote %}
|
||||
{% endblock report_summary_footnote %}
|
||||
</div>
|
||||
<img id="scenario_concentration_plot" src="{{ scenario_plot_src }}" />
|
||||
<p id="section1">[*] The results are based on the parameters and assumptions published in the CERN Open Report <a href="https://cds.cern.ch/record/2756083"> CERN-OPEN-2021-004</a></p>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card bg-light mb-3">
|
||||
|
|
@ -114,13 +135,26 @@
|
|||
{% endblock report_results %}
|
||||
|
||||
{% block report_footer %}
|
||||
<div>
|
||||
<a href="{{ qr_code.link }}" style="float: left;"><img style="width:250pt;" id="qr_code" src="{{ qr_code.image }}"/></a>
|
||||
<span style="float: left; min-height: 250pt; line-height: 250pt; vertical-align: middle; display: inline-block;">
|
||||
<p style="display: inline-block; vertical-align: middle; line-height: normal;">
|
||||
Click the QR code to regenerate the report and get a shareable link.<br>Alternatively, scan to regenerate the report.<br> Mobile-friendly app coming soon!
|
||||
</p>
|
||||
</span>
|
||||
<div class="card bg-light mb-3">
|
||||
<div class="card-header"><strong>QR code </strong>
|
||||
<button class="icon_button p-0 float-right" data-toggle="collapse" href="#collapseQRcode" role="button" aria-expanded="false" aria-controls="collapseQRcode">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-expand" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M3.646 9.146a.5.5 0 0 1 .708 0L8 12.793l3.646-3.647a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 0-.708zm0-2.292a.5.5 0 0 0 .708 0L8 3.207l3.646 3.647a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 0 0 0 .708z"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
<div class="collapse" id="collapseQRcode">
|
||||
<div class="card-body">
|
||||
<div>
|
||||
<a href="{{ qr_code.link }}" style="float: left;"><img style="width:250pt;" id="qr_code" src="{{ qr_code.image }}"/></a>
|
||||
<span style="float: left; min-height: 250pt; line-height: 250pt; vertical-align: middle; display: inline-block;">
|
||||
<p style="display: inline-block; vertical-align: middle; line-height: normal;">
|
||||
Click the QR code to regenerate the report and get a shareable link.<br>Alternatively, scan to regenerate the report.<br> Mobile-friendly app coming soon!
|
||||
</p>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
|
||||
|
|
@ -172,181 +206,207 @@
|
|||
|
||||
<div class="tab-pane fade" id="data" role="tabpanel" aria-labelledby="data-tab" style="padding: 1%">
|
||||
{% block simulation_overview %}
|
||||
<p><strong>Simulation:</strong></p>
|
||||
|
||||
<p>Simulation Name: {{ form.simulation_name }}</p>
|
||||
<p>Room Number: {{ form.room_number }}</p>
|
||||
|
||||
<p class="data_title">Input data:</p>
|
||||
<ul>
|
||||
<li><p class="data_text">Virus variant:
|
||||
{% if form.virus_type == "SARS_CoV_2" %}
|
||||
SARS-CoV-2 (nominal strain)
|
||||
{% elif form.virus_type == "SARS_CoV_2_B117" %}
|
||||
<a href="https://www.ecdc.europa.eu/en/publications-data/covid-19-risk-assessment-spread-new-sars-cov-2-variants-eueea">SARS-CoV-2 (Alpha VOC) </a>
|
||||
{% elif form.virus_type == "SARS_CoV_2_P1" %}
|
||||
<a href="https://github.com/CADDE-CENTRE/Novel-SARS-CoV-2-P1-Lineage-in-Brazil/blob/main/manuscript/FINAL_P1_MANUSCRIPT_25-02-2021_combined.pdf">SARS-CoV-2 (Gamma VOC)</a>
|
||||
{% elif form.virus_type == "SARS_CoV_2_B16172" %}
|
||||
<a href="https://www.bmj.com/content/373/bmj.n1513">SARS-CoV-2 (Delta VOC)</a>
|
||||
{% endif %}
|
||||
</p></li>
|
||||
<li><p class="data_text">Room Volume: {{ model.concentration_model.room.volume }} m³</p></li>
|
||||
<li><p class="data_text">Room Central Heating: {{ "On" if form.room_heating_option else "Off" }}</p></li>
|
||||
</ul>
|
||||
|
||||
<p class="data_title">Ventilation data:</p>
|
||||
<ul>
|
||||
<li><p class="data_text">Mechanical ventilation:
|
||||
{% if form.ventilation_type == "mechanical_ventilation" %}
|
||||
Yes </p></li>
|
||||
<ul>
|
||||
<li><p class="data_subtext">
|
||||
{% if form.mechanical_ventilation_type == "mech_type_air_supply"%}
|
||||
Air supply flow rate: {{ form.air_supply }} m³ / hour
|
||||
{% elif form.mechanical_ventilation_type == "mech_type_air_changes"%}
|
||||
Air changes per hour: {{ form.air_changes }} h⁻¹
|
||||
{% endif %}
|
||||
</p></li>
|
||||
</ul>
|
||||
{% else %}
|
||||
No </li>
|
||||
{% endif %}
|
||||
<li><p class="data_text">Natural ventilation:
|
||||
{% if form.ventilation_type == "natural_ventilation"%}
|
||||
Yes </p></li>
|
||||
<ul>
|
||||
<li><p class="data_subtext">Number of windows: {{ form.windows_number }}</p></li>
|
||||
<li><p class="data_subtext">Height of window: {{ form.window_height }} m</p></li>
|
||||
<li><p class="data_subtext">Window type:
|
||||
{% if form.window_type == "window_hinged" %}
|
||||
Top- or Bottom-Hung</p></li>
|
||||
<li><p class="data_subtext">Width of window: {{ form.window_width }} m</p></li>
|
||||
{% elif form.window_type == "window_sliding" %}
|
||||
Sliding / Side-Hung</p></li>
|
||||
{% endif %}
|
||||
<li><p class="data_subtext">Opening distance: {{ form.opening_distance }} m</p></li>
|
||||
<li><p class="data_subtext">Windows open:
|
||||
{% if form.window_opening_regime == "windows_open_periodically" %}
|
||||
Periodically for {{ form.windows_duration | readable_minutes}}
|
||||
every {{ form.windows_frequency | readable_minutes}}
|
||||
{% elif form.window_opening_regime == "windows_open_permanently" %}
|
||||
Permanently
|
||||
{% endif %}
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="data_subtext data_italic">When using the natural ventilation option, air flows are calculated using averaged hourly temperatures for the Geneva region, based on historical data for the month selected.</p>
|
||||
{% else %}
|
||||
No </p></li>
|
||||
{% endif %}
|
||||
<li><p class="data_text">HEPA Filtration: {{ 'Yes' if form.hepa_option else 'No' }}</li>
|
||||
{% if form.hepa_option %}
|
||||
<ul>
|
||||
<li><p class="data_text">HEPA amount: {{ form.hepa_amount }} m³ / hour</p></li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
</ul>
|
||||
|
||||
<p class="data_title">Event data:</p>
|
||||
<ul>
|
||||
<li><p class="data_text">Number of attendees and infected people: {{ form.total_people }} in attendance, of whom {{ form.infected_people }}
|
||||
{{ "is" if form.infected_people == 1 else "are" }}
|
||||
infected.</p></li>
|
||||
<li><p class="data_text">
|
||||
Activity type:
|
||||
{% if form.activity_type == "office" %}
|
||||
Office – typical scenario with all persons seated, talking occasionally (talking assumed for 1/3rd of the time).
|
||||
{% elif form.activity_type == "meeting" %}
|
||||
Meeting – typical scenario with all persons seated, one person talking at a time.
|
||||
{% elif form.activity_type == "callcentre" %}
|
||||
Call Centre = typical office-like scenario with all persons seated, all talking continuously.
|
||||
{% elif form.activity_type == "controlroom-day" %}
|
||||
Control Room (Day Shift) = specific control room scenario, all persons seated, all talking 50% of the time.
|
||||
{% elif form.activity_type == "controlroom-night" %}
|
||||
Control Room (Night Shift) = specific control room scenario with all persons seated, all talking for 10% of the time.
|
||||
{% elif form.activity_type == "library" %}
|
||||
Library = Library scenario with all persons seated, breathing and not talking.
|
||||
{% elif form.activity_type == "workshop" %}
|
||||
Workshop = assembly workshop environment, all persons doing moderate physical activity, talking 50% of the time.
|
||||
{% elif form.activity_type == "training" %}
|
||||
Training – one person (the trainer) standing, talking, all others seated, talking quietly (whispering). It is assumed the trainer is the infected person, for the worst case scenario.
|
||||
{% elif form.activity_type == "lab" %}
|
||||
Laboratory = Lab or technical environment, all persons doing light physical activity, talking 50% of the time.
|
||||
{% elif form.activity_type == "gym" %}
|
||||
Gym = For comparison only, all persons doing heavy physical exercise, breathing and not talking.
|
||||
{% endif %}
|
||||
</p></li>
|
||||
<li><p class="data_text">Exposed occupant(s) activity time:</p></li>
|
||||
<div class=card>
|
||||
<div class="card-header"><strong>Simulation:</strong></div>
|
||||
<div class="card-body">
|
||||
<p>Simulation Name: {{ form.simulation_name }}</p>
|
||||
<p>Room Number: {{ form.room_number }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="card">
|
||||
<div class="card-header"> <strong>Input data:</strong></div>
|
||||
<div class="card-body">
|
||||
<ul>
|
||||
<li><p class="data_subtext">Start time: {{ form.exposed_start | minutes_to_time }}    End time: {{ form.exposed_finish | minutes_to_time }}</p></li>
|
||||
<li><p class="data_text">Virus variant:
|
||||
{% if form.virus_type == "SARS_CoV_2" %}
|
||||
SARS-CoV-2 (nominal strain)
|
||||
{% elif form.virus_type == "SARS_CoV_2_B117" %}
|
||||
<a href="https://www.ecdc.europa.eu/en/publications-data/covid-19-risk-assessment-spread-new-sars-cov-2-variants-eueea">SARS-CoV-2 (Alpha VOC) </a>
|
||||
{% elif form.virus_type == "SARS_CoV_2_P1" %}
|
||||
<a href="https://github.com/CADDE-CENTRE/Novel-SARS-CoV-2-P1-Lineage-in-Brazil/blob/main/manuscript/FINAL_P1_MANUSCRIPT_25-02-2021_combined.pdf">SARS-CoV-2 (Gamma VOC)</a>
|
||||
{% elif form.virus_type == "SARS_CoV_2_B16172" %}
|
||||
<a href="https://www.bmj.com/content/373/bmj.n1513">SARS-CoV-2 (Delta VOC)</a>
|
||||
{% endif %}
|
||||
</p></li>
|
||||
<li><p class="data_text">Room Volume: {{ model.concentration_model.room.volume }} m³</p></li>
|
||||
<li><p class="data_text">Room Central Heating: {{ "On" if form.room_heating_option else "Off" }}</p></li>
|
||||
</ul>
|
||||
<li><p class="data_text">Infected occupant(s) activity time:</p></li>
|
||||
<ul>
|
||||
<li><p class="data_subtext">Start time: {{ form.infected_start | minutes_to_time }}    End time: {{ form.infected_finish | minutes_to_time }}</p></li>
|
||||
</ul>
|
||||
<li><p class="data_text">Event for the month of {{ form.event_month }}</p></li>
|
||||
</ul>
|
||||
|
||||
<p class="data_title">Break data:</p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="card">
|
||||
<div class="card-header"><strong>Ventilation data:</strong></div>
|
||||
<div class="card-body">
|
||||
<ul>
|
||||
<li><p class="data_text">Mechanical ventilation:
|
||||
{% if form.ventilation_type == "mechanical_ventilation" %}
|
||||
Yes </p></li>
|
||||
<ul>
|
||||
<li><p class="data_subtext">
|
||||
{% if form.mechanical_ventilation_type == "mech_type_air_supply"%}
|
||||
Air supply flow rate: {{ form.air_supply }} m³ / hour
|
||||
{% elif form.mechanical_ventilation_type == "mech_type_air_changes"%}
|
||||
Air changes per hour: {{ form.air_changes }} h⁻¹
|
||||
{% endif %}
|
||||
</p></li>
|
||||
</ul>
|
||||
{% else %}
|
||||
No </li>
|
||||
{% endif %}
|
||||
<li><p class="data_text">Natural ventilation:
|
||||
{% if form.ventilation_type == "natural_ventilation"%}
|
||||
Yes </p></li>
|
||||
<ul>
|
||||
<li><p class="data_subtext">Number of windows: {{ form.windows_number }}</p></li>
|
||||
<li><p class="data_subtext">Height of window: {{ form.window_height }} m</p></li>
|
||||
<li><p class="data_subtext">Window type:
|
||||
{% if form.window_type == "window_hinged" %}
|
||||
Top- or Bottom-Hung</p></li>
|
||||
<li><p class="data_subtext">Width of window: {{ form.window_width }} m</p></li>
|
||||
{% elif form.window_type == "window_sliding" %}
|
||||
Sliding / Side-Hung</p></li>
|
||||
{% endif %}
|
||||
<li><p class="data_subtext">Opening distance: {{ form.opening_distance }} m</p></li>
|
||||
<li><p class="data_subtext">Windows open:
|
||||
{% if form.window_opening_regime == "windows_open_periodically" %}
|
||||
Periodically for {{ form.windows_duration | readable_minutes}}
|
||||
every {{ form.windows_frequency | readable_minutes}}
|
||||
{% elif form.window_opening_regime == "windows_open_permanently" %}
|
||||
Permanently
|
||||
{% endif %}
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="data_subtext data_italic">When using the natural ventilation option, air flows are calculated using averaged hourly temperatures for the Geneva region, based on historical data for the month selected.</p>
|
||||
{% else %}
|
||||
No </p></li>
|
||||
{% endif %}
|
||||
<li><p class="data_text">HEPA Filtration: {{ 'Yes' if form.hepa_option else 'No' }}</li>
|
||||
{% if form.hepa_option %}
|
||||
<ul>
|
||||
<li><p class="data_text">HEPA amount: {{ form.hepa_amount }} m³ / hour</p></li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="card">
|
||||
<div class="card-header"><strong>Event data:</strong></div>
|
||||
<div class="card-body">
|
||||
<ul>
|
||||
<li><p class="data_text">Number of attendees and infected people: {{ form.total_people }} in attendance, of whom {{ form.infected_people }}
|
||||
{{ "is" if form.infected_people == 1 else "are" }}
|
||||
infected.</p></li>
|
||||
<li><p class="data_text">
|
||||
Activity type:
|
||||
{% if form.activity_type == "office" %}
|
||||
Office – typical scenario with all persons seated, talking occasionally (talking assumed for 1/3rd of the time).
|
||||
{% elif form.activity_type == "meeting" %}
|
||||
Meeting – typical scenario with all persons seated, one person talking at a time.
|
||||
{% elif form.activity_type == "callcentre" %}
|
||||
Call Centre = typical office-like scenario with all persons seated, all talking continuously.
|
||||
{% elif form.activity_type == "controlroom-day" %}
|
||||
Control Room (Day Shift) = specific control room scenario, all persons seated, all talking 50% of the time.
|
||||
{% elif form.activity_type == "controlroom-night" %}
|
||||
Control Room (Night Shift) = specific control room scenario with all persons seated, all talking for 10% of the time.
|
||||
{% elif form.activity_type == "library" %}
|
||||
Library = Library scenario with all persons seated, breathing and not talking.
|
||||
{% elif form.activity_type == "workshop" %}
|
||||
Workshop = assembly workshop environment, all persons doing moderate physical activity, talking 50% of the time.
|
||||
{% elif form.activity_type == "training" %}
|
||||
Training – one person (the trainer) standing, talking, all others seated, talking quietly (whispering). It is assumed the trainer is the infected person, for the worst case scenario.
|
||||
{% elif form.activity_type == "lab" %}
|
||||
Laboratory = Lab or technical environment, all persons doing light physical activity, talking 50% of the time.
|
||||
{% elif form.activity_type == "gym" %}
|
||||
Gym = For comparison only, all persons doing heavy physical exercise, breathing and not talking.
|
||||
{% endif %}
|
||||
</p></li>
|
||||
<li><p class="data_text">Exposed occupant(s) activity time:</p></li>
|
||||
<ul>
|
||||
<li><p class="data_subtext">Start time: {{ form.exposed_start | minutes_to_time }}    End time: {{ form.exposed_finish | minutes_to_time }}</p></li>
|
||||
</ul>
|
||||
<li><p class="data_text">Infected occupant(s) activity time:</p></li>
|
||||
<ul>
|
||||
<li><p class="data_subtext">Start time: {{ form.infected_start | minutes_to_time }}    End time: {{ form.infected_finish | minutes_to_time }}</p></li>
|
||||
</ul>
|
||||
<li><p class="data_text">Event for the month of {{ form.event_month }}</p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="card">
|
||||
<div class="card-header"><strong>Break data:</strong></div>
|
||||
<div class="card-body">
|
||||
{% if form.infected_dont_have_breaks_with_exposed %}
|
||||
<p style="padding-left:15px;"> Exposed occupant(s):</p>
|
||||
{% endif %}
|
||||
<ul>
|
||||
<li><p class="data_text">Lunch break:
|
||||
{% if form.exposed_lunch_option%}
|
||||
Yes</li>
|
||||
<ul>
|
||||
<li><p class="data_subtext">Start time: {{ form.exposed_lunch_start | minutes_to_time }}    End time: {{ form.exposed_lunch_finish | minutes_to_time }}</p></li>
|
||||
</ul>
|
||||
{% else%}
|
||||
No
|
||||
{% endif %}
|
||||
</p></li>
|
||||
<li><p class="data_text">Coffee breaks: {{ form.exposed_number_of_coffee_breaks() }}
|
||||
{% if form.exposed_number_of_coffee_breaks() > 0 %}
|
||||
each of {{ form.exposed_coffee_duration }} minutes duration
|
||||
</p></li>
|
||||
<ul>
|
||||
{%- for start_time, end_time in form.exposed_coffee_break_times() %}
|
||||
<li><p class="data_subtext">Coffee break {{ loop.index }}: Start: {{ start_time | minutes_to_time }}    End: {{ end_time | minutes_to_time }}</p></li>
|
||||
{%- endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
{% if form.infected_dont_have_breaks_with_exposed %}
|
||||
<p style="padding-left:15px;"> Exposed occupant(s):</p>
|
||||
<div class="card">
|
||||
<div class="card-header"><strong> Infected occupant(s):</strong></div>
|
||||
<div class="card-body">
|
||||
<ul>
|
||||
<li><p class="data_text">Lunch break:
|
||||
{% if form.infected_lunch_option%}
|
||||
Yes</li>
|
||||
<ul>
|
||||
<li><p class="data_subtext">Start time: {{ form.infected_lunch_start | minutes_to_time }}    End time: {{ form.infected_lunch_finish | minutes_to_time }}</p></li>
|
||||
</ul>
|
||||
{% else%}
|
||||
No
|
||||
{% endif %}
|
||||
</p></li>
|
||||
<li><p class="data_text">Coffee breaks: {{ form.infected_number_of_coffee_breaks() }}
|
||||
{% if form.infected_number_of_coffee_breaks() > 0 %}
|
||||
each of {{ form.infected_coffee_duration }} minutes duration
|
||||
</p></li>
|
||||
<ul>
|
||||
{%- for start_time, end_time in form.infected_coffee_break_times() %}
|
||||
<li><p class="data_subtext">Coffee break {{ loop.index }}: Start: {{ start_time | minutes_to_time }}    End: {{ end_time | minutes_to_time }}</p></li>
|
||||
{%- endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<ul>
|
||||
<li><p class="data_text">Lunch break:
|
||||
{% if form.exposed_lunch_option%}
|
||||
Yes</li>
|
||||
<ul>
|
||||
<li><p class="data_subtext">Start time: {{ form.exposed_lunch_start | minutes_to_time }}    End time: {{ form.exposed_lunch_finish | minutes_to_time }}</p></li>
|
||||
</ul>
|
||||
{% else%}
|
||||
No
|
||||
{% endif %}
|
||||
</p></li>
|
||||
<li><p class="data_text">Coffee breaks: {{ form.exposed_number_of_coffee_breaks() }}
|
||||
{% if form.exposed_number_of_coffee_breaks() > 0 %}
|
||||
each of {{ form.exposed_coffee_duration }} minutes duration
|
||||
</p></li>
|
||||
<ul>
|
||||
{%- for start_time, end_time in form.exposed_coffee_break_times() %}
|
||||
<li><p class="data_subtext">Coffee break {{ loop.index }}: Start: {{ start_time | minutes_to_time }}    End: {{ end_time | minutes_to_time }}</p></li>
|
||||
{%- endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</ul>
|
||||
|
||||
{% if form.infected_dont_have_breaks_with_exposed %}
|
||||
<p style="padding-left:15px;"> Infected occupant(s):</p>
|
||||
<ul>
|
||||
<li><p class="data_text">Lunch break:
|
||||
{% if form.infected_lunch_option%}
|
||||
Yes</li>
|
||||
<ul>
|
||||
<li><p class="data_subtext">Start time: {{ form.infected_lunch_start | minutes_to_time }}    End time: {{ form.infected_lunch_finish | minutes_to_time }}</p></li>
|
||||
</ul>
|
||||
{% else%}
|
||||
No
|
||||
{% endif %}
|
||||
</p></li>
|
||||
<li><p class="data_text">Coffee breaks: {{ form.infected_number_of_coffee_breaks() }}
|
||||
{% if form.infected_number_of_coffee_breaks() > 0 %}
|
||||
each of {{ form.infected_coffee_duration }} minutes duration
|
||||
</p></li>
|
||||
<ul>
|
||||
{%- for start_time, end_time in form.infected_coffee_break_times() %}
|
||||
<li><p class="data_subtext">Coffee break {{ loop.index }}: Start: {{ start_time | minutes_to_time }}    End: {{ end_time | minutes_to_time }}</p></li>
|
||||
{%- endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
<p class="data_title">Mask wearing:</p>
|
||||
<ul>
|
||||
<li><p class="data_text">Masks worn at workstations? {{ 'Yes' if form.mask_wearing_option == "mask_on" else 'No' }} </p></li>
|
||||
{% if form.mask_wearing_option == "mask_on" %}
|
||||
<li><p class="data_text">Mask type: {{ form.mask_type }}</p></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<div class="card">
|
||||
<div class="card-header"><strong>Mask wearing:</strong></div>
|
||||
<div class="card-body">
|
||||
<ul>
|
||||
<li><p class="data_text">Masks worn at workstations? {{ 'Yes' if form.mask_wearing_option == "mask_on" else 'No' }} </p></li>
|
||||
{% if form.mask_wearing_option == "mask_on" %}
|
||||
<li><p class="data_text">Mask type: {{ form.mask_type }}</p></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock simulation_overview %}
|
||||
</div>
|
||||
{% block report_preamble %}
|
||||
|
|
|
|||
|
|
@ -6,70 +6,67 @@
|
|||
</li>
|
||||
{% endblock report_preamble_navtab %}
|
||||
|
||||
{% block report_summary %}
|
||||
<div class="d-flex">
|
||||
<div class="card bg-light w-25 mb-3 mr-3">
|
||||
<div class="card-header"><b>Probability of infection (%)</b></div>
|
||||
{% if (prob_inf < 5)%} {% set warning_color = 'bg-success' %}
|
||||
{% elif (prob_inf >= 5 and prob_inf <= 15) %} {% set warning_color = 'bg-warning' %}
|
||||
{% else %} {% set warning_color= 'bg-danger' %}
|
||||
{% endif %}
|
||||
<div class="intro-banner-vdo-play-btn {{warning_color}} m-auto d-flex align-items-center justify-content-center">
|
||||
<b style="color: #000000">{{prob_inf | non_zero_percentage}}</b>
|
||||
<i class="glyphicon glyphicon-play whiteText" aria-hidden="true"></i>
|
||||
<span class="ripple {{warning_color}}"></span>
|
||||
<span class="ripple {{warning_color}}"></span>
|
||||
<span class="ripple {{warning_color}}"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flew-row w-75">
|
||||
|
||||
<span
|
||||
{% if ((prob_inf > 15) or (expected_new_cases >= 1)) %}
|
||||
><div class="alert alert-danger" role="alert">
|
||||
<strong>Not Acceptable:</strong>
|
||||
{{ super() }}
|
||||
</div>
|
||||
{% elif 5 <= prob_inf <= 15 %}
|
||||
><div class="alert alert-warning" role="alert">
|
||||
<strong>Attention:</strong>
|
||||
{{ super() }}
|
||||
<div>
|
||||
{% elif prob_inf < 5 %}
|
||||
><div class="alert alert-success" role="alert">
|
||||
><strong>Acceptable:</strong>
|
||||
{{ super() }}
|
||||
</div>
|
||||
{% endif %}
|
||||
</span>
|
||||
|
||||
{% if (prob_inf > 5) %}
|
||||
{% if scale_warning.level == "green-1" %}
|
||||
<div class="alert alert-dark" role="alert" style="height:fit-content">
|
||||
Note: the current CERN COVID Scale is <b>Green - 1</b>, which means the incidence rate in the local community is <b>{{scale_warning.incidence_rate}}</b>. Align your risk assessment with the guidance and instructions provided by the HSE Unit.
|
||||
</div>
|
||||
{% elif scale_warning.level == "yellow-2" %}
|
||||
<div class="alert alert-dark" role="alert" style="height:fit-content">
|
||||
Note: the current CERN COVID Scale is <b>Yellow - 2</b>, which means the incidence rate in the local community is <b>{{scale_warning.incidence_rate}}</b>. There is a reduced chance that asymptomatic or pre-symptomatic infected individuals circulate within the CERN site which, during this stage, corresponds to an average daily on-site access {{scale_warning.onsite_access}}. See with your supervisor if this scenario is acceptable.
|
||||
</div>
|
||||
{% elif scale_warning.level == "orange-3" %}
|
||||
<div class="alert alert-dark" role="alert" style="height:fit-content">
|
||||
Warning: the current CERN COVID Scale is <b>Orange - 3</b>, which means the incidence rate in the local community is <b>{{scale_warning.incidence_rate}}</b>. There is a slight chance that asymptomatic or pre-symptomatic infected individuals circulate within the CERN site which, during this stage, corresponds to an average daily on-site access {{scale_warning.onsite_access}}. See with your supervisor if any additional measures can be applied (ALARA).
|
||||
</div>
|
||||
{% elif scale_warning.level == "red-4" %}
|
||||
<div class="alert alert-dark" role="alert" style="height:fit-content">
|
||||
Warning: the current CERN COVID Scale is <b>Red - 4</b>, which means the incidence rate in the local community is <b>{{scale_warning.incidence_rate}}</b>. There is a strong chance that asymptomatic or pre-symptomatic infected individuals circulate within the CERN site which, during this stage, corresponds to an average daily on-site access {{scale_warning.onsite_access}}. Please reduce the value below the threshold of <b>{{scale_warning.threshold}}</b>.
|
||||
</div>
|
||||
{% else %}
|
||||
<p><b>Note:</b> The CERN COVID Level is not specified.</p>
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
{% block warning_animation %}
|
||||
{% if (prob_inf < 5)%} {% set warning_color = 'bg-success' %}
|
||||
{% elif (5 <= prob_inf <= 15) %} {% set warning_color = 'bg-warning' %}
|
||||
{% else %} {% set warning_color= 'bg-danger' %}
|
||||
{% endif %}
|
||||
|
||||
<div class="intro-banner-vdo-play-btn {{warning_color}} m-auto d-flex align-items-center justify-content-center">
|
||||
<b style="color: #000000">{{prob_inf | non_zero_percentage}}</b>
|
||||
<i class="glyphicon glyphicon-play whiteText" aria-hidden="true"></i>
|
||||
<span class="ripple {{warning_color}}"></span>
|
||||
<span class="ripple {{warning_color}}"></span>
|
||||
<span class="ripple {{warning_color}}"></span>
|
||||
</div>
|
||||
{% endblock warning_animation %}
|
||||
|
||||
{% block report_summary %}
|
||||
<div class="flex-row w-75">
|
||||
{% if ((prob_inf > 15) or (expected_new_cases >= 1)) %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<strong>Not Acceptable:</strong>
|
||||
Taking into account the uncertainties tied to the model variables, in this scenario, the <b>probability of one exposed occupant getting infected is {{ prob_inf | non_zero_percentage }}</b><a href="#section1">[*]</a> and the <b>expected number of new cases is {{ expected_new_cases | float_format }}</b>.
|
||||
|
||||
</div>
|
||||
{% elif 5 <= prob_inf <= 15 %}
|
||||
<div class="alert alert-warning" role="alert">
|
||||
<strong>Attention:</strong>
|
||||
Taking into account the uncertainties tied to the model variables, in this scenario, the <b>probability of one exposed occupant getting infected is {{ prob_inf | non_zero_percentage }}</b><a href="#section1">[*]</a> and the <b>expected number of new cases is {{ expected_new_cases | float_format }}</b>.
|
||||
<div>
|
||||
{% elif prob_inf < 5 %}
|
||||
<div class="alert alert-success" role="alert">
|
||||
<strong>Acceptable:</strong>
|
||||
Taking into account the uncertainties tied to the model variables, in this scenario, the <b>probability of one exposed occupant getting infected is {{ prob_inf | non_zero_percentage }}</b><a href="#section1">[*]</a> and the <b>expected number of new cases is {{ expected_new_cases | float_format }}</b>.
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if (prob_inf > 5) %}
|
||||
{% if scale_warning.level == "green-1" %}
|
||||
<div class="alert alert-dark" role="alert" style="height:fit-content">
|
||||
Note: the current CERN COVID Scale is <b>Green - 1</b>, which means the incidence rate in the local community is <b>{{scale_warning.incidence_rate}}</b>. Align your risk assessment with the guidance and instructions provided by the HSE Unit.
|
||||
</div>
|
||||
{% elif scale_warning.level == "yellow-2" %}
|
||||
<div class="alert alert-dark" role="alert" style="height:fit-content">
|
||||
Note: the current CERN COVID Scale is <b>Yellow - 2</b>, which means the incidence rate in the local community is <b>{{scale_warning.incidence_rate}}</b>. There is a reduced chance that asymptomatic or pre-symptomatic infected individuals circulate within the CERN site which, during this stage, corresponds to an average daily on-site access {{scale_warning.onsite_access}}. See with your supervisor if this scenario is acceptable.
|
||||
</div>
|
||||
{% elif scale_warning.level == "orange-3" %}
|
||||
<div class="alert alert-dark" role="alert" style="height:fit-content">
|
||||
Warning: the current CERN COVID Scale is <b>Orange - 3</b>, which means the incidence rate in the local community is <b>{{scale_warning.incidence_rate}}</b>. There is a slight chance that asymptomatic or pre-symptomatic infected individuals circulate within the CERN site which, during this stage, corresponds to an average daily on-site access {{scale_warning.onsite_access}}. See with your supervisor if any additional measures can be applied (ALARA).
|
||||
</div>
|
||||
{% elif scale_warning.level == "red-4" %}
|
||||
<div class="alert alert-dark" role="alert" style="height:fit-content">
|
||||
Warning: the current CERN COVID Scale is <b>Red - 4</b>, which means the incidence rate in the local community is <b>{{scale_warning.incidence_rate}}</b>. There is a strong chance that asymptomatic or pre-symptomatic infected individuals circulate within the CERN site which, during this stage, corresponds to an average daily on-site access {{scale_warning.onsite_access}}. Please reduce the value below the threshold of <b>{{scale_warning.threshold}}</b>.
|
||||
</div>
|
||||
{% else %}
|
||||
<p><b>Note:</b> The CERN COVID Level is not specified.</p>
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock report_summary %}
|
||||
|
||||
{% block report_summary_footnote %}
|
||||
{% if ((prob_inf > 15) or (expected_new_cases >= 1)) %}
|
||||
This exceeds the authorised risk threshold or number of expected new cases.
|
||||
The risk level must be reduced before this activity can be undertaken.
|
||||
|
|
@ -79,7 +76,7 @@
|
|||
{% elif (prob_inf < 5) %}
|
||||
This level of risk is within acceptable parameters, no further actions are required.
|
||||
{% endif %}
|
||||
{% endblock report_summary %}
|
||||
{% endblock report_summary_footnote %}
|
||||
|
||||
{% block report_scenarios_summary_table %}
|
||||
<table class="table w-auto" style="height: fit-content;">
|
||||
|
|
|
|||
Loading…
Reference in a new issue