Se rendre au contenu

Odoo Owl : Passer des infos de session au composant


Controller

Dans le contrôleur de l'app standalone, il faut passer les paramètres dans la structure "session_info":

class MonAppController(http.Controller):


    @http.route("/mon_module/mon_app/<id_>", auth="public", website=True)

    def mon_app(self, id_):

        return request.render(

            'mon_module.mon_app',

            {

                "session_info": {

                    **request.env["ir.http"].get_frontend_session_info(),

                    'mon_param': mon_param,

                }

            }

        )


Component

Dans le composant JS de votre app, il faut importer session de @web/session  cela vous donnera accès à votre objet de session avec le(s) paramètre(s) supplémentaires.

Dans l'exemple ici, je récupère la session et je met mon paramètre dans mon state, mais il pourrait être mis dans les props aussi.

 ​

/** @odoo-module **/

import { session } from "@web/session";

import { Component, useState, onMounted, onWillUnmount, xml } from "@odoo/owl";



export class Root extends Component {

    static template = "mon_module.Root";

    static components = { };

    static props = { };


    setup() {

​ // on récupère la session

        this.session = session;


        // useState : objet mutable qui déclenche le re-render

        const state = useState({

          MonParam: this.session.mon_param

        });



Odoo Owl : Passer des infos de session au composant
LCSX Tech, Cossiaux Laurent 26 janvier 2025
Partager cet article
Étiquettes
Se connecter pour laisser un commentaire.
⚙️Custom Odoo: Supprimer la couleur d'entête du blog
En fonction de la configuration de votre site, le blog peut parfois refléter les couleurs de l'en-tête de manière inattendue, ce qui peut nuire à l'esthétique de votre page. Avec ce module, vous avez la possibilité d'assurer une présentation harmonieuse et professionnelle.