Пример #1
0
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
Пример #2
0
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
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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
Пример #7
0
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
Пример #8
0
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
Пример #9
0
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
Пример #10
0
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
Пример #11
0
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
Пример #12
0
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
Пример #13
0
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
Пример #14
0
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 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
Пример #16
0
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
Пример #17
0
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
Пример #18
0
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
Пример #19
0
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