Skip to content
Extraits de code Groupes Projets
Valider f34b6752 rédigé par Thibaud - Le Filament's avatar Thibaud - Le Filament
Parcourir les fichiers

[ADD] added route with controller for partner API exposition

parent 274672c6
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!1Partners endpoint exposition for carto purpose
# Copyright 2021 Le Filament (https://le-filament.com) # Copyright 2021 Le Filament (https://le-filament.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
from . import FolderName from . import controllers
# Copyright 2021 Le Filament (https://le-filament.com) # Copyright 2021 Le Filament (https://le-filament.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
from . import ModelName from . import res_partner
# © 2023 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import hashlib
import json
from odoo import fields, http
from odoo.http import request
class PartnerController(http.Controller):
@http.route(
["/alter/partners"],
type="http",
auth="public",
method=["GET"],
website=False,
sitemap=False,
)
def partner_list(self, **kwargs):
print(request)
domain = [
("is_incubated", "=", True),
("project_state", "in", ["0_pre", "1_incub", "9_done"]),
]
partners = request.env["res.partner"].sudo().search(domain)
partners_mapped = partners.mapped(
lambda p: {
"title": p.name,
"description": p.summary,
"theme": p.sector_id.name,
"start_date": fields.Datetime.to_string(p.start_date),
"department": p.department_id.mapped(
lambda d: {
"name": d.name,
"code": d.code,
"area": d.area_id.name,
"display_name": d.display_name,
}
),
"region": "To be defined",
"city": p.city,
"website": p.website,
"logo": p.image_1920,
"mail": p.email,
"tel": p.phone,
}
)
result = partners_mapped
if "checksum" in kwargs:
h = hashlib.sha256()
h.update(",".join(map(str, partners_mapped)).encode("utf-8"))
checksum_dict = {"checksum": h.hexdigest()}
result = checksum_dict
print(http.Root.nodb_routing_map)
return request.make_response(
data=json.dumps(result),
headers=[("Content-Type", "application/json")],
)
# Copyright 2021 Le Filament (https://le-filament.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
from odoo import api, fields, models
class ModelName(models.Model):
_name = "ProjectName.TableName"
_description = "Description"
# ------------------------------------------------------
# Fields declaration
# ------------------------------------------------------
# ------------------------------------------------------
# SQL Constraints
# ------------------------------------------------------
# ------------------------------------------------------
# Default methods
# ------------------------------------------------------
# ------------------------------------------------------
# Computed fields / Search Fields
# ------------------------------------------------------
# ------------------------------------------------------
# Onchange / Constraints
# ------------------------------------------------------
# ------------------------------------------------------
# CRUD methods (ORM overrides)
# ------------------------------------------------------
# ------------------------------------------------------
# Actions
# ------------------------------------------------------
# ------------------------------------------------------
# Business methods
# ------------------------------------------------------
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter