Browse Source

Merge pull request #237 from akretion/9-port-external-maps

[MIG] partner_external_map
pull/265/head
Pedro M. Baeza 9 years ago
parent
commit
9c3ba0926f
  1. 100
      partner_external_map/README.rst
  2. 4
      partner_external_map/__init__.py
  3. 27
      partner_external_map/__openerp__.py
  4. 14
      partner_external_map/data/map_website_data.xml
  5. 33
      partner_external_map/hooks.py
  6. 94
      partner_external_map/i18n/da.po
  7. 189
      partner_external_map/i18n/de.po
  8. 94
      partner_external_map/i18n/en.po
  9. 94
      partner_external_map/i18n/es.po
  10. 94
      partner_external_map/i18n/fr.po
  11. 94
      partner_external_map/i18n/nl.po
  12. 94
      partner_external_map/i18n/sl.po
  13. 5
      partner_external_map/models/__init__.py
  14. 30
      partner_external_map/models/map_website.py
  15. 111
      partner_external_map/models/res_partner.py
  16. 52
      partner_external_map/models/res_users.py
  17. 0
      partner_external_map/security/ir.model.access.csv
  18. BIN
      partner_external_map/static/description/icon.png
  19. 2887
      partner_external_map/static/description/icon.svg
  20. 3
      partner_external_map/tests/__init__.py
  21. 84
      partner_external_map/tests/test_partner_external_map.py
  22. 0
      partner_external_map/views/map_website_view.xml
  23. 2
      partner_external_map/views/res_partner_view.xml
  24. 0
      partner_external_map/views/res_users_view.xml
  25. 65
      partner_external_maps/README.rst
  26. 4
      partner_external_maps/__init__.py
  27. 43
      partner_external_maps/__openerp__.py
  28. 172
      partner_external_maps/i18n/partner_external_maps.pot
  29. 210
      partner_external_maps/partner_external_maps.py
  30. 28
      partner_external_maps/post_install.py
  31. BIN
      partner_external_maps/static/description/icon.png

100
partner_external_map/README.rst

@ -0,0 +1,100 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
=====================
Partner External Maps
=====================
In the old days of Odoo/OpenERP, back in version 6.1, there was an official
*google_map* module ; this module added a *Map* button on the partner form view
and, when the user clicked on that button, it would open a new tab on its web
browser and go to Google Map with a search on the address of the partner.
This module aims at restoring this feature with several improvements:
* Each user can select the map website he wants to use in its preferences
* There are now two buttons on the partner form view: one to open a regular map
on the address of the partner, and another one to open an itinerary map from
the start address configured in the preferences of the user to the address of
the partner.
This module supports several map websites:
* `Google Maps <https://www.google.com/maps>`
* `OpenStreetMap <https://www.openstreetmap.org/>`
* `Bing Maps <https://www.bing.com/maps/>`
* `Here Maps <https://www.here.com/>`
* `MapQuest <http://www.mapquest.com/>`
* `Yahoo! Maps <https://maps.yahoo.com/>`
If the module *base_geolocalize* from the official addons is installed on the
system, it will use the latitude and longitude to localize the partner (instead
of the address) if this information is present on the partner.
Configuration
=============
If you want to create additionnal map websites, go to the menu
*Sales > Configuration > Address Book > Localization > Map Websites*. You are
invited to send the configuration information of your additionnal map websites
to the author of the module, so that the module can be updated with more
pre-configured map websites.
Usage
=====
First, you need to configure in your preferences:
* The map website to use for the regular maps,
* The map website to use for the route maps,
* The start address for the route maps.
Then you can use the two new buttons on the partner form to open a regular map
or a route map.
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/134/9.0
Known issues / Roadmap
======================
* Let decide if the user prefers to use addresses instead coordinates when
*base_geolocalize* is installed.
Bug Tracker
===========
Bugs are tracked on `GitHub Issues
<https://github.com/OCA/partner-contact/issues>`_. In case of trouble, please
check there if your issue has already been reported. If you spotted it first,
help us smashing it by providing a detailed and welcomed `feedback
<https://github.com/OCA/
partner-contact/issues/new?body=module:%20
partner_external_map%0Aversion:%20
9.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Credits
=======
Contributors
------------
* Alexis de Lattre <alexis.delattre@akretion.com>
* Pedro M. Baeza <pedro.baeza@tecnativa.com>
Maintainer
----------
.. image:: http://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: http://odoo-community.org
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
To contribute to this module, please visit https://odoo-community.org.

4
partner_external_map/__init__.py

@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
from . import models
from .hooks import set_default_map_settings

27
partner_external_map/__openerp__.py

@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
# © 2015 Alexis de Lattre <alexis.delattre@akretion.com>
# © 2016 Pedro M. Baeza <pedro.baeza@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
'name': 'Partner External Maps',
'version': '9.0.1.0.0',
'category': 'Extra Tools',
'license': 'AGPL-3',
'summary': 'Add Map and Map Routing buttons on partner form to '
'open GMaps, OSM, Bing and others',
'author': 'Akretion, '
'Tecnativa, '
'Odoo Community Association (OCA)',
'website': 'http://www.akretion.com',
'depends': ['base'],
'data': [
'views/res_partner_view.xml',
'views/map_website_view.xml',
'data/map_website_data.xml',
'views/res_users_view.xml',
'security/ir.model.access.csv',
],
'post_init_hook': 'set_default_map_settings',
'installable': True,
}

14
partner_external_maps/map_website_data.xml → partner_external_map/data/map_website_data.xml

@ -1,12 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015 Akretion (www.akretion.com)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<!-- © 2015 Alexis de Lattre <alexis.delattre@akretion.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl-3). -->
<openerp>
<data>
<odoo>
<!-- Interesting source of information: http://northwestspatial.com/wp/?p=38 -->
<record id="google_maps" model="map.website">
@ -59,6 +55,4 @@
<field name="route_address_url">https://maps.yahoo.com/directions/?o={START_ADDRESS}&amp;d={DEST_ADDRESS}</field>
</record>
</data>
</openerp>
</odoo>

33
partner_external_map/hooks.py

@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
# © 2015 Alexis de Lattre <alexis.delattre@akretion.com>
# © 2016 Pedro M. Baeza <pedro.baeza@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import api, SUPERUSER_ID
import logging
logger = logging.getLogger(__name__)
def set_default_map_settings(cr, registry):
"""Method called as post-install script
The default method on the field can't be used, because it would be executed
before loading map_website_data.xml, so it would not be able to set a
value"""
with api.Environment.manage():
env = api.Environment(cr, SUPERUSER_ID, {})
user_model = env['res.users']
users = user_model.search([('context_map_website_id', '=', False)])
logger.info('Updating user settings for maps...')
users.write({
'context_map_website_id': user_model._default_map_website().id,
'context_route_map_website_id': (
user_model._default_route_map_website().id),
})
# Update the starting partner this way that is faster
cr.execute("""
UPDATE res_users
SET context_route_start_partner_id = partner_id
WHERE context_route_start_partner_id IS NULL;
""")

94
partner_external_maps/i18n/da.po → partner_external_map/i18n/da.po

@ -1,6 +1,6 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * partner_external_maps
# * partner_external_map
#
# Translators:
# Hans Henrik Gabelgaard <hhg@gabelgaard.org>, 2015
@ -18,47 +18,47 @@ msgstr ""
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:128
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:128
#, python-format
msgid "Address missing on partner '%s'."
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,create_uid:0
msgid "Created by"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,create_date:0
msgid "Created on"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,id:0
msgid "ID"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,address_url:0
msgid "In this URL, {ADDRESS} will be replaced by the address."
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,lat_lon_url:0
msgid ""
"In this URL, {LATITUDE} and {LONGITUDE} will be replaced by the latitude and"
" longitude (requires the module 'base_geolocalize')"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,route_address_url:0
msgid ""
"In this URL, {START_ADDRESS} and {DEST_ADDRESS} will be replaced by the "
"start and destination addresses."
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,route_lat_lon_url:0
msgid ""
"In this URL, {START_LATITUDE}, {START_LONGITUDE}, {DEST_LATITUDE} and "
@ -66,124 +66,124 @@ msgid ""
" and destination adresses (requires the module 'base_geolocalize')."
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,write_uid:0
msgid "Last Updated by"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,write_date:0
msgid "Last Updated on"
msgstr ""
#. module: partner_external_maps
#: view:res.partner:partner_external_maps.view_partner_form
#. module: partner_external_map
#: view:res.partner:partner_external_map.view_partner_form
msgid "Map"
msgstr "Kort"
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_map_website
#: view:map.website:partner_external_maps.map_website_form
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_map_website
#: view:map.website:partner_external_map.map_website_form
#: field:res.users,context_map_website_id:0
msgid "Map Website"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,name:0
msgid "Map Website Name"
msgstr ""
#. module: partner_external_maps
#: model:ir.actions.act_window,name:partner_external_maps.map_website_action
#: model:ir.ui.menu,name:partner_external_maps.map_website_menu
#: view:map.website:partner_external_maps.map_website_tree
#. module: partner_external_map
#: model:ir.actions.act_window,name:partner_external_map.map_website_action
#: model:ir.ui.menu,name:partner_external_map.map_website_menu
#: view:map.website:partner_external_map.map_website_tree
msgid "Map Websites"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: help:res.users,context_route_map_website_id:0
msgid ""
"Map provided used when you click on the car icon on the partner form to "
"display an itinerary."
msgstr ""
#. module: partner_external_maps
#: view:res.users:partner_external_maps.view_users_form
#. module: partner_external_map
#: view:res.users:partner_external_map.view_users_form
msgid "Maps"
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:147
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:147
#, python-format
msgid "Missing map provider: you should set it in your preferences."
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:161
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:161
#, python-format
msgid "Missing parameter 'URL that uses the address' for map website '%s'."
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:200
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:200
#, python-format
msgid "Missing route URL that uses the addresses for the map website '%s'"
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:176
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:176
#, python-format
msgid "Missing route map website: you should set it in your preferences."
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:181
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:181
#, python-format
msgid ""
"Missing start address for route map: you should set it in your preferences."
msgstr ""
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_res_partner
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_res_partner
msgid "Partner"
msgstr ""
#. module: partner_external_maps
#: view:res.partner:partner_external_maps.view_partner_form
#. module: partner_external_map
#: view:res.partner:partner_external_map.view_partner_form
msgid "Route Map"
msgstr "Rutekort"
#. module: partner_external_maps
#. module: partner_external_map
#: field:res.users,context_route_map_website_id:0
msgid "Route Map Website"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,route_lat_lon_url:0
msgid "Route URL that uses latitude and longitude"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,route_address_url:0
msgid "Route URL that uses the addresses"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:res.users,context_route_start_partner_id:0
msgid "Start Address for Route Map"
msgstr "Start adresse ved rutevejledning"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,lat_lon_url:0
msgid "URL that uses latitude and longitude"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,address_url:0
msgid "URL that uses the address"
msgstr ""
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_res_users
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_res_users
msgid "Users"
msgstr ""

189
partner_external_map/i18n/de.po

@ -0,0 +1,189 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * partner_external_map
#
# Translators:
# Rudolf Schnapka <rs@techno-flex.de>, 2015
msgid ""
msgstr ""
"Project-Id-Version: partner-contact (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-25 01:50+0000\n"
"PO-Revision-Date: 2015-11-25 11:26+0000\n"
"Last-Translator: Rudolf Schnapka <rs@techno-flex.de>\n"
"Language-Team: German (http://www.transifex.com/oca/OCA-partner-contact-8-0/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:128
#, python-format
msgid "Address missing on partner '%s'."
msgstr "Adresse zum Partner '%s' fehlt."
#. module: partner_external_map
#: field:map.website,create_uid:0
msgid "Created by"
msgstr "erstellt von"
#. module: partner_external_map
#: field:map.website,create_date:0
msgid "Created on"
msgstr "erstellt am"
#. module: partner_external_map
#: field:map.website,id:0
msgid "ID"
msgstr "ID"
#. module: partner_external_map
#: help:map.website,address_url:0
msgid "In this URL, {ADDRESS} will be replaced by the address."
msgstr "In dieser URL wird {ADDRESS} durch die Adresse ersetzt."
#. module: partner_external_map
#: help:map.website,lat_lon_url:0
msgid ""
"In this URL, {LATITUDE} and {LONGITUDE} will be replaced by the latitude and"
" longitude (requires the module 'base_geolocalize')"
msgstr "Bei dieser URL, wird {LATITUDE} und {LONGITUDE} durch latitude und longitude ersetzt (erfordert das Modul 'base_geolocalize')"
#. module: partner_external_map
#: help:map.website,route_address_url:0
msgid ""
"In this URL, {START_ADDRESS} and {DEST_ADDRESS} will be replaced by the "
"start and destination addresses."
msgstr "Bei dieser URL, wird {START_ADDRESS} und {DEST_ADDRESS} durch die Ausgangs- und Bestimmungsanschrift ersetzt."
#. module: partner_external_map
#: help:map.website,route_lat_lon_url:0
msgid ""
"In this URL, {START_LATITUDE}, {START_LONGITUDE}, {DEST_LATITUDE} and "
"{DEST_LONGITUDE} will be replaced by the latitude and longitude of the start"
" and destination adresses (requires the module 'base_geolocalize')."
msgstr "Bei dieser URL, werden {START_LATITUDE}, {START_LONGITUDE}, {DEST_LATITUDE} und {DEST_LONGITUDE} durch die geographischen Höhen und Breiten von Ausgangs- und Bestimmungsanschriften ersetzt (Erfordert das Modul 'base_geolocalize')."
#. module: partner_external_map
#: field:map.website,write_uid:0
msgid "Last Updated by"
msgstr "zuletzt aktualisiert von"
#. module: partner_external_map
#: field:map.website,write_date:0
msgid "Last Updated on"
msgstr "zuletzt aktualisiert am"
#. module: partner_external_map
#: view:res.partner:partner_external_map.view_partner_form
msgid "Map"
msgstr "Karte"
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_map_website
#: view:map.website:partner_external_map.map_website_form
#: field:res.users,context_map_website_id:0
msgid "Map Website"
msgstr "Karten-Webseite"
#. module: partner_external_map
#: field:map.website,name:0
msgid "Map Website Name"
msgstr "Name der Karten-Webseite"
#. module: partner_external_map
#: model:ir.actions.act_window,name:partner_external_map.map_website_action
#: model:ir.ui.menu,name:partner_external_map.map_website_menu
#: view:map.website:partner_external_map.map_website_tree
msgid "Map Websites"
msgstr "Karten-Webseiten"
#. module: partner_external_map
#: help:res.users,context_route_map_website_id:0
msgid ""
"Map provided used when you click on the car icon on the partner form to "
"display an itinerary."
msgstr "Verwendete Karte, wenn Sie auf das Auto-Symbol im Partner-Formular klicken, um eine Route angezeigt zu bekommen."
#. module: partner_external_map
#: view:res.users:partner_external_map.view_users_form
msgid "Maps"
msgstr "Karten"
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:147
#, python-format
msgid "Missing map provider: you should set it in your preferences."
msgstr "Fehlender Karten-Lieferant: Sie müssen diesen in Ihren Präferenzen einstellen."
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:161
#, python-format
msgid "Missing parameter 'URL that uses the address' for map website '%s'."
msgstr "Fehlender Parameter: 'URL, die diese Adresse verwendet' in Karten-Webseite '%s'."
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:200
#, python-format
msgid "Missing route URL that uses the addresses for the map website '%s'"
msgstr "Fehlende Routen-URL, die diese Adresse verwendet in Karten-Webseite '%s'."
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:176
#, python-format
msgid "Missing route map website: you should set it in your preferences."
msgstr "Fehlende Webseite der Routen-Karte: Sie müssen diesen in Ihren Präferenzen einstellen."
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:181
#, python-format
msgid ""
"Missing start address for route map: you should set it in your preferences."
msgstr "Fehlender Ausgangsadresse in Routenkarte: Sie müssen diesen in Ihren Präferenzen einstellen."
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_res_partner
msgid "Partner"
msgstr "Partner"
#. module: partner_external_map
#: view:res.partner:partner_external_map.view_partner_form
msgid "Route Map"
msgstr "Routenkarte"
#. module: partner_external_map
#: field:res.users,context_route_map_website_id:0
msgid "Route Map Website"
msgstr "Routenkarten-Webseite"
#. module: partner_external_map
#: field:map.website,route_lat_lon_url:0
msgid "Route URL that uses latitude and longitude"
msgstr "Routen-URL, die geografische Höhe und Breite verwendet"
#. module: partner_external_map
#: field:map.website,route_address_url:0
msgid "Route URL that uses the addresses"
msgstr "Routen-URL, die Adressen verwendet"
#. module: partner_external_map
#: field:res.users,context_route_start_partner_id:0
msgid "Start Address for Route Map"
msgstr "Ausgangsadresse der Routenkarte"
#. module: partner_external_map
#: field:map.website,lat_lon_url:0
msgid "URL that uses latitude and longitude"
msgstr "URL, die geografische Höhe und Breite verwendet"
#. module: partner_external_map
#: field:map.website,address_url:0
msgid "URL that uses the address"
msgstr "URL, die die Adresse verwendet"
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_res_users
msgid "Users"
msgstr "Anwender"

94
partner_external_maps/i18n/en.po → partner_external_map/i18n/en.po

@ -1,6 +1,6 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * partner_external_maps
# * partner_external_map
#
# Translators:
msgid ""
@ -17,47 +17,47 @@ msgstr ""
"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:128
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:128
#, python-format
msgid "Address missing on partner '%s'."
msgstr "Address missing on partner '%s'."
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,create_uid:0
msgid "Created by"
msgstr "Created by"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,create_date:0
msgid "Created on"
msgstr "Created on"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,id:0
msgid "ID"
msgstr "ID"
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,address_url:0
msgid "In this URL, {ADDRESS} will be replaced by the address."
msgstr "In this URL, {ADDRESS} will be replaced by the address."
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,lat_lon_url:0
msgid ""
"In this URL, {LATITUDE} and {LONGITUDE} will be replaced by the latitude and"
" longitude (requires the module 'base_geolocalize')"
msgstr "In this URL, {LATITUDE} and {LONGITUDE} will be replaced by the latitude and longitude (requires the module 'base_geolocalize')"
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,route_address_url:0
msgid ""
"In this URL, {START_ADDRESS} and {DEST_ADDRESS} will be replaced by the "
"start and destination addresses."
msgstr "In this URL, {START_ADDRESS} and {DEST_ADDRESS} will be replaced by the start and destination addresses."
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,route_lat_lon_url:0
msgid ""
"In this URL, {START_LATITUDE}, {START_LONGITUDE}, {DEST_LATITUDE} and "
@ -65,124 +65,124 @@ msgid ""
" and destination adresses (requires the module 'base_geolocalize')."
msgstr "In this URL, {START_LATITUDE}, {START_LONGITUDE}, {DEST_LATITUDE} and {DEST_LONGITUDE} will be replaced by the latitude and longitude of the start and destination adresses (requires the module 'base_geolocalize')."
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,write_uid:0
msgid "Last Updated by"
msgstr "Last Updated by"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,write_date:0
msgid "Last Updated on"
msgstr "Last Updated on"
#. module: partner_external_maps
#: view:res.partner:partner_external_maps.view_partner_form
#. module: partner_external_map
#: view:res.partner:partner_external_map.view_partner_form
msgid "Map"
msgstr "Map"
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_map_website
#: view:map.website:partner_external_maps.map_website_form
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_map_website
#: view:map.website:partner_external_map.map_website_form
#: field:res.users,context_map_website_id:0
msgid "Map Website"
msgstr "Map Website"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,name:0
msgid "Map Website Name"
msgstr "Map Website Name"
#. module: partner_external_maps
#: model:ir.actions.act_window,name:partner_external_maps.map_website_action
#: model:ir.ui.menu,name:partner_external_maps.map_website_menu
#: view:map.website:partner_external_maps.map_website_tree
#. module: partner_external_map
#: model:ir.actions.act_window,name:partner_external_map.map_website_action
#: model:ir.ui.menu,name:partner_external_map.map_website_menu
#: view:map.website:partner_external_map.map_website_tree
msgid "Map Websites"
msgstr "Map Websites"
#. module: partner_external_maps
#. module: partner_external_map
#: help:res.users,context_route_map_website_id:0
msgid ""
"Map provided used when you click on the car icon on the partner form to "
"display an itinerary."
msgstr "Map provided used when you click on the car icon on the partner form to display an itinerary."
#. module: partner_external_maps
#: view:res.users:partner_external_maps.view_users_form
#. module: partner_external_map
#: view:res.users:partner_external_map.view_users_form
msgid "Maps"
msgstr "Maps"
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:147
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:147
#, python-format
msgid "Missing map provider: you should set it in your preferences."
msgstr "Missing map provider: you should set it in your preferences."
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:161
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:161
#, python-format
msgid "Missing parameter 'URL that uses the address' for map website '%s'."
msgstr "Missing parameter 'URL that uses the address' for map website '%s'."
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:200
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:200
#, python-format
msgid "Missing route URL that uses the addresses for the map website '%s'"
msgstr "Missing route URL that uses the addresses for the map website '%s'"
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:176
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:176
#, python-format
msgid "Missing route map website: you should set it in your preferences."
msgstr "Missing route map website: you should set it in your preferences."
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:181
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:181
#, python-format
msgid ""
"Missing start address for route map: you should set it in your preferences."
msgstr "Missing start address for route map: you should set it in your preferences."
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_res_partner
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_res_partner
msgid "Partner"
msgstr "Partner"
#. module: partner_external_maps
#: view:res.partner:partner_external_maps.view_partner_form
#. module: partner_external_map
#: view:res.partner:partner_external_map.view_partner_form
msgid "Route Map"
msgstr "Route Map"
#. module: partner_external_maps
#. module: partner_external_map
#: field:res.users,context_route_map_website_id:0
msgid "Route Map Website"
msgstr "Route Map Website"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,route_lat_lon_url:0
msgid "Route URL that uses latitude and longitude"
msgstr "Route URL that uses latitude and longitude"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,route_address_url:0
msgid "Route URL that uses the addresses"
msgstr "Route URL that uses the addresses"
#. module: partner_external_maps
#. module: partner_external_map
#: field:res.users,context_route_start_partner_id:0
msgid "Start Address for Route Map"
msgstr "Start Address for Route Map"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,lat_lon_url:0
msgid "URL that uses latitude and longitude"
msgstr "URL that uses latitude and longitude"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,address_url:0
msgid "URL that uses the address"
msgstr "URL that uses the address"
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_res_users
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_res_users
msgid "Users"
msgstr "Users"

94
partner_external_maps/i18n/es.po → partner_external_map/i18n/es.po

@ -1,6 +1,6 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * partner_external_maps
# * partner_external_map
#
# Translators:
# Francisco Palm <francisco.palm@gmail.com>, 2015
@ -18,47 +18,47 @@ msgstr ""
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:128
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:128
#, python-format
msgid "Address missing on partner '%s'."
msgstr "Falta la dirección del socio '%s'."
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,create_uid:0
msgid "Created by"
msgstr "Creado por"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,create_date:0
msgid "Created on"
msgstr "Creado en"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,id:0
msgid "ID"
msgstr "ID"
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,address_url:0
msgid "In this URL, {ADDRESS} will be replaced by the address."
msgstr "En este URL, {ADDRESS} será reemplazado por la dirección."
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,lat_lon_url:0
msgid ""
"In this URL, {LATITUDE} and {LONGITUDE} will be replaced by the latitude and"
" longitude (requires the module 'base_geolocalize')"
msgstr "En este URL, {LATITUDE} y {LONGITUDE} serán reemplazados por la latitud y la longitud (requiere el módulo 'base_geolocalize')"
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,route_address_url:0
msgid ""
"In this URL, {START_ADDRESS} and {DEST_ADDRESS} will be replaced by the "
"start and destination addresses."
msgstr "En este URL, {START_ADDRESS} y {DEST_ADDRESS} serán reemplazados por las direcciones de origen y destino."
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,route_lat_lon_url:0
msgid ""
"In this URL, {START_LATITUDE}, {START_LONGITUDE}, {DEST_LATITUDE} and "
@ -66,124 +66,124 @@ msgid ""
" and destination adresses (requires the module 'base_geolocalize')."
msgstr "En este URL, {START_LATITUDE}, {START_LONGITUDE}, {DEST_LATITUDE} y {DEST_LONGITUDE} serán reemplazados por las latitudes y longitudes de las direcciones de origen y destino (requiere el módulo 'base_geolocalize')."
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,write_uid:0
msgid "Last Updated by"
msgstr "Última actualización por"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,write_date:0
msgid "Last Updated on"
msgstr "Última actualización en"
#. module: partner_external_maps
#: view:res.partner:partner_external_maps.view_partner_form
#. module: partner_external_map
#: view:res.partner:partner_external_map.view_partner_form
msgid "Map"
msgstr "Mapa"
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_map_website
#: view:map.website:partner_external_maps.map_website_form
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_map_website
#: view:map.website:partner_external_map.map_website_form
#: field:res.users,context_map_website_id:0
msgid "Map Website"
msgstr "Sitio web del Mapa"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,name:0
msgid "Map Website Name"
msgstr "Nombre del Sitio web del Mapa"
#. module: partner_external_maps
#: model:ir.actions.act_window,name:partner_external_maps.map_website_action
#: model:ir.ui.menu,name:partner_external_maps.map_website_menu
#: view:map.website:partner_external_maps.map_website_tree
#. module: partner_external_map
#: model:ir.actions.act_window,name:partner_external_map.map_website_action
#: model:ir.ui.menu,name:partner_external_map.map_website_menu
#: view:map.website:partner_external_map.map_website_tree
msgid "Map Websites"
msgstr "Sitios web del Mapa"
#. module: partner_external_maps
#. module: partner_external_map
#: help:res.users,context_route_map_website_id:0
msgid ""
"Map provided used when you click on the car icon on the partner form to "
"display an itinerary."
msgstr "El mapa dado fue utilizado cuando hizo clic en el icono de auto en el formulario del socio para mostrar un itinerario."
#. module: partner_external_maps
#: view:res.users:partner_external_maps.view_users_form
#. module: partner_external_map
#: view:res.users:partner_external_map.view_users_form
msgid "Maps"
msgstr "Mapas"
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:147
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:147
#, python-format
msgid "Missing map provider: you should set it in your preferences."
msgstr "Falta el proveedor de mapas: debe establecerlo en sus preferencias."
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:161
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:161
#, python-format
msgid "Missing parameter 'URL that uses the address' for map website '%s'."
msgstr "Parámetro faltante 'URL que utiliza la dirección' para el sito web del mapa '%s'."
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:200
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:200
#, python-format
msgid "Missing route URL that uses the addresses for the map website '%s'"
msgstr "Falta URL de la ruta que utiliza las direcciones para el sitio web del mapa '%s'"
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:176
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:176
#, python-format
msgid "Missing route map website: you should set it in your preferences."
msgstr "Falta sitio web del mapa de la ruta: debes establecerlo en tus preferencias."
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:181
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:181
#, python-format
msgid ""
"Missing start address for route map: you should set it in your preferences."
msgstr "Falta la dirección de origen para el mapa de la ruta: debes establecerlo en tus preferencias."
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_res_partner
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_res_partner
msgid "Partner"
msgstr "Socio"
#. module: partner_external_maps
#: view:res.partner:partner_external_maps.view_partner_form
#. module: partner_external_map
#: view:res.partner:partner_external_map.view_partner_form
msgid "Route Map"
msgstr "Mapa de Ruta"
#. module: partner_external_maps
#. module: partner_external_map
#: field:res.users,context_route_map_website_id:0
msgid "Route Map Website"
msgstr "Sitio web del Mapa de Ruta"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,route_lat_lon_url:0
msgid "Route URL that uses latitude and longitude"
msgstr "URL de la Ruta que utiliza la latitud y la longitud"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,route_address_url:0
msgid "Route URL that uses the addresses"
msgstr "URL de la Ruta que utiliza las direcciones"
#. module: partner_external_maps
#. module: partner_external_map
#: field:res.users,context_route_start_partner_id:0
msgid "Start Address for Route Map"
msgstr "Dirección de Origen para el Mapa de Ruta"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,lat_lon_url:0
msgid "URL that uses latitude and longitude"
msgstr "URL que utiliza la latitud y la longitud"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,address_url:0
msgid "URL that uses the address"
msgstr "URL que utiliza las direcciones"
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_res_users
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_res_users
msgid "Users"
msgstr "Usuarios"

94
partner_external_maps/i18n/fr.po → partner_external_map/i18n/fr.po

@ -1,6 +1,6 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * partner_external_maps
# * partner_external_map
#
# Translators:
msgid ""
@ -17,47 +17,47 @@ msgstr ""
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:128
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:128
#, python-format
msgid "Address missing on partner '%s'."
msgstr "Adresse manquante sur le partenaire '%s'."
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,create_uid:0
msgid "Created by"
msgstr "Créé par"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,create_date:0
msgid "Created on"
msgstr "Créé le"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,id:0
msgid "ID"
msgstr "ID"
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,address_url:0
msgid "In this URL, {ADDRESS} will be replaced by the address."
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,lat_lon_url:0
msgid ""
"In this URL, {LATITUDE} and {LONGITUDE} will be replaced by the latitude and"
" longitude (requires the module 'base_geolocalize')"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,route_address_url:0
msgid ""
"In this URL, {START_ADDRESS} and {DEST_ADDRESS} will be replaced by the "
"start and destination addresses."
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,route_lat_lon_url:0
msgid ""
"In this URL, {START_LATITUDE}, {START_LONGITUDE}, {DEST_LATITUDE} and "
@ -65,124 +65,124 @@ msgid ""
" and destination adresses (requires the module 'base_geolocalize')."
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,write_uid:0
msgid "Last Updated by"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,write_date:0
msgid "Last Updated on"
msgstr ""
#. module: partner_external_maps
#: view:res.partner:partner_external_maps.view_partner_form
#. module: partner_external_map
#: view:res.partner:partner_external_map.view_partner_form
msgid "Map"
msgstr "Carte"
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_map_website
#: view:map.website:partner_external_maps.map_website_form
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_map_website
#: view:map.website:partner_external_map.map_website_form
#: field:res.users,context_map_website_id:0
msgid "Map Website"
msgstr "Site de carte"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,name:0
msgid "Map Website Name"
msgstr "Nom du site de carte"
#. module: partner_external_maps
#: model:ir.actions.act_window,name:partner_external_maps.map_website_action
#: model:ir.ui.menu,name:partner_external_maps.map_website_menu
#: view:map.website:partner_external_maps.map_website_tree
#. module: partner_external_map
#: model:ir.actions.act_window,name:partner_external_map.map_website_action
#: model:ir.ui.menu,name:partner_external_map.map_website_menu
#: view:map.website:partner_external_map.map_website_tree
msgid "Map Websites"
msgstr "Sites de carte"
#. module: partner_external_maps
#. module: partner_external_map
#: help:res.users,context_route_map_website_id:0
msgid ""
"Map provided used when you click on the car icon on the partner form to "
"display an itinerary."
msgstr ""
#. module: partner_external_maps
#: view:res.users:partner_external_maps.view_users_form
#. module: partner_external_map
#: view:res.users:partner_external_map.view_users_form
msgid "Maps"
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:147
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:147
#, python-format
msgid "Missing map provider: you should set it in your preferences."
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:161
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:161
#, python-format
msgid "Missing parameter 'URL that uses the address' for map website '%s'."
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:200
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:200
#, python-format
msgid "Missing route URL that uses the addresses for the map website '%s'"
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:176
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:176
#, python-format
msgid "Missing route map website: you should set it in your preferences."
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:181
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:181
#, python-format
msgid ""
"Missing start address for route map: you should set it in your preferences."
msgstr ""
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_res_partner
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_res_partner
msgid "Partner"
msgstr "Partenaire"
#. module: partner_external_maps
#: view:res.partner:partner_external_maps.view_partner_form
#. module: partner_external_map
#: view:res.partner:partner_external_map.view_partner_form
msgid "Route Map"
msgstr "Itinéraire"
#. module: partner_external_maps
#. module: partner_external_map
#: field:res.users,context_route_map_website_id:0
msgid "Route Map Website"
msgstr "Site web pour les itinéraires"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,route_lat_lon_url:0
msgid "Route URL that uses latitude and longitude"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,route_address_url:0
msgid "Route URL that uses the addresses"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:res.users,context_route_start_partner_id:0
msgid "Start Address for Route Map"
msgstr "Adresse de départ pour les itinéraires"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,lat_lon_url:0
msgid "URL that uses latitude and longitude"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,address_url:0
msgid "URL that uses the address"
msgstr ""
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_res_users
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_res_users
msgid "Users"
msgstr "Utilisateurs"

94
partner_external_maps/i18n/nl.po → partner_external_map/i18n/nl.po

@ -1,6 +1,6 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * partner_external_maps
# * partner_external_map
#
# Translators:
msgid ""
@ -17,47 +17,47 @@ msgstr ""
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:128
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:128
#, python-format
msgid "Address missing on partner '%s'."
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,create_uid:0
msgid "Created by"
msgstr "Aangemaakt door"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,create_date:0
msgid "Created on"
msgstr "Aangemaakt op"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,id:0
msgid "ID"
msgstr "ID"
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,address_url:0
msgid "In this URL, {ADDRESS} will be replaced by the address."
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,lat_lon_url:0
msgid ""
"In this URL, {LATITUDE} and {LONGITUDE} will be replaced by the latitude and"
" longitude (requires the module 'base_geolocalize')"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,route_address_url:0
msgid ""
"In this URL, {START_ADDRESS} and {DEST_ADDRESS} will be replaced by the "
"start and destination addresses."
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,route_lat_lon_url:0
msgid ""
"In this URL, {START_LATITUDE}, {START_LONGITUDE}, {DEST_LATITUDE} and "
@ -65,124 +65,124 @@ msgid ""
" and destination adresses (requires the module 'base_geolocalize')."
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,write_uid:0
msgid "Last Updated by"
msgstr "Laatst bijgewerkt door"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,write_date:0
msgid "Last Updated on"
msgstr "Laatst bijgewerkt op"
#. module: partner_external_maps
#: view:res.partner:partner_external_maps.view_partner_form
#. module: partner_external_map
#: view:res.partner:partner_external_map.view_partner_form
msgid "Map"
msgstr ""
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_map_website
#: view:map.website:partner_external_maps.map_website_form
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_map_website
#: view:map.website:partner_external_map.map_website_form
#: field:res.users,context_map_website_id:0
msgid "Map Website"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,name:0
msgid "Map Website Name"
msgstr ""
#. module: partner_external_maps
#: model:ir.actions.act_window,name:partner_external_maps.map_website_action
#: model:ir.ui.menu,name:partner_external_maps.map_website_menu
#: view:map.website:partner_external_maps.map_website_tree
#. module: partner_external_map
#: model:ir.actions.act_window,name:partner_external_map.map_website_action
#: model:ir.ui.menu,name:partner_external_map.map_website_menu
#: view:map.website:partner_external_map.map_website_tree
msgid "Map Websites"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: help:res.users,context_route_map_website_id:0
msgid ""
"Map provided used when you click on the car icon on the partner form to "
"display an itinerary."
msgstr ""
#. module: partner_external_maps
#: view:res.users:partner_external_maps.view_users_form
#. module: partner_external_map
#: view:res.users:partner_external_map.view_users_form
msgid "Maps"
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:147
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:147
#, python-format
msgid "Missing map provider: you should set it in your preferences."
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:161
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:161
#, python-format
msgid "Missing parameter 'URL that uses the address' for map website '%s'."
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:200
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:200
#, python-format
msgid "Missing route URL that uses the addresses for the map website '%s'"
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:176
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:176
#, python-format
msgid "Missing route map website: you should set it in your preferences."
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:181
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:181
#, python-format
msgid ""
"Missing start address for route map: you should set it in your preferences."
msgstr ""
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_res_partner
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_res_partner
msgid "Partner"
msgstr "Partner"
#. module: partner_external_maps
#: view:res.partner:partner_external_maps.view_partner_form
#. module: partner_external_map
#: view:res.partner:partner_external_map.view_partner_form
msgid "Route Map"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:res.users,context_route_map_website_id:0
msgid "Route Map Website"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,route_lat_lon_url:0
msgid "Route URL that uses latitude and longitude"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,route_address_url:0
msgid "Route URL that uses the addresses"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:res.users,context_route_start_partner_id:0
msgid "Start Address for Route Map"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,lat_lon_url:0
msgid "URL that uses latitude and longitude"
msgstr ""
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,address_url:0
msgid "URL that uses the address"
msgstr ""
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_res_users
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_res_users
msgid "Users"
msgstr ""

94
partner_external_maps/i18n/sl.po → partner_external_map/i18n/sl.po

@ -1,6 +1,6 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * partner_external_maps
# * partner_external_map
#
# Translators:
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2015
@ -18,47 +18,47 @@ msgstr ""
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:128
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:128
#, python-format
msgid "Address missing on partner '%s'."
msgstr "Pri partnerju '%s' manjka naslov."
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,create_uid:0
msgid "Created by"
msgstr "Ustvaril"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,create_date:0
msgid "Created on"
msgstr "Ustvaril"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,id:0
msgid "ID"
msgstr "ID"
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,address_url:0
msgid "In this URL, {ADDRESS} will be replaced by the address."
msgstr "V tej URL povezavi bo {ADDRESS} zamenjan z naslovom."
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,lat_lon_url:0
msgid ""
"In this URL, {LATITUDE} and {LONGITUDE} will be replaced by the latitude and"
" longitude (requires the module 'base_geolocalize')"
msgstr "V tej URL povezavi bosta {LATITUDE} in {LONGITUDE} zamenjani z geografsko širino in dolžino (potreben je modul 'base_geolocalize')"
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,route_address_url:0
msgid ""
"In this URL, {START_ADDRESS} and {DEST_ADDRESS} will be replaced by the "
"start and destination addresses."
msgstr "V tej URL povezavi bosta {START_ADDRESS} in {DEST_ADDRESS} zamenjana z začetnim in ciljnim naslovom."
#. module: partner_external_maps
#. module: partner_external_map
#: help:map.website,route_lat_lon_url:0
msgid ""
"In this URL, {START_LATITUDE}, {START_LONGITUDE}, {DEST_LATITUDE} and "
@ -66,124 +66,124 @@ msgid ""
" and destination adresses (requires the module 'base_geolocalize')."
msgstr "V tej URL povezavi bodo {START_LATITUDE}, {START_LONGITUDE}, {DEST_LATITUDE} in {DEST_LONGITUDE} zamenjani z geografsko širino in dolžino začetnega in ciljnega naslova (potreben je modul 'base_geolocalize')."
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,write_uid:0
msgid "Last Updated by"
msgstr "Zadnji posodobil"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,write_date:0
msgid "Last Updated on"
msgstr "Zadnjič posodobljeno"
#. module: partner_external_maps
#: view:res.partner:partner_external_maps.view_partner_form
#. module: partner_external_map
#: view:res.partner:partner_external_map.view_partner_form
msgid "Map"
msgstr "Zemljevid"
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_map_website
#: view:map.website:partner_external_maps.map_website_form
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_map_website
#: view:map.website:partner_external_map.map_website_form
#: field:res.users,context_map_website_id:0
msgid "Map Website"
msgstr "Spletna stran zemljevida"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,name:0
msgid "Map Website Name"
msgstr "Naziv spletne strani zemljevida"
#. module: partner_external_maps
#: model:ir.actions.act_window,name:partner_external_maps.map_website_action
#: model:ir.ui.menu,name:partner_external_maps.map_website_menu
#: view:map.website:partner_external_maps.map_website_tree
#. module: partner_external_map
#: model:ir.actions.act_window,name:partner_external_map.map_website_action
#: model:ir.ui.menu,name:partner_external_map.map_website_menu
#: view:map.website:partner_external_map.map_website_tree
msgid "Map Websites"
msgstr "Spletne strani zemljevidov"
#. module: partner_external_maps
#. module: partner_external_map
#: help:res.users,context_route_map_website_id:0
msgid ""
"Map provided used when you click on the car icon on the partner form to "
"display an itinerary."
msgstr "Zemljevid uporabljen ob kliku na ikono avtomobila v partnerjevem obrazcu za prikaz itinerarja."
#. module: partner_external_maps
#: view:res.users:partner_external_maps.view_users_form
#. module: partner_external_map
#: view:res.users:partner_external_map.view_users_form
msgid "Maps"
msgstr "Zemljevidi"
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:147
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:147
#, python-format
msgid "Missing map provider: you should set it in your preferences."
msgstr "Manjkajoč ponudnik zemljevida: nastavite ga v nastavitvah."
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:161
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:161
#, python-format
msgid "Missing parameter 'URL that uses the address' for map website '%s'."
msgstr "Manjkajoč parameter 'URL ki uporablja naslov' za spletno stran zemljevida '%s'."
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:200
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:200
#, python-format
msgid "Missing route URL that uses the addresses for the map website '%s'"
msgstr "Manjkajoč URL proge, ki uporablja naslove za spletno stran zemljevida '%s'"
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:176
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:176
#, python-format
msgid "Missing route map website: you should set it in your preferences."
msgstr "Manjkajoča spletna stran proge: nastavite jo v svojih nastavitvah."
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:181
#. module: partner_external_map
#: code:addons/partner_external_map/partner_external_map.py:181
#, python-format
msgid ""
"Missing start address for route map: you should set it in your preferences."
msgstr "Manjkajoč začetni naslov za progo: nastavite ga v svojih nastavitvah."
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_res_partner
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_res_partner
msgid "Partner"
msgstr "Partner"
#. module: partner_external_maps
#: view:res.partner:partner_external_maps.view_partner_form
#. module: partner_external_map
#: view:res.partner:partner_external_map.view_partner_form
msgid "Route Map"
msgstr "Zemljevid proge"
#. module: partner_external_maps
#. module: partner_external_map
#: field:res.users,context_route_map_website_id:0
msgid "Route Map Website"
msgstr "Spletna stran zemljevida proge"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,route_lat_lon_url:0
msgid "Route URL that uses latitude and longitude"
msgstr "URL proge, ki uporablja geografsko širino in dolžino."
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,route_address_url:0
msgid "Route URL that uses the addresses"
msgstr "URL proge, ki uporablja naslove"
#. module: partner_external_maps
#. module: partner_external_map
#: field:res.users,context_route_start_partner_id:0
msgid "Start Address for Route Map"
msgstr "Začetni naslov za zemljevid proge"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,lat_lon_url:0
msgid "URL that uses latitude and longitude"
msgstr "URL, ki uporablja geografsko širino in dolžino"
#. module: partner_external_maps
#. module: partner_external_map
#: field:map.website,address_url:0
msgid "URL that uses the address"
msgstr "URL, ki uporablja naslov"
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_res_users
#. module: partner_external_map
#: model:ir.model,name:partner_external_map.model_res_users
msgid "Users"
msgstr "Uporabniki"

5
partner_external_map/models/__init__.py

@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
from . import map_website
from . import res_partner
from . import res_users

30
partner_external_map/models/map_website.py

@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
# © 2015 Alexis de Lattre <alexis.delattre@akretion.com>
# © 2016 Pedro M. Baeza <pedro.baeza@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import models, fields
class MapWebsite(models.Model):
_name = 'map.website'
_description = 'Map Website'
name = fields.Char(string='Map Website Name', required=True)
address_url = fields.Char(
string='URL that uses the address',
help="In this URL, {ADDRESS} will be replaced by the address.")
lat_lon_url = fields.Char(
string='URL that uses latitude and longitude',
help="In this URL, {LATITUDE} and {LONGITUDE} will be replaced by "
"the latitude and longitude (requires the module 'base_geolocalize')")
route_address_url = fields.Char(
string='Route URL that uses the addresses',
help="In this URL, {START_ADDRESS} and {DEST_ADDRESS} will be "
"replaced by the start and destination addresses.")
route_lat_lon_url = fields.Char(
string='Route URL that uses latitude and longitude',
help="In this URL, {START_LATITUDE}, {START_LONGITUDE}, "
"{DEST_LATITUDE} and {DEST_LONGITUDE} will be replaced by the "
"latitude and longitude of the start and destination adresses "
"(requires the module 'base_geolocalize').")

111
partner_external_map/models/res_partner.py

@ -0,0 +1,111 @@
# -*- coding: utf-8 -*-
# © 2015 Alexis de Lattre <alexis.delattre@akretion.com>
# © 2016 Pedro M. Baeza <pedro.baeza@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import models, api, _
from openerp.exceptions import Warning as UserError
import logging
logger = logging.getLogger(__name__)
class ResPartner(models.Model):
_inherit = 'res.partner'
@api.multi
def _address_as_string(self):
self.ensure_one()
addr = []
if self.street:
addr.append(self.street)
if self.street2:
addr.append(self.street2)
if self.city:
addr.append(self.city)
if self.state_id:
addr.append(self.state_id.name)
if self.country_id:
addr.append(self.country_id.name)
if not addr:
raise UserError(_("Address missing on partner '%s'.") % self.name)
return ' '.join(addr)
@api.model
def _prepare_url(self, url, replace):
assert url, 'Missing URL'
for key, value in replace.iteritems():
if not isinstance(value, (str, unicode)):
# for latitude and longitude which are floats
value = unicode(value)
url = url.replace(key, value)
logger.debug('Final URL: %s', url)
return url
@api.multi
def open_map(self):
self.ensure_one()
map_website = self.env.user.context_map_website_id
if not map_website:
raise UserError(
_('Missing map provider: '
'you should set it in your preferences.'))
if (map_website.lat_lon_url and hasattr(self, 'partner_latitude') and
self.partner_latitude and self.partner_longitude):
url = self._prepare_url(
map_website.lat_lon_url, {
'{LATITUDE}': self.partner_latitude,
'{LONGITUDE}': self.partner_longitude})
else:
if not map_website.address_url:
raise UserError(
_("Missing parameter 'URL that uses the address' "
"for map website '%s'.") % map_website.name)
url = self._prepare_url(
map_website.address_url,
{'{ADDRESS}': self._address_as_string()})
return {
'type': 'ir.actions.act_url',
'url': url,
'target': 'new',
}
@api.multi
def open_route_map(self):
self.ensure_one()
if not self.env.user.context_route_map_website_id:
raise UserError(
_('Missing route map website: '
'you should set it in your preferences.'))
map_website = self.env.user.context_route_map_website_id
if not self.env.user.context_route_start_partner_id:
raise UserError(
_('Missing start address for route map: '
'you should set it in your preferences.'))
start_partner = self.env.user.context_route_start_partner_id
if (map_website.route_lat_lon_url and
hasattr(self, 'partner_latitude') and
self.partner_latitude and self.partner_longitude and
start_partner.partner_latitude and
start_partner.partner_longitude):
url = self._prepare_url( # pragma: no cover
map_website.route_lat_lon_url, {
'{START_LATITUDE}': start_partner.partner_latitude,
'{START_LONGITUDE}': start_partner.partner_longitude,
'{DEST_LATITUDE}': self.partner_latitude,
'{DEST_LONGITUDE}': self.partner_longitude})
else:
if not map_website.route_address_url:
raise UserError(
_("Missing route URL that uses the addresses "
"for the map website '%s'") % map_website.name)
url = self._prepare_url(
map_website.route_address_url, {
'{START_ADDRESS}': start_partner._address_as_string(),
'{DEST_ADDRESS}': self._address_as_string()})
return {
'type': 'ir.actions.act_url',
'url': url,
'target': 'new',
}

52
partner_external_map/models/res_users.py

@ -0,0 +1,52 @@
# -*- coding: utf-8 -*-
# © 2015 Alexis de Lattre <alexis.delattre@akretion.com>
# © 2016 Pedro M. Baeza <pedro.baeza@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import models, fields, api
import logging
logger = logging.getLogger(__name__)
class ResUsers(models.Model):
_inherit = 'res.users'
@api.model
def _default_map_website(self):
return self.env['map.website'].search([
'|', ('address_url', '!=', False), ('lat_lon_url', '!=', False)],
limit=1)
@api.model
def _default_route_map_website(self):
return self.env['map.website'].search([
'|', ('route_address_url', '!=', False),
('route_lat_lon_url', '!=', False)], limit=1)
# begin with context_ to allow user to change it by himself
context_map_website_id = fields.Many2one(
'map.website', string='Map Website', default=_default_map_website,
domain=['|', ('address_url', '!=', False),
('lat_lon_url', '!=', False)])
# We want to give the possibility to the user to have one map provider for
# regular maps and another one for routing
context_route_map_website_id = fields.Many2one(
'map.website', string='Route Map Website',
domain=['|', ('route_address_url', '!=', False),
('route_lat_lon_url', '!=', False)],
default=_default_route_map_website,
help="Map provided used when you click on the car icon on the partner "
"form to display an itinerary.")
context_route_start_partner_id = fields.Many2one(
'res.partner', string='Start Address for Route Map')
@api.model
def create(self, vals):
"""On creation, if no starting partner is provided, assign the current
created one.
"""
user = super(ResUsers, self).create(vals)
if not vals.get('context_route_start_partner_id'):
user.context_route_start_partner_id = user.partner_id.id
return user

0
partner_external_maps/security/ir.model.access.csv → partner_external_map/security/ir.model.access.csv

BIN
partner_external_map/static/description/icon.png

After

Width: 128  |  Height: 128  |  Size: 16 KiB

2887
partner_external_map/static/description/icon.svg
File diff suppressed because it is too large
View File

3
partner_external_map/tests/__init__.py

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import test_partner_external_map

84
partner_external_map/tests/test_partner_external_map.py

@ -0,0 +1,84 @@
# -*- coding: utf-8 -*-
# © 2016 Pedro M. Baeza <pedro.baeza@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp.tests import common
from openerp.exceptions import Warning as UserError
from ..hooks import set_default_map_settings
class TestPartnerExternalMap(common.TransactionCase):
def setUp(self):
super(TestPartnerExternalMap, self).setUp()
self.user = self.env['res.users'].create({
'name': 'Test user',
'login': 'test_login',
'context_map_website_id': self.ref(
'partner_external_map.google_maps'),
'context_route_map_website_id': self.ref(
'partner_external_map.google_maps'),
})
self.user.partner_id.city = 'Tomelloso'
self.partner = self.env['res.partner'].create({
'name': 'Test partner',
'city': 'Madrid',
})
def test_post_init_hook(self):
# Call this again for coverage purposes, but it has been already run
set_default_map_settings(self.cr, self.registry)
self.assertTrue(self.env.user.context_map_website_id)
self.assertTrue(self.env.user.context_route_map_website_id)
self.assertEqual(self.env.user.partner_id,
self.env.user.context_route_start_partner_id)
def test_create_user(self):
self.assertEqual(
self.user.partner_id, self.user.context_route_start_partner_id)
def test_open_map(self):
action = self.partner.sudo(self.user.id).open_map()
self.assertEqual(
action['url'], "https://www.google.com/maps?ie=UTF8&q=Madrid")
def test_open_route_map(self):
action = self.partner.sudo(self.user.id).open_route_map()
self.assertEqual(
action['url'], "https://www.google.com/maps?saddr=Tomelloso&daddr="
"Madrid&directionsmode=driving")
def test_open_map_with_coordinates(self):
# Simulate that we have the base_geolocalize module installed creating
# by hand the variables - This can't be done with routes
partner = self.partner.sudo(self.user.id)
partner.partner_latitude = 39.15837
partner.partner_longitude = -3.02145
action = partner.open_map()
self.assertEqual(
action['url'],
"https://www.google.com/maps?z=15&q=39.15837,-3.02145")
def test_exception_no_map_website(self):
self.user.context_map_website_id = False
with self.assertRaises(UserError):
self.partner.sudo(self.user.id).open_map()
def test_exception_no_map_route_website(self):
self.user.context_route_start_partner_id = False
with self.assertRaises(UserError):
self.partner.sudo(self.user.id).open_route_map()
def test_exception_no_starting_partner(self):
self.user.context_route_map_website_id = False
with self.assertRaises(UserError):
self.partner.sudo(self.user.id).open_route_map()
def test_exception_no_address_url(self):
self.user.context_map_website_id.address_url = False
with self.assertRaises(UserError):
self.partner.sudo(self.user.id).open_map()
def test_exception_no_route_address_url(self):
self.user.context_map_website_id.route_address_url = False
with self.assertRaises(UserError):
self.partner.sudo(self.user.id).open_route_map()

0
partner_external_maps/map_website_view.xml → partner_external_map/views/map_website_view.xml

2
partner_external_maps/partner_view.xml → partner_external_map/views/res_partner_view.xml

@ -14,7 +14,7 @@
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='buttons']" position="inside">
<xpath expr="//div[@name='button_box']" position="inside">
<button class="oe_inline oe_stat_button"
name="open_map" type="object" string="Map"
attrs="{'invisible': [('city', '=', False)]}"

0
partner_external_maps/users_view.xml → partner_external_map/views/res_users_view.xml

65
partner_external_maps/README.rst

@ -1,65 +0,0 @@
Partner External Maps
=====================
In the old days of Odoo/OpenERP, back in version 6.1, there was an official *google_map* module ; this module added a *Map* button on the partner form view and, when the user clicked on that button, it would open a new tab on its web browser and go to Google Map with a search on the address of the partner.
This module aims at restoring this feature with several improvements:
* each user can select the map website he wants to use in its preferences
* there are now two buttons on the partner form view: one to open a regular map on the address of the partner, and another one to open an itinerary map from the start address configured in the preferences of the user to the address of the partner.
This module supports several map websites:
* `Google Maps <https://www.google.com/maps>`
* `OpenStreetMap <https://www.openstreetmap.org/>`
* `Bing Maps <https://www.bing.com/maps/>`
* `Here Maps <https://www.here.com/>`
* `MapQuest <http://www.mapquest.com/>`
* `Yahoo! Maps <https://maps.yahoo.com/>`
If the module *base_geolocalize* from the official addons is installed on the system, it will use the latitude and longitude to localize the partner (instead of the address) if this information is present on the partner.
Configuration
=============
If you want to create additionnal map websites, go to the menu *Sales > Configuration > Address Book > Localization > Map Websites*. You are invited to send the configuration information of your additionnal map websites to the author of the module, so that the module can be updated with more pre-configured map websites.
Usage
=====
First, you need to configure in your preferences:
* the map website to use for the regular maps,
* the map website to use for the route maps,
* the start address for the route maps.
Then you can use the two new buttons on the partner form to open a regular map or a route map.
Credits
=======
Contributors
------------
* Alexis de Lattre <alexis.delattre@akretion.com>
Maintainer
----------
.. image:: http://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: http://odoo-community.org
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.
To contribute to this module, please visit http://odoo-community.org.

4
partner_external_maps/__init__.py

@ -1,4 +0,0 @@
# -*- encoding: utf-8 -*-
from . import partner_external_maps
from .post_install import set_default_map_settings

43
partner_external_maps/__openerp__.py

@ -1,43 +0,0 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Partner External Maps module for Odoo
# Copyright (C) 2015 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'Partner External Maps',
'version': '8.0.0.1.0',
'category': 'Extra Tools',
'license': 'AGPL-3',
'summary': 'Add Map and Map Routing buttons on partner form to '
'open GMaps, OSM, Bing and others',
'author': 'Akretion,Odoo Community Association (OCA)',
'website': 'http://www.akretion.com',
'depends': ['base'],
'data': [
'partner_view.xml',
'map_website_data.xml',
'map_website_view.xml',
'users_view.xml',
'security/ir.model.access.csv',
],
'post_init_hook': 'set_default_map_settings',
'installable': False,
}

172
partner_external_maps/i18n/partner_external_maps.pot

@ -1,172 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * partner_external_maps
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-06-19 19:55+0000\n"
"PO-Revision-Date: 2015-06-19 19:55+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:116
#, python-format
msgid "Address missing on partner '%s'."
msgstr ""
#. module: partner_external_maps
#: field:map.website,create_uid:0
msgid "Created by"
msgstr ""
#. module: partner_external_maps
#: field:map.website,create_date:0
msgid "Created on"
msgstr ""
#. module: partner_external_maps
#: field:map.website,id:0
msgid "ID"
msgstr ""
#. module: partner_external_maps
#: help:map.website,address_url:0
msgid "In this URL, {ADDRESS} will be replaced by the address."
msgstr ""
#. module: partner_external_maps
#: help:map.website,lat_lon_url:0
msgid "In this URL, {LATITUDE} and {LONGITUDE} will be replaced by the latitude and longitude (requires the module 'base_geolocalize')"
msgstr ""
#. module: partner_external_maps
#: help:map.website,route_address_url:0
msgid "In this URL, {START_ADDRESS} and {DEST_ADDRESS} will be replaced by the start and destination addresses."
msgstr ""
#. module: partner_external_maps
#: help:map.website,route_lat_lon_url:0
msgid "In this URL, {START_LATITUDE}, {START_LONGITUDE}, {DEST_LATITUDE} and {DEST_LONGITUDE} will be replaced by the latitude and longitude of the start and destination adresses (requires the module 'base_geolocalize')."
msgstr ""
#. module: partner_external_maps
#: field:map.website,write_uid:0
msgid "Last Updated by"
msgstr ""
#. module: partner_external_maps
#: field:map.website,write_date:0
msgid "Last Updated on"
msgstr ""
#. module: partner_external_maps
#: view:res.partner:partner_external_maps.view_partner_form
msgid "Map"
msgstr ""
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_map_website
#: view:map.website:partner_external_maps.map_website_form
#: field:res.users,context_map_website_id:0
msgid "Map Website"
msgstr ""
#. module: partner_external_maps
#: field:map.website,name:0
msgid "Map Website Name"
msgstr ""
#. module: partner_external_maps
#: model:ir.actions.act_window,name:partner_external_maps.map_website_action
#: model:ir.ui.menu,name:partner_external_maps.map_website_menu
#: view:map.website:partner_external_maps.map_website_tree
msgid "Map Websites"
msgstr ""
#. module: partner_external_maps
#: help:res.users,context_route_map_website_id:0
msgid "Map provided used when you click on the car icon on the partner form to display an itinerary."
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:134
#, python-format
msgid "Missing map provider: you should set it in your preferences."
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:148
#, python-format
msgid "Missing parameter 'URL that uses the address' for map website '%s'."
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:187
#, python-format
msgid "Missing route URL that uses the addresses for the map website '%s'"
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:163
#, python-format
msgid "Missing route map website: you should set it in your preferences."
msgstr ""
#. module: partner_external_maps
#: code:addons/partner_external_maps/partner_external_maps.py:168
#, python-format
msgid "Missing start address for route map: you should set it in your preferences."
msgstr ""
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_res_partner
msgid "Partner"
msgstr ""
#. module: partner_external_maps
#: view:res.partner:partner_external_maps.view_partner_form
msgid "Route Map"
msgstr ""
#. module: partner_external_maps
#: field:res.users,context_route_map_website_id:0
msgid "Route Map Website"
msgstr ""
#. module: partner_external_maps
#: field:map.website,route_lat_lon_url:0
msgid "Route URL that uses latitude and longitude"
msgstr ""
#. module: partner_external_maps
#: field:map.website,route_address_url:0
msgid "Route URL that uses the addresses"
msgstr ""
#. module: partner_external_maps
#: field:res.users,context_route_start_partner_id:0
msgid "Start Address for Route Map"
msgstr ""
#. module: partner_external_maps
#: field:map.website,lat_lon_url:0
msgid "URL that uses latitude and longitude"
msgstr ""
#. module: partner_external_maps
#: field:map.website,address_url:0
msgid "URL that uses the address"
msgstr ""
#. module: partner_external_maps
#: model:ir.model,name:partner_external_maps.model_res_users
msgid "Users"
msgstr ""

210
partner_external_maps/partner_external_maps.py

@ -1,210 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Partner External Maps module for Odoo
# Copyright (C) 2015 Akretion (http://www.akretion.com/)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import models, fields, api, _
from openerp.exceptions import Warning
import logging
logger = logging.getLogger(__name__)
class MapWebsite(models.Model):
_name = 'map.website'
_description = 'Map Website'
name = fields.Char(string='Map Website Name', required=True)
address_url = fields.Char(
string='URL that uses the address',
help="In this URL, {ADDRESS} will be replaced by the address.")
lat_lon_url = fields.Char(
string='URL that uses latitude and longitude',
help="In this URL, {LATITUDE} and {LONGITUDE} will be replaced by "
"the latitude and longitude (requires the module 'base_geolocalize')")
route_address_url = fields.Char(
string='Route URL that uses the addresses',
help="In this URL, {START_ADDRESS} and {DEST_ADDRESS} will be "
"replaced by the start and destination addresses.")
route_lat_lon_url = fields.Char(
string='Route URL that uses latitude and longitude',
help="In this URL, {START_LATITUDE}, {START_LONGITUDE}, "
"{DEST_LATITUDE} and {DEST_LONGITUDE} will be replaced by the "
"latitude and longitude of the start and destination adresses "
"(requires the module 'base_geolocalize').")
class ResUsers(models.Model):
_inherit = 'res.users'
@api.model
def _default_map_website(self):
map_website = self.env['map.website'].search([
'|', ('address_url', '!=', False), ('lat_lon_url', '!=', False)],
limit=1)
return map_website
@api.model
def _default_route_map_website(self):
map_route_website = self.env['map.website'].search([
'|',
('route_address_url', '!=', False),
('route_lat_lon_url', '!=', False)], limit=1)
return map_route_website
# begin with context_ to allow user to change it by himself
context_map_website_id = fields.Many2one(
'map.website', string='Map Website',
domain=[
'|', ('address_url', '!=', False), ('lat_lon_url', '!=', False)],
default=_default_map_website)
# We want to give the possibility to the user to have one map provider for
# regular maps and another one for routing
context_route_map_website_id = fields.Many2one(
'map.website', string='Route Map Website',
domain=[
'|',
('route_address_url', '!=', False),
('route_lat_lon_url', '!=', False)],
default=_default_route_map_website,
help="Map provided used when you click on the car icon on the partner "
"form to display an itinerary.")
context_route_start_partner_id = fields.Many2one(
'res.partner', string='Start Address for Route Map')
@api.model
def _default_map_settings(self):
"""Method called from post-install script
I can't use a default method on the field, because it would be executed
before loading map_website_data.xml, so it would not be able to set a
value"""
users = self.env['res.users'].search([])
map_website = self._default_map_website()
map_route_website = self._default_route_map_website()
logger.info('Updating user settings for maps...')
for user in users:
user.write({
'context_map_website_id': map_website.id or False,
'context_route_map_website_id': map_route_website.id or False,
'context_route_start_partner_id': user.partner_id.id or False,
})
class ResPartner(models.Model):
_inherit = 'res.partner'
@api.model
def _address_as_string(self):
addr = []
if self.street:
addr.append(self.street)
if self.street2:
addr.append(self.street2)
if self.city:
addr.append(self.city)
if self.state_id:
addr.append(self.state_id.name)
if self.country_id:
addr.append(self.country_id.name)
if not addr:
raise Warning(
_("Address missing on partner '%s'.") % self.name)
address = ' '.join(addr)
return address
@api.model
def _prepare_url(self, url, replace):
assert url, 'Missing URL'
for key, value in replace.iteritems():
if not isinstance(value, (str, unicode)):
# for latitude and longitude which are floats
value = unicode(value)
url = url.replace(key, value)
logger.debug('Final URL: %s', url)
return url
@api.multi
def open_map(self):
if not self.env.user.context_map_website_id:
raise Warning(
_('Missing map provider: '
'you should set it in your preferences.'))
map_website = self.env.user.context_map_website_id
if (
map_website.lat_lon_url and
hasattr(self, 'partner_latitude') and
self.partner_latitude and self.partner_longitude):
url = self._prepare_url(
map_website.lat_lon_url, {
'{LATITUDE}': self.partner_latitude,
'{LONGITUDE}': self.partner_longitude})
else:
if not map_website.address_url:
raise Warning(
_("Missing parameter 'URL that uses the address' "
"for map website '%s'.") % map_website.name)
url = self._prepare_url(
map_website.address_url,
{'{ADDRESS}': self._address_as_string()})
return {
'type': 'ir.actions.act_url',
'url': url,
'target': 'new',
}
@api.multi
def open_route_map(self):
if not self.env.user.context_route_map_website_id:
raise Warning(
_('Missing route map website: '
'you should set it in your preferences.'))
map_website = self.env.user.context_route_map_website_id
if not self.env.user.context_route_start_partner_id:
raise Warning(
_('Missing start address for route map: '
'you should set it in your preferences.'))
start_partner = self.env.user.context_route_start_partner_id
if (
map_website.route_lat_lon_url and
hasattr(self, 'partner_latitude') and
self.partner_latitude and
self.partner_longitude and
start_partner.partner_latitude and
start_partner.partner_longitude):
url = self._prepare_url(
map_website.route_lat_lon_url, {
'{START_LATITUDE}': start_partner.partner_latitude,
'{START_LONGITUDE}': start_partner.partner_longitude,
'{DEST_LATITUDE}': self.partner_latitude,
'{DEST_LONGITUDE}': self.partner_longitude})
else:
if not map_website.route_address_url:
raise Warning(
_("Missing route URL that uses the addresses "
"for the map website '%s'") % map_website.name)
url = self._prepare_url(
map_website.route_address_url, {
'{START_ADDRESS}': start_partner._address_as_string(),
'{DEST_ADDRESS}': self._address_as_string()})
return {
'type': 'ir.actions.act_url',
'url': url,
'target': 'new',
}

28
partner_external_maps/post_install.py

@ -1,28 +0,0 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Partner Address on Map module for Odoo
# Copyright (C) 2015 Akretion (http://www.akretion.com)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import SUPERUSER_ID
def set_default_map_settings(cr, pool):
pool['res.users']._default_map_settings(cr, SUPERUSER_ID)
return

BIN
partner_external_maps/static/description/icon.png

Before

Width: 128  |  Height: 128  |  Size: 9.2 KiB

Loading…
Cancel
Save