2017-08-08 1 views
2

Dans Odoo/openerp docs et il est dit que 'les actions du client' sont entièrement implémentées côté client c'est tout. ils ne fournissent aucun exemple de documentation détaillée à ce sujet pour Odoo v10.Action du client dans Odoo

Est-ce que quelqu'un a une idée précise de la façon de mettre en œuvre l'action du client et son plein potentiel. (possibilités que nous pouvons implémenter avec les actions du client.)

Répondre

1

Les actions du client sont essentiellement des éléments de menu définis dans xml et les actions correspondantes sont mappées à un widget.

Voici la mise en œuvre des actions du client:

Votre fichier XML contient le code suivant:

<record id="some-report-client-action" model="ir.actions.client"> 
    <field name="name">Report Page</field> 
    <field name="tag">report.report_page</field> 
</record> 

<menuitem id="some-report-menuitem" name="Some" parent="pdf_report" 
       action="some-report-client-action"/> 

Créez un fichier js pour créer un widget. Il contiendra le code suivant:

openerp.guard_payments = function(instance, local) { 
var _t = instance.web._t, 
    _lt = instance.web._lt; 
var QWeb = instance.web.qweb; 

local.HomePage = instance.Widget.extend({ 
    template: 'MyQWebTemplate', 
    init: function(parent, options){ 
     this._super.apply(this, arguments); 
     this.name=parent.name; 
    }, 
    start: function() { 
     this._super.apply(this, arguments); 
     console.log('Widget Start') 
    }, 
}); 

//Following code will attach the above widget to the defined client action 

instance.web.client_actions.add('report.report_page', 'instance.guard_payments.HomePage'); 
} 

Comme vous pouvez le voir, nous pouvons créer un modèle QWEB entièrement personnalisée et d'ajouter une fonctionnalité à elle.

En gros, cela la meilleure partie fournie par Odoo

+0

Merci pour votre réponse. Je travaille en v10 implémenté l'action client pour mais en faisant face à un autre problème> modèle que mon rendu de widget je ne suis pas en mesure d'obtenir les valeurs que je lui passe (comme params ou toute variable que je mets dans la méthode init de widget) une idée à ce sujet ?! – DexJ

+0

Toute variable que vous déclarez dans la méthode init sera disponible pour d'autres méthodes utilisant le mot clé 'this'. Si vous voulez que la variable soit disponible dans la vue, vous devrez la passer explicitement à la vue comme 'Qweb.render ('MyTemplate', {'variable1': this.variable1})' –