From 15863aedb5b4ab8c8e245b44d3c6c4b5727bed4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Wed, 25 Nov 2020 16:34:08 +0100 Subject: [PATCH] Creation module partner_gogocarto_export_api --- partner_gogocarto_export_api/__init__.py | 2 + partner_gogocarto_export_api/__manifest__.py | 20 +++++ .../controllers/__init__.py | 1 + .../controllers/main.py | 23 ++++++ .../models/__init__.py | 2 + .../models/res_config_settings.py | 39 +++++++++ .../models/res_partner.py | 74 ++++++++++++++++++ .../readme/CONFIGURE.rst | 8 ++ .../readme/CONTRIBUTORS.rst | 13 +++ .../readme/CREDITS.rst | 1 + .../readme/DESCRIPTION.rst | 6 ++ .../static/description/icon.png | Bin 0 -> 52726 bytes .../views/gogocarto_config_settings_view.xml | 43 ++++++++++ .../views/gogocarto_partner.xml | 14 ++++ 14 files changed, 246 insertions(+) create mode 100644 partner_gogocarto_export_api/__init__.py create mode 100644 partner_gogocarto_export_api/__manifest__.py create mode 100644 partner_gogocarto_export_api/controllers/__init__.py create mode 100644 partner_gogocarto_export_api/controllers/main.py create mode 100644 partner_gogocarto_export_api/models/__init__.py create mode 100644 partner_gogocarto_export_api/models/res_config_settings.py create mode 100644 partner_gogocarto_export_api/models/res_partner.py create mode 100644 partner_gogocarto_export_api/readme/CONFIGURE.rst create mode 100644 partner_gogocarto_export_api/readme/CONTRIBUTORS.rst create mode 100644 partner_gogocarto_export_api/readme/CREDITS.rst create mode 100644 partner_gogocarto_export_api/readme/DESCRIPTION.rst create mode 100644 partner_gogocarto_export_api/static/description/icon.png create mode 100644 partner_gogocarto_export_api/views/gogocarto_config_settings_view.xml create mode 100644 partner_gogocarto_export_api/views/gogocarto_partner.xml diff --git a/partner_gogocarto_export_api/__init__.py b/partner_gogocarto_export_api/__init__.py new file mode 100644 index 000000000..19240f4ea --- /dev/null +++ b/partner_gogocarto_export_api/__init__.py @@ -0,0 +1,2 @@ +from . import controllers +from . import models \ No newline at end of file diff --git a/partner_gogocarto_export_api/__manifest__.py b/partner_gogocarto_export_api/__manifest__.py new file mode 100644 index 000000000..814eb2207 --- /dev/null +++ b/partner_gogocarto_export_api/__manifest__.py @@ -0,0 +1,20 @@ +{ + 'name': 'partner_gogocarto_export_api', + 'summary': '''HTTP JSON api to send partner data for Gogocarto import''', + 'license': 'AGPL-3', + 'author': 'Lokavaluto', + 'website': 'https://lokavaluto.fr', + 'category': 'Localization', + 'version': '12.0.1.0.0', + 'depends': [ + 'base', + 'base_geolocalize' + ], + 'data': [ + 'views/gogocarto_partner.xml', + 'views/gogocarto_config_settings_view.xml', + ], + 'demo': [], + 'installable': True, + 'auto_install': False, +} diff --git a/partner_gogocarto_export_api/controllers/__init__.py b/partner_gogocarto_export_api/controllers/__init__.py new file mode 100644 index 000000000..deec4a8b8 --- /dev/null +++ b/partner_gogocarto_export_api/controllers/__init__.py @@ -0,0 +1 @@ +from . import main \ No newline at end of file diff --git a/partner_gogocarto_export_api/controllers/main.py b/partner_gogocarto_export_api/controllers/main.py new file mode 100644 index 000000000..b689bd3e1 --- /dev/null +++ b/partner_gogocarto_export_api/controllers/main.py @@ -0,0 +1,23 @@ +import json, logging + +from odoo import http, models, fields, api +from odoo.http import Response, request + +_logger = logging.getLogger(__name__) + +class PartnerGogocartojs(http.Controller): + + @http.route('/web/get_http_gogocarto_elements',methods=['GET'], type='http', csrf=False, auth="public", website=True) + def get_gogocarto_elements_http(self): + data = self._get_partner() + return Response(json.dumps(data)) + + def _get_partner(self): + data = [] + all_partner = request.env['res.partner'].sudo() + partners = all_partner.search(all_partner._get_gogocarto_domain()) + all_partner.debug_field_exported() + for partner in partners: + data.append(partner.gogocarto_serialization()) + return data + diff --git a/partner_gogocarto_export_api/models/__init__.py b/partner_gogocarto_export_api/models/__init__.py new file mode 100644 index 000000000..cf2bdc202 --- /dev/null +++ b/partner_gogocarto_export_api/models/__init__.py @@ -0,0 +1,2 @@ +from . import res_partner +from . import res_config_settings \ No newline at end of file diff --git a/partner_gogocarto_export_api/models/res_config_settings.py b/partner_gogocarto_export_api/models/res_config_settings.py new file mode 100644 index 000000000..7a070e36e --- /dev/null +++ b/partner_gogocarto_export_api/models/res_config_settings.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +import logging +from ast import literal_eval +from odoo import api, fields, models + +_logger = logging.getLogger(__name__) + +class ResConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' + + gogocarto_map_url = fields.Char(readonly=False) + export_gogocarto_fields = fields.Many2many('ir.model.fields', 'export_field_rel', 'export_id', 'fields_id', + domain="[""('model_id', '=', 'res.partner')\ + ,('name', 'not in', ('name','partner_longitude','partner_latitude'))""]", + readonly=False) + + @api.model + def get_values(self): + res = super(ResConfigSettings, self).get_values() + ICPSudo = self.env['ir.config_parameter'].sudo() + gogocarto_map_url = ICPSudo.get_param('gogocarto_export_api.gogocarto_map_url') + export_gogocarto_fields = ICPSudo.get_param('gogocarto_export_api.export_gogocarto_fields') if ICPSudo.get_param('gogocarto_export_api.export_gogocarto_fields') else "[]" + res.update( + gogocarto_map_url=gogocarto_map_url, + export_gogocarto_fields= [(6, 0, literal_eval(export_gogocarto_fields))] + ) + return res + + @api.multi + def set_values(self): + res = super(ResConfigSettings, self).set_values() + ICPSudo = self.env['ir.config_parameter'] + ICPSudo.set_param('gogocarto_export_api.gogocarto_map_url',self.gogocarto_map_url) + ICPSudo.set_param('gogocarto_export_api.export_gogocarto_fields',self.export_gogocarto_fields.ids) + return res + + + + diff --git a/partner_gogocarto_export_api/models/res_partner.py b/partner_gogocarto_export_api/models/res_partner.py new file mode 100644 index 000000000..433d8c51b --- /dev/null +++ b/partner_gogocarto_export_api/models/res_partner.py @@ -0,0 +1,74 @@ +from odoo import models, fields, api +from ast import literal_eval +import logging +_logger = logging.getLogger(__name__) + + +class ResPartner(models.Model): + """ Inherits partner, adds Gogocarto fields in the partner form, and functions""" + _inherit = 'res.partner' + + in_gogocarto = fields.Boolean('In gogocarto') + + def _get_gogocarto_domain(self): # To OVERRIDE in sub_modules to customize the partner selection + return [('in_gogocarto','=',True) + ,('partner_longitude', '!=', float()) + ,('partner_latitude', '!=', float()) + ] + + def _get_industry_label(self): + if self.industry_id: + return self.industry_id.name + else: + return '' + + + ############################################ + #region Public method for JSON Serialization + ############################################ + def gogocarto_serialization(self): + element = {} + + self._add_simple_node(element, "name") + self._add_simple_node(element, "partner_longitude") + self._add_simple_node(element, "partner_latitude") + + return self.add_fields(element, self._get_export_fields()) + + + def add_fields(self, element, export_fields): # To OVERRIDE in sub_modules to customize the fields content + for field in export_fields: + if field.name == "industry_id": + self._add_computed_node(element, "industry_id", self._get_industry_id_label) + else: + self._add_simple_node(element, field.name) + return element + #endregion + + + ############################################ + #region Private method to JSON Serialization + ############################################ + def _get_export_fields(self): + ICPSudo = self.env['ir.config_parameter'].sudo() + export_field_ids = literal_eval(ICPSudo.get_param('gogocarto_export_api.export_gogocarto_fields')) + export_fields = self.env['ir.model.fields'].search([('model_id', '=', 'res.partner'),('id','in', export_field_ids)]) + return export_fields + + def _add_simple_node(self, element, fieldName): + if getattr(self, fieldName): + element[fieldName] = self[fieldName] + + def _add_computed_node(self, element, fieldLabel, specificMethod): + element[fieldLabel] = specificMethod() + #endregion + + + ################################################# + #region Public method to debug JSON Serialization + ################################################# + def debug_field_exported(self): + _logger.debug("List of field exported for gogoCarto:") + for field in self._get_export_fields(): + _logger.debug(field.name) + #endregion \ No newline at end of file diff --git a/partner_gogocarto_export_api/readme/CONFIGURE.rst b/partner_gogocarto_export_api/readme/CONFIGURE.rst new file mode 100644 index 000000000..963dbf462 --- /dev/null +++ b/partner_gogocarto_export_api/readme/CONFIGURE.rst @@ -0,0 +1,8 @@ +Just install partner_gogocarto_export_api, all dependencies will be installed by default. + +To export partners data: + +#. Set the fields you want to export in Settings / Gogocarto. +#. Check the field *"In Gogocarto"* in the partner form view. + +And use the link *https://yourodoo.com/web/get_http_gogocarto_elements* in Gogocarto server import configuration (*https://video.colibris-outilslibres.org/videos/watch/c74fc469-c822-4ab8-82a7-a2555e49e576*) \ No newline at end of file diff --git a/partner_gogocarto_export_api/readme/CONTRIBUTORS.rst b/partner_gogocarto_export_api/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..73fcf60b1 --- /dev/null +++ b/partner_gogocarto_export_api/readme/CONTRIBUTORS.rst @@ -0,0 +1,13 @@ +* Stéphan SAINLEGER +* Chloé Migayrou +* Nicolas Jeudy +* Lokavaluto Teams + +Funders +------- + +The development of this module has been financially supported by: + +* Lokavaluto (https://lokavaluto.fr) +* Mycéliandre (https://myceliandre.fr) +* Elabore (https://elabore.coop) \ No newline at end of file diff --git a/partner_gogocarto_export_api/readme/CREDITS.rst b/partner_gogocarto_export_api/readme/CREDITS.rst new file mode 100644 index 000000000..63e6554be --- /dev/null +++ b/partner_gogocarto_export_api/readme/CREDITS.rst @@ -0,0 +1 @@ +* Lokavaluto: `Icon ` \ No newline at end of file diff --git a/partner_gogocarto_export_api/readme/DESCRIPTION.rst b/partner_gogocarto_export_api/readme/DESCRIPTION.rst new file mode 100644 index 000000000..0c284caf3 --- /dev/null +++ b/partner_gogocarto_export_api/readme/DESCRIPTION.rst @@ -0,0 +1,6 @@ +Gogocarto Export module, to export the partner data needed for a Gogocarto map. + +This module allow the users to decide: + +* the partner to be exported +* the fields exported for each partner (*name*, *partner_longitude* and *partner_lattitude* automatically exported) diff --git a/partner_gogocarto_export_api/static/description/icon.png b/partner_gogocarto_export_api/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1092a370f013e9a8171569a9d4098604b49ca216 GIT binary patch literal 52726 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 literal 0 HcmV?d00001 diff --git a/partner_gogocarto_export_api/views/gogocarto_config_settings_view.xml b/partner_gogocarto_export_api/views/gogocarto_config_settings_view.xml new file mode 100644 index 000000000..7591f2848 --- /dev/null +++ b/partner_gogocarto_export_api/views/gogocarto_config_settings_view.xml @@ -0,0 +1,43 @@ + + + + res.config.settings.view.form.inherit.gogocarto + res.config.settings + + + + +
+

Gogocarto export configuration

+
+
+
+
+ URL of your Gogocarto map, to be displayed in Odoo main menu +
+
+
+
+
+
+
+
+
+
+ Partner fields to export for Gogocarto map +
+
+
+ +
+
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/partner_gogocarto_export_api/views/gogocarto_partner.xml b/partner_gogocarto_export_api/views/gogocarto_partner.xml new file mode 100644 index 000000000..b42f95f54 --- /dev/null +++ b/partner_gogocarto_export_api/views/gogocarto_partner.xml @@ -0,0 +1,14 @@ + + + + partner.gogocarto.form + res.partner + + 300 + + + + + + + \ No newline at end of file