Hi all,
I have a simple table with 3 computed fields, the function that set their values is almost the same. However, unfortunately I had to set up three different functions because I didn't find a better approach.
The code:
db.define_table('cities',
                Field('name', 'string', requires=IS_TRIM()),
                Field('full_address', 'string',requires=IS_TRIM()),
                Field("lat", "double", label=T('Latitude')),
                Field("lgt", "double", label=T('Longitude')))

db.cities.full_address.compute = compute_geoCode_place
db.cities.lat.compute = compute_geoCode_lat
db.cities.lgt.compute = compute_geoCode_lng

def compute_geoCode_place(r):
    g = geocoders.Google()
    place, (lat, lng) = g.geocode(r.name)
    return place

def compute_geoCode_lat(r):
    g = geocoders.Google()
    place, (lat, lng) = g.geocode(r.name)
    return lat

def compute_geoCode_lng(r):
    g = geocoders.Google()
    place, (lat, lng) = g.geocode(r.name)
    return lng

What I would like to find is a way to fire the execution of a function when the form is submitted. More or less something like a compute action at table level.

Regards,

--
 Paolo

Reply via email to