Reviewers: ,


Please review this at http://codereview.tryton.org/389002/

Affected files:
  M __init__.py
  M address.py


Index: __init__.py
===================================================================

--- a/__init__.py
+++ b/__init__.py
@@ -1,4 +1,11 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.

+from trytond.pool import Pool
 from .address import *
+
+
+def register():
+    Pool.register(
+        Address,
+        module='google_maps', type_='model')

Index: address.py
===================================================================

--- a/address.py
+++ b/address.py
@@ -1,64 +1,38 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
 import urllib
-from trytond.model import ModelView, ModelSQL, fields
+from trytond.model import fields
 from trytond.transaction import Transaction
-from trytond.pool import Pool
+from trytond.pool import PoolMeta

+__all__ = ['Address']
+__metaclass__ = PoolMeta

-class Address(ModelSQL, ModelView):
-    _name = 'party.address'
+
+class Address:
+    __name__ = 'party.address'

     google_maps_url = fields.Function(fields.Char('Google Maps',
-        on_change_with=['street', 'streetbis', 'zip', 'city', 'country',
-            'subdivision']), 'get_google_maps_url')
+ on_change_with=['street', 'streetbis', 'zip', 'city', 'country',
+                'subdivision']), 'on_change_with_google_maps_url')

-    def _get_url(self, vals):
+    def on_change_with_google_maps_url(self, name=None):
         lang = Transaction().language[:2]
         url = ''
-        for i in ['street', 'streetbis', 'zip', 'city',
-                'country', 'subdivision']:
-            if vals.get(i):
-                if isinstance(vals[i], str):
-                    url += ' ' + vals[i].decode('utf-8')
+        for value in (
+                self.street,
+                self.streetbis,
+                self.zip,
+                self.city,
+                self.country.name if self.country else None,
+                self.subdivision.name if self.subdivision else None,
+                ):
+            if value:
+                if isinstance(value, str):
+                    url += ' ' + value.decode('utf-8')
                 else:
-                    url += ' ' + vals[i]
+                    url += ' ' + value
         if url.strip():
-            url = 'http://maps.google.com/maps?hl=%s&q=%s' % \
-                    (lang, urllib.quote(url.strip().encode('utf-8')))
-        else:
-            url = ''
-        return url
-
-    def on_change_with_google_maps_url(self, vals):
-        country_obj = Pool().get('country.country')
-        subdivision_obj = Pool().get('country.subdivision')
-
-        vals = vals.copy()
-
-        if vals.get('country'):
-            country = country_obj.browse(vals['country'])
-            vals['country'] = country.name
-
-        if vals.get('subdivision'):
-            subdivision = subdivision_obj.browse(vals['subdivision'])
-            vals['subdivision'] = subdivision.name
-
-        return self._get_url(vals)
-
-    def get_google_maps_url(self, ids, name):
-        res = {}
-        for address in self.browse(ids):
-            vals = {
-                'street': address.street,
-                'streetbis': address.streetbis,
-                'zip': address.zip,
-                'city': address.city,
- 'country': address.country and address.country.name or None,
-                'subdivision': address.subdivision and \
-                        address.subdivision.name or None,
-            }
-            res[address.id] = self._get_url(vals)
-        return res
-
-Address()
+            return 'http://maps.google.com/maps?hl=%s&q=%s' % \
+                (lang, urllib.quote(url.strip().encode('utf-8')))
+        return ''



--
[email protected] mailing list

Reply via email to