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
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
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})' –