diff options
| author | Richard Sassine <richardsassine@tutanota.com> | 2021-05-04 18:00:38 +0300 |
|---|---|---|
| committer | Richard Sassine <richardsassine@tutanota.com> | 2021-05-04 18:00:38 +0300 |
| commit | ad97722b1b35aff50d0adf13a19715f7b8373c07 (patch) | |
| tree | edf36f1114b896a01602e31dafd74efe45736427 /partner_external_map/models/res_users.py | |
initial commit
Diffstat (limited to 'partner_external_map/models/res_users.py')
| -rw-r--r-- | partner_external_map/models/res_users.py | 66 |
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 |
