summaryrefslogtreecommitdiff
path: root/partner_external_map/models/res_users.py
diff options
context:
space:
mode:
Diffstat (limited to 'partner_external_map/models/res_users.py')
-rw-r--r--partner_external_map/models/res_users.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/partner_external_map/models/res_users.py b/partner_external_map/models/res_users.py
new file mode 100644
index 0000000..248f397
--- /dev/null
+++ b/partner_external_map/models/res_users.py
@@ -0,0 +1,66 @@
+# Copyright 2015 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
+# Copyright 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
+# Copyright 2016 Pedro M. Baeza <pedro.baeza@tecnativa.com>
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+import logging
+
+from odoo import api, fields, models
+
+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