Adaptación de l10n_es_toponyms a OpenERP 7.0

Completando la adaptación inicial que ya realizamos del módulo l10n_es_toponyms , acabamos de subir a la rama 7.0 de la localización española el módulo adaptado para utilizar como base el módulo base_location .

El módulo base_location

Este módulo es fruto de una excelente colaboración dentro de la comunidad en la que han intervenido Nicolas Bessi de Camptocamp , de Therp y nosotros. Procede de la fusión de dos módulos conocidos por muchos como son el módulo city y el módulo better_zip .

Lo que hace este módulo es añadir una nueva entidad que permite identificar cada ciudad (o ubicación), con su provincia y país, y referenciarla por un código. Después, añade un nuevo campo en el formulario de empresa, de contacto y de compañía para poder autocompletar los datos mencionados buscando sólo por el código o el nombre.

Se puede encontrar el módulo en esta rama de Launchpad:

https://launchpad.net/partner-contact-management

Su aplicación en l10n_es_toponyms

El módulo base_location viene como anillo al dedo para la funcionalidad que se utiliza habitualmente en España: buscar una ciudad por su código postal o su nombre y que se rellenen el resto de datos.

Además, este módulo soluciona el problema existente con el anterior método que se utilizaba para esta función: al utilizar los valores por defecto de OpenERP, no se podía tener más de un código postal asociado a una ciudad, y ese problema ocurre en multitud de poblaciones pequeñas, que comparten código postal con sus localidades vecinas.

Obtención de datos actualizados

Cuando se creó el módulo hace ya más de 7 años, se realizó una primera base de datos de códigos postales, que adolecía de no desglosar muchas de las poblaciones que comparten código postal (para hacerse una idea, la base de datos original tenía algo más de 15000 códigos, ¡¡y la actualizada tiene más de 56000!!), y que además va quedando obsoleta debido al dinamismo de muchas de las asignaciones de códigos postales.

Por eso, se buscó también, junto con la adaptación a la 7.0, un método de obtener una base de datos actualizada. Desgraciadamente, Correos España no permite disponer de manera abierta y gratuita de esa base de datos de códigos postales (sólo se pueden realizar consultas puntuales desde su web). Por eso, han surgido diversas iniciativas para recolectar dicha información, de las cuales hay dos base de datos comunitarias principales:

  • La que se puede descargar de www.codigospostales.com . Algo más desfasada, pero directamente con un archivo descargable.
  • La fuente de datos de GeoNames , que se accede con web services, y que devuelve archivos XML para cada consulta de un código postal, y que parece estar más actualizada. Un posible ejemplo de consulta sería:

EDIT: Desde que se escribió este artículo, GeoNames ha cambiado la política de acceso, y ahora no permite consultas libres, si no que hay que incluir credenciales en la petición. Desconozco si de forma gratuita podrá seguir haciéndose consultas.


Desgraciadamente, ninguna de las BDs (incluida la de correos que se consulta desde la web) tiene las tildes en todos los nombres, por lo que hay nombres de las poblaciones no son completamente correctos. Para un purista de la ortografía como yo, esto es un fallo grande, pero me temo que no hay solución.

EDIT: El usuario gonssal me ha dicho que se puede informar de nombres incorrectos en las poblaciones, pero he buscado el procedimiento en su web y no lo he encontrado. Tal vez ha remitido un correo a la dirección genérica [email protected] .

En la carpeta gen_src de la rama se han incluido los scripts para importar de las dos fuentes de datos comentadas, aunque la utilizada en la localización finalmente ha sido la de GeoNames por el hecho de estar más actualizada. Merece la pena comentar que ha habido que desarrollar el script para ir obteniendo los datos por partes, ya que GeoNames aplica un límite de 2000 consultas por hora, y para asegurar que no se pasaba ningún código postal, hubo que hacer un barrido de 58000 códigos, así que os podéis imaginar aquí a un servidor lanzando el script cada hora durante dos días para obtener todos los datos...

Pues como siempre, disfrutad del módulo, y cualquier comentario, lo podéis exponer abajo.

Comentarios

# Miguel Acebes 21-09-2013 21:17
Gracias Pedro por tu trabajo,

¿Cómo puedo descargarme el base_location del del link del launchpad... que describes en tu artículo.

Disculpa pero soy nuevo en esto, quizás sea muy trivial mi pregunta pero estoy totalmente atascado.

Muchas gracias.
Responder | Responder con una citación | Citar
# Pedro M. Baeza 23-09-2013 11:43
Buenas, Miguel,

No te preocupes, que todos hemos sido nuevos en algún momento.

Si no te quieres complicar, puedes acceder a apps.openerp.com/.../... y descargar el archivo ZIP con ese módulo.

Launchpad es un servicio de alojamiento de código, pero no tiene un sistema de descarga directo por web, sino que utiliza una aplicación de gestión de versiones, bazaar, para la descarga y mantenimiento de ese código. Tendrías que instalar este programa y ejecutar el comando que te aparece cuando accedes a la pestaña "Code" (bzr branch...) para poder descargar el código.

De todas formas, estamos trabajando desde la comunidad para dar de alta la rama española y sus dependencias para que desde el propio OpenERP en la sección "Aplicaciones" se puedan descargar directamente los módulos.

Un saludo.
Responder | Responder con una citación | Citar
# Marcos Ealo 06-02-2014 19:12
Eres un crack pedro. Busque donde busque al final apareces tú. Mil millones de gracias por tu inestimable aportación.
Responder | Responder con una citación | Citar
# Pedro M. Baeza 06-02-2014 19:41
Muchas gracias, Marcos. Aprecio mucho tus cumplidos.

Un saludo.
Responder | Responder con una citación | Citar