def update_from_dict(solar_id, data): # Prepare Data solar = Solar.query.get(solar_id) if solar is None: raise exceptions.SolarNotFoundError("Solar id={0} not found".format(solar_id)) solar.update_from_dict(data, ['id', 'coordinates', 'area', 'panels', 'pending_panels']) # Update Coordinates and Area solar.coordinates = forms_helper.parse_coordinates(data['coordinates']) if 'area' in data: solar.area = forms_helper.parse_area(data['area']) # log.debug("Solar.Panels : {0}".format(solar.panels)) # Update or Add Pending Solar Panels if any # if 'pending_panels' in data: # for panel_data in data['pending_panels']: # if panel_data['name'] and panel_data['area']: # panel = SolarPanels(name=panel_data['name'], # area=forms_helper.parse_area(panel_data['area'])) # solar.panels.append(panel) # Persist db.session.commit() return solar
def create_from_dict(data): # Prepare Data section = Section.from_dict(data) # Area section.area = forms_helper.parse_area(data['area']) # Persist db.session.add(section) db.session.commit() return section
def create_from_dict(section_id, data): # Prepare Data block = Block.from_dict(data) # Area block.section_id = section_id block.area = forms_helper.parse_area(data['area']) # Persist db.session.add(block) db.session.commit() return block
def add_panel(solar_id, data): # Prepare Data solar = Solar.query.get(solar_id) if solar is None: raise exceptions.SolarNotFoundError("Solar id={0} not found".format(solar_id)) if data['name'] and data['area']: panel = SolarPanels(name=data['name'], area=forms_helper.parse_area(data['area'])) solar.panels.append(panel) db.session.commit() return panel return None
def create_building(data): # Prepare Data bldg = Building.from_dict(data) bldg.latlng = forms_helper.parse_coordinates(data['latlng']) if 'path' in data: bldg.poly = forms_helper.parse_area(data['path']) # log.debug("bldg has path: {0}".format(bldg.poly)) # Persist db.session.add(bldg) db.session.commit() return bldg
def create_from_dict(data): # Prepare Data solar = Solar.from_dict(data) solar.status = IN_PROCESS solar.coordinates = forms_helper.parse_coordinates(data['coordinates']) if 'area' in data: solar.area = forms_helper.parse_area(data['area']) log.debug("solar has area: {0}".format(solar.area)) # Persist db.session.add(solar) db.session.commit() return solar
def create_from_dict(data): # Prepare Data p = Projects.from_dict(data) p.status = ProjectConstants.IN_PROCESS p.coordinates = forms_helper.parse_coordinates(data['coordinates']) if 'area' in data: p.area = forms_helper.parse_area(data['area']) log.debug("project has area: {0}".format(p.area)) # Persist db.session.add(p) db.session.commit() return p
def update_from_dict(section_id, data): # Prepare Data section = Section.query.get(section_id) if section is None: raise SectionNotFoundError("Section id={0} not found".format(section_id)) section.update_from_dict(data, ['id', 'area', 'blocks', 'date_modified', 'date_created']) # Update Area section.area = forms_helper.parse_area(data['area']) # Persist db.session.commit() return section
def update_from_dict(block_id, data): # Prepare Data block = Block.query.get(block_id) if block is None: raise BlockNotFoundError("Block id={0} not found".format(block_id)) block.update_from_dict( data, ['id', 'area', 'lots', 'date_modified', 'date_created']) # Update Area block.area = forms_helper.parse_area(data['area']) # Persist db.session.commit() return block
def create_from_dict(block_id, data): # Prepare Data lot = Lot.from_dict(data) # Area lot.block_id = block_id lot.area = forms_helper.parse_area(data['area']) lot_price = setting_service.get_current_settings() if lot_price is not None: lot.price_per_sq_mtr = lot_price.price_per_sq_mtr else: raise LotPriceNullError('Lot Price per Sq/Meter not set.') # Persist db.session.add(lot) db.session.commit() return lot
def update_from_dict(section_id, data): # Prepare Data section = Section.query.get(section_id) if section is None: raise SectionNotFoundError( "Section id={0} not found".format(section_id)) section.update_from_dict( data, ['id', 'area', 'blocks', 'date_modified', 'date_created']) # Update Area section.area = forms_helper.parse_area(data['area']) # Persist db.session.commit() return section
def update_panel_area(solar_id, panel_id, data): # Prepare Data solar = Solar.query.get(solar_id) if solar is None: raise exceptions.SolarNotFoundError("Solar id={0} not found".format(solar_id)) solar_panel = SolarPanels.query.get(panel_id) if solar_panel is None: raise exceptions.SolarPanelNotFoundError("Solar Panel id={0} not found".format(panel_id)) solar_panel.update_from_dict(data, ['id', 'solar_id', 'area', 'date_created', 'date_modified']) if data['area']: solar_panel.area = forms_helper.parse_area(data['area']) db.session.commit() return solar_panel
def propose_site_design(data, author_user_id): site_design = SiteDesigns(author_user_id=author_user_id) db.session.add(site_design) db.session.commit() for item_data in data['items']: component_id = item_data['component_unit_id'] for coords_data in item_data['coordinates']: sd_cu = SiteDesignComponentUnits(site_design_id=site_design.id, component_unit_id=component_id) if type(coords_data) is list: sd_cu.path = forms_helper.parse_area(coords_data) elif type(coords_data) is dict: sd_cu.coordinates = forms_helper.parse_coordinates(coords_data) db.session.add(sd_cu) db.session.commit() return site_design
def update_from_dict(lot_id, data): # Prepare Data lot = Lot.query.get(lot_id) if lot is None: raise LotNotFoundError("Lot id={0} not found".format(lot_id)) if 'client_id' in data and data['client_id'] == 0: data['client_id'] = None lot.update_from_dict(data, ['id', 'area', 'date_modified', 'date_created', 'deceased', 'client', 'block']) # Update Area if 'area' in data: lot.area = forms_helper.parse_area(data['area']) # Persist db.session.commit() return lot
def update_project_from_dict(project_id, data): # Prepare Data proj = Projects.query.get(project_id) if proj is None: raise ProjectNotFoundError("PROJECT id={0} not found".format(project_id)) proj.update_from_dict(data, ['id', 'project_type', 'coordinates', 'boundary', 'monthly_kpis', 'community', 'condominium', 'costs', 'date_created', 'date_modified']) if 'project_type' in data: proj.project_type_id = data['project_type']['id'] # Update Coordinates and Area proj.coordinates = forms_helper.parse_coordinates(data['coordinates']) if 'boundary' in data: proj.boundary = forms_helper.parse_area(data['boundary']) # Persist db.session.commit() return proj
def create_project_from_dict(data): # Prepare Data proj = Projects.from_dict(data) proj.coordinates = forms_helper.parse_coordinates(data['coordinates']) if 'area' in data: proj.boundary = forms_helper.parse_area(data['area']) # Persist db.session.add(proj) db.session.commit() # automatically generate project cost here, randomly numbers - demo purpose project_costs = project_costs_helper.generate_project_cost(proj.id) db.session.add_all(project_costs) # automatically generate project kpi here, also random numbers - demo purpose monthly_kpis = kpi_helper.generate_project_monthly_kpis(proj.id) db.session.add_all(monthly_kpis) db.session.commit() return proj
def update_from_dict(lot_id, data): # Prepare Data lot = Lot.query.get(lot_id) if lot is None: raise LotNotFoundError("Lot id={0} not found".format(lot_id)) if 'client_id' in data and data['client_id'] == 0: data['client_id'] = None lot.update_from_dict(data, [ 'id', 'area', 'date_modified', 'date_created', 'deceased', 'client', 'block' ]) # Update Area if 'area' in data: lot.area = forms_helper.parse_area(data['area']) # Persist db.session.commit() return lot