Assistenza

0

Odoo11 help with js please

Avatar
Thibaud

Hello,


I used to have this working code with Odoo 9. But now with the 11 it doesnt  work anymore because error to get the model.


Can you help me to translate the code below, how to call a model ??

I know i should use rpc but I didn't find any working code with my case.


The code :

odoo.define('app_ca.index'function (require) {
    "use strict";
    var Model = require('web.rpc')
    console.log($(document));
    var hist_model = new Model('app.history')
    var hist_officecentral_model = new Model('app.history.officecentral')
    var purchase_orderline_model = new Model('purchase.order.line')

    $(document).on('click'function() {
        // on click
        var domElement = $(event.target).val();
        console.log('d,os,fs,fs'domElement);
        if (domElement) {
            // change n values
            hist_model.call('get_values', [domElement], {}).then(function(result){
                // console.log(result);
                if ($('[title="Article"]')[0] !== undefined) {
                    $('[title="Article"]')[0].innerText = result['product_id']
                }
                if ($('[title="M"]')[0] !== undefined) {
                    $('[title="M"]')[0].innerText = result['m0']
                }
                for (var i = 1i<13i++) {
                    if ($('[title="M-' + i + '"]')[0] !== undefined) {
                        $('[title="M-' + i + '"]')[0].innerText = result['n' + i]
                    }
                }
            });
            // change n id
            hist_model.call('get_month', [], {}).then(function(result) {
                for (var i = 0i<13i++) {
                    if($('[data-id="m'+i+'"]')[0] !== undefined) {
                        $('[data-id="m'+i+'"]')[0].innerText = result[i]
                    }
                }
            });
        }
    });
1 commento
Avatar
Abbandona
Avatar
Thibaud
-

I forgot to thanks you a lot!!!!

1 risposta
1
Avatar
Coding Dodo
Best Answer

Hello, you cannot make "new Model" from the "web.rpc" module now. Actually, in v11 the whole Model class is deprecated in JavaScript and hidden the web/static/src/js/_deprecated/data.js file (not even exported).

With web.rpc you directly query your models on the method you want with args and kwargs. Try this to correct your code:

odoo.define("app_ca.index", function (require) {
  "use strict";
  var rpc = require("web.rpc");
  console.log($(document));
  $(document).on("click", function () {
    // on click
    var domElement = $(event.target).val();
    console.log("d,os,fs,fs", domElement);
    if (domElement) {
      // change n values
      rpc.query({
        model: "app.history",
        method: "get_values",
        args: [domElement],
      }).then(function (result) {
        // console.log(result);
        if ($('[title="Article"]')[0] !== undefined) {
         $('[title="Article"]')[0].innerText = result["product_id"];
        }
        if ($('[title="M"]')[0] !== undefined) {
         $('[title="M"]')[0].innerText = result["m0"];
        }
        for (var i = 1; i < 13; i++) {
         if ($('[title="M-' + i + '"]')[0] !== undefined) {
         $('[title="M-' + i + '"]')[0].innerText = result["n" + i];
         }
        }
      });
      // change n id
      rpc.query({
        model: "app.history",
        method: "get_month",
        args: [],
      }).then(function (result) {
        for (var i = 0; i < 13; i++) {
         if ($('[data-id="m' + i + '"]')[0] !== undefined) {
           $('[data-id="m' + i + '"]')[0].innerText = result[i];
         }
        }
      });
    }
  });
});

Good luck

Avatar
Abbandona