mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
61 lines
2.2 KiB
Python
61 lines
2.2 KiB
Python
from BaseUtility import Definitions
|
|
from backend.Property import Property
|
|
|
|
|
|
class FireplaceRecommendations(Definitions):
|
|
"""
|
|
For properties that have open fireplaces, we recommend sealing the fireplaces
|
|
"""
|
|
|
|
def __init__(
|
|
self,
|
|
property_instance: Property,
|
|
materials: list,
|
|
):
|
|
self.property = property_instance
|
|
|
|
self.has_ventilaion = None
|
|
self.recommendation = None
|
|
self.materials = [m for m in materials if m["type"] == "sealing_fireplace"]
|
|
if len(self.materials) != 1:
|
|
raise ValueError("Incorrect number of sealing fireplace materials specified")
|
|
|
|
def recommend(self, phase=0):
|
|
"""
|
|
Based on the number of open fireplcaes found, we recommend sealing each one at a cost of
|
|
around £500
|
|
:return:
|
|
"""
|
|
|
|
number_open_fireplaces = self.property.epc_record.number_open_fireplaces
|
|
|
|
if number_open_fireplaces == 0:
|
|
return
|
|
|
|
material = self.materials[0]
|
|
|
|
already_installed = "sealing_open_fireplace" in self.property.already_installed
|
|
estimated_cost = number_open_fireplaces * material["total_cost"] if not already_installed else 0
|
|
|
|
# We recommend installing two mechanical ventilation systems
|
|
self.recommendation = [
|
|
{
|
|
"phase": phase,
|
|
"parts": [material],
|
|
"type": "sealing_open_fireplace",
|
|
"measure_type": "sealing_open_fireplace",
|
|
"description": "Seal %s open fireplaces" % str(number_open_fireplaces),
|
|
"starting_u_value": None,
|
|
"new_u_value": None,
|
|
"sap_points": None,
|
|
"already_installed": already_installed,
|
|
"total": estimated_cost,
|
|
# Take a very basic estimate of 6 hours, multipled by the number of open fireplaces to seal
|
|
"labour_hours": 6 * number_open_fireplaces,
|
|
"labour_days": 6 * number_open_fireplaces / 8, # Assume 8 hour day
|
|
"description_simulation": {
|
|
"number-open-fireplaces": 0
|
|
},
|
|
"innovation_rate": material["innovation_rate"],
|
|
}
|
|
]
|