From 3e1a57da503029533f1597087af7b22400675da4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonel=20C=C3=A2mara?= Date: Wed, 13 Aug 2014 15:58:04 +0100 Subject: [PATCH 1/6] added a reverse_geocode function to tools --- gluon/tools.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gluon/tools.py b/gluon/tools.py index 4eecfcdd..e06b089a 100644 --- a/gluon/tools.py +++ b/gluon/tools.py @@ -4457,6 +4457,14 @@ def geocode(address): return (0.0, 0.0) +def reverse_geocode(lat, lng, lang=current.T.accepted_language): + """ Try to get an approximate address for a given latitude, longitude. """ + try: + return json_parser.loads(fetch("http://maps.googleapis.com/maps/api/geocode/json?latlng=%(lat)s,%(lng)s&sensor=true/false&language=%(lang)s" % locals()))['results'][0]['formatted_address'] + except: + return '' + + def universal_caller(f, *a, **b): c = f.func_code.co_argcount n = f.func_code.co_varnames[:c] From cb927fc1d905a3ea7c738cd9efd6e32fa43dd440 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonel=20C=C3=A2mara?= Date: Wed, 13 Aug 2014 15:59:22 +0100 Subject: [PATCH 2/6] minor cosmetic --- gluon/tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gluon/tools.py b/gluon/tools.py index e06b089a..88b3c333 100644 --- a/gluon/tools.py +++ b/gluon/tools.py @@ -4460,7 +4460,7 @@ def geocode(address): def reverse_geocode(lat, lng, lang=current.T.accepted_language): """ Try to get an approximate address for a given latitude, longitude. """ try: - return json_parser.loads(fetch("http://maps.googleapis.com/maps/api/geocode/json?latlng=%(lat)s,%(lng)s&sensor=true/false&language=%(lang)s" % locals()))['results'][0]['formatted_address'] + return json_parser.loads(fetch('http://maps.googleapis.com/maps/api/geocode/json?latlng=%(lat)s,%(lng)s&sensor=true/false&language=%(lang)s' % locals()))['results'][0]['formatted_address'] except: return '' From 1548f915a6b2bd022c40e0f2216762a299d012a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonel=20C=C3=A2mara?= Date: Wed, 13 Aug 2014 16:10:00 +0100 Subject: [PATCH 3/6] added reverse_geocode to tools __all__ --- gluon/tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gluon/tools.py b/gluon/tools.py index 320cac07..b11740f9 100644 --- a/gluon/tools.py +++ b/gluon/tools.py @@ -56,7 +56,7 @@ except ImportError: import gluon.contrib.simplejson as json_parser __all__ = ['Mail', 'Auth', 'Recaptcha', 'Crud', 'Service', 'Wiki', - 'PluginManager', 'fetch', 'geocode', 'prettydate'] + 'PluginManager', 'fetch', 'geocode', 'reverse_geocode', 'prettydate'] ### mind there are two loggers here (logger and crud.settings.logger)! logger = logging.getLogger("web2py") From 4aaf98bc56604fc2d611c2a315467967831e6bf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonel=20C=C3=A2mara?= Date: Wed, 13 Aug 2014 16:39:27 +0100 Subject: [PATCH 4/6] removed unneeded sensor=true/false --- gluon/tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gluon/tools.py b/gluon/tools.py index b11740f9..e7a6ca21 100644 --- a/gluon/tools.py +++ b/gluon/tools.py @@ -4427,7 +4427,7 @@ def geocode(address): def reverse_geocode(lat, lng, lang=current.T.accepted_language): """ Try to get an approximate address for a given latitude, longitude. """ try: - return json_parser.loads(fetch('http://maps.googleapis.com/maps/api/geocode/json?latlng=%(lat)s,%(lng)s&sensor=true/false&language=%(lang)s' % locals()))['results'][0]['formatted_address'] + return json_parser.loads(fetch('http://maps.googleapis.com/maps/api/geocode/json?latlng=%(lat)s,%(lng)s&language=%(lang)s' % locals()))['results'][0]['formatted_address'] except: return '' From 2a27563f300b105ff28cae05eda18419d9fcde63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonel=20C=C3=A2mara?= Date: Thu, 14 Aug 2014 18:02:00 +0100 Subject: [PATCH 5/6] Allows you to set SQLFORM.default_formstyle and set the default formstyle for all SQLFORMs --- gluon/sqlhtml.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py index c03930c1..dc22c59f 100644 --- a/gluon/sqlhtml.py +++ b/gluon/sqlhtml.py @@ -971,6 +971,8 @@ class SQLFORM(FORM): inline=formstyle_inline, ) + default_formstyle='table3cols' + FIELDNAME_REQUEST_DELETE = 'delete_this_record' FIELDKEY_DELETE_RECORD = 'delete_record' ID_LABEL_SUFFIX = '__label' @@ -1013,7 +1015,7 @@ class SQLFORM(FORM): keepopts=[], ignore_rw=False, record_id=None, - formstyle='table3cols', + formstyle=None, buttons=['submit'], separator=': ', extra_fields=None, @@ -1022,7 +1024,7 @@ class SQLFORM(FORM): T = current.T self.ignore_rw = ignore_rw - self.formstyle = formstyle + self.formstyle = formstyle or SQLFORM.default_formstyle self.readonly = readonly # Default dbio setting self.detect_record_change = None From 824cc10aa0be6a9d46732258a1c63381d9f42435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonel=20C=C3=A2mara?= Date: Thu, 14 Aug 2014 18:06:45 +0100 Subject: [PATCH 6/6] revert previous change due to the global implications --- gluon/sqlhtml.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py index dc22c59f..c03930c1 100644 --- a/gluon/sqlhtml.py +++ b/gluon/sqlhtml.py @@ -971,8 +971,6 @@ class SQLFORM(FORM): inline=formstyle_inline, ) - default_formstyle='table3cols' - FIELDNAME_REQUEST_DELETE = 'delete_this_record' FIELDKEY_DELETE_RECORD = 'delete_record' ID_LABEL_SUFFIX = '__label' @@ -1015,7 +1013,7 @@ class SQLFORM(FORM): keepopts=[], ignore_rw=False, record_id=None, - formstyle=None, + formstyle='table3cols', buttons=['submit'], separator=': ', extra_fields=None, @@ -1024,7 +1022,7 @@ class SQLFORM(FORM): T = current.T self.ignore_rw = ignore_rw - self.formstyle = formstyle or SQLFORM.default_formstyle + self.formstyle = formstyle self.readonly = readonly # Default dbio setting self.detect_record_change = None