def items(self, master): r, insulations = self.r, [] options = RigidRoofInsulation.oftype(self.building.roof_insulation) while r > 0: next = self.next(options, r) if next.r is None: break insulations.append(next) r -= next.r sheets = filter(lambda i: i.r, insulations) return (SheetCost(sheet, self) for sheet in sheets)
def makewith(self, data, location, building, standard, simulation): sheets = RigidRoofInsulation.sheets(location, building, standard) size = simulation.roof_area.into('ft**2') self.takefrom(data.group, sheets, size, building.roof_insulation) self.save()