def lx_update(table, record_id): """ Write the Lx fields from the Location - used by hrm_human_resource & pr_address @ToDo: Allow the reverse operation. If these fields are populated then create/update the location """ if "location_id" in table: ltable = s3db.gis_location query = (table.id == record_id) & (ltable.id == table.location_id) location = ( db(query).select(ltable.id, ltable.name, ltable.level, ltable.parent, ltable.path, limitby=(0, 1)).first() ) if location: vars = Storage() if location.level == "L0": vars.L0 = location.name elif location.level == "L1": vars.L1 = location.name if location.parent: query = ltable.id == location.parent country = db(query).select(ltable.name, limitby=(0, 1)).first() if country: vars.L0 = country.name else: # Get Names of ancestors at each level vars = gis.get_parent_per_level(vars, location.id, feature=location, ids=False, names=True) # Update record db(table.id == record_id).update(**vars)
def lx_onvalidation(form): """ Write the Lx fields from the Location - used by pr_person, hrm_training, irs_ireport @ToDo: Allow the reverse operation. If these fields are populated then create/update the location """ vars = form.vars if "location_id" in vars and vars.location_id: table = s3db.gis_location query = table.id == vars.location_id location = db(query).select(table.name, table.level, table.parent, table.path, limitby=(0, 1)).first() if location: if location.level == "L0": vars.L0 = location.name elif location.level == "L1": vars.L1 = location.name if location.parent: query = table.id == location.parent country = db(query).select(table.name, limitby=(0, 1)).first() if country: vars.L0 = country.name else: # Get Names of ancestors at each level vars = gis.get_parent_per_level(vars, vars.location_id, feature=location, ids=False, names=True)
def address_update(table, record_id): """ Write the Postcode & Street Address fields from the Location - used by asset_asset @ToDo: Allow the reverse operation. If these fields are populated then create/update the location """ if "location_id" in table: locations = s3db.gis_location # Read Postcode & Street Address query = (table.id == record_id) & \ (locations.id == table.location_id) location = db(query).select(locations.addr_street, locations.addr_postcode, locations.name, locations.level, locations.parent, locations.path, limitby=(0, 1)).first() if location: vars = Storage() vars.address = location.addr_street vars.postcode = location.addr_postcode if location.level == "L0": vars.L0 = location.name elif location.level == "L1": vars.L1 = location.name if location.parent: query = (locations.id == location.parent) country = db(query).select(locations.name, limitby=(0, 1)).first() if country: vars.L0 = country.name else: if location.level is None: vars.building_name = location.name # Get Names of ancestors at each level gis.get_parent_per_level(vars, vars.location_id, feature=location, ids=False, names=True) # Update record db(table.id == record_id).update(**vars)
def address_onvalidation(form): """ Write the Postcode & Street Address fields from the Location - used by pr_address, org_office & cr_shelter @ToDo: Allow the reverse operation. If these fields are populated then create/update the location """ if "location_id" in form.vars: table = s3db.gis_location # Read Postcode & Street Address query = (table.id == form.vars.location_id) location = db(query).select(table.addr_street, table.addr_postcode, table.name, table.level, table.parent, table.path, limitby=(0, 1)).first() if location: form.vars.address = location.addr_street form.vars.postcode = location.addr_postcode if location.level == "L0": form.vars.L0 = location.name elif location.level == "L1": form.vars.L1 = location.name if location.parent: query = (table.id == location.parent) country = db(query).select(table.name, limitby=(0, 1)).first() if country: form.vars.L0 = country.name else: if location.level is None: form.vars.building_name = location.name # Get Names of ancestors at each level gis.get_parent_per_level(form.vars, form.vars.location_id, feature=location, ids=False, names=True)
def address_update(table, record_id): """ Write the Address fields from the Location - used by asset_asset @ToDo: Allow the reverse operation. If these fields are populated then create/update the location """ if "location_id" in table: ltable = s3db.gis_location # Read Postcode & Street Address query = (table.id == record_id) & \ (ltable.id == table.location_id) location = db(query).select(ltable.id, ltable.addr_street, ltable.addr_postcode, ltable.name, ltable.level, ltable.parent, ltable.path, limitby=(0, 1)).first() if location: vars = Storage() vars.address = location.addr_street vars.postcode = location.addr_postcode if location.level == "L0": vars.L0 = location.name elif location.level == "L1": vars.L1 = location.name if location.parent: query = (ltable.id == location.parent) country = db(query).select(ltable.name, limitby=(0, 1)).first() if country: vars.L0 = country.name else: if location.level is None: vars.building_name = location.name # Get Names of ancestors at each level vars = gis.get_parent_per_level(vars, location.id, feature=location, ids=False, names=True) # Update record db(table.id == record_id).update(**vars)
def address_onvalidation(form): """ Write the Address fields from the Location - used by pr_address, org_office & cr_shelter @ToDo: Allow the reverse operation. If these fields are populated then create/update the location """ vars = form.vars if "location_id" in vars and vars.location_id: table = s3db.gis_location # Read Postcode & Street Address query = (table.id == vars.location_id) location = db(query).select(table.addr_street, table.addr_postcode, table.name, table.level, table.parent, table.path, limitby=(0, 1)).first() if location: vars.address = location.addr_street vars.postcode = location.addr_postcode if location.level == "L0": vars.L0 = location.name elif location.level == "L1": vars.L1 = location.name if location.parent: query = (table.id == location.parent) country = db(query).select(table.name, limitby=(0, 1)).first() if country: vars.L0 = country.name else: if location.level is None: vars.building_name = location.name # Get Names of ancestors at each level vars = gis.get_parent_per_level(vars, vars.location_id, feature=location, ids=False, names=True)
def lx_update(table, record_id): """ Write the Lx fields from the Location - used by hrm_human_resource & pr_address @ToDo: Allow the reverse operation. If these fields are populated then create/update the location """ if "location_id" in table: ltable = s3db.gis_location query = (table.id == record_id) & \ (ltable.id == table.location_id) location = db(query).select(ltable.id, ltable.name, ltable.level, ltable.parent, ltable.path, limitby=(0, 1)).first() if location: vars = Storage() if location.level == "L0": vars.L0 = location.name elif location.level == "L1": vars.L1 = location.name if location.parent: query = (ltable.id == location.parent) country = db(query).select(ltable.name, limitby=(0, 1)).first() if country: vars.L0 = country.name else: # Get Names of ancestors at each level vars = gis.get_parent_per_level(vars, location.id, feature=location, ids=False, names=True) # Update record db(table.id == record_id).update(**vars)
def lx_onvalidation(form): """ Write the Lx fields from the Location - used by pr_person, hrm_training, irs_ireport @ToDo: Allow the reverse operation. If these fields are populated then create/update the location """ vars = form.vars if "location_id" in vars and vars.location_id: table = s3db.gis_location query = (table.id == vars.location_id) location = db(query).select(table.name, table.level, table.parent, table.path, limitby=(0, 1)).first() if location: if location.level == "L0": vars.L0 = location.name elif location.level == "L1": vars.L1 = location.name if location.parent: query = (table.id == location.parent) country = db(query).select(table.name, limitby=(0, 1)).first() if country: vars.L0 = country.name else: # Get Names of ancestors at each level vars = gis.get_parent_per_level(vars, vars.location_id, feature=location, ids=False, names=True)