I'm attempting to add information to the template stock_barcode_lines_template. I have the xml for the template written and showing in the view.
<?xml version="1.0" encoding="utf-8"?>
<templates id="template" xml:space="preserve">
<t t-extend="stock_barcode_lines_template">
<t t-jquery='.o_barcode_line_details' t-operation='append'>
<div>
<span class="o_line_rack_name" t-esc="'Rack: '"/>
<span class="o_line_rack_value" t-esc="line.rack"/>
<span class="o_line_shelf_name" t-esc="'Shelf: '"/>
<span class="o_line_shelf_value" t-esc="line.shelf"/>
<span class="o_line_bin_name" t-esc="'Bin: '"/>
<span class="o_line_bin_value" t-esc="line.bin"/>
</div>
</t>
</t>
</templates>
and the following Javascript will add the information into the line dict
LinesWidget.include({
getProductLines: function(lines){
var self = this
lines.forEach(function(line){
self._rpc({
model: 'stock.move.line',
method: 'get_rack_bin',
args: [line,line.id],
}).then(function(result){
line.rack = result.rack;
line.shelf = result.shelf;
line.bin = result.bin;
});
});
return self._super(lines)
}
});
however when I put `<t t-log="line.bin"/>` (or rack or shelf) in the template it is logging as undefined however when I put `<t t-log="line"/>` in the template, the new data is in the dict.
bin: "11"
display_name: "[HJ-PCKRD-100-03] Hi Juku - Puckered (3 mg)"
dummy_id: false
id: 149541
location_dest_id: {id: 9, display_name: "Partner Locations/Customers"}
location_id: {id: 49, display_name: "ModFu/Stock"}
lot_id: false
lot_name: false
owner_id: false
package_id: false
product_barcode: "853668007979"
product_id: {id: 5429, barcode: "853668007979", tracking: "none"}
product_uom_id: (2) [1, "Unit(s)"]
length: 2
__proto__: Array(0)
product_uom_qty: 30
qty_done: 0
rack: "38.11"
result_package_id: false
shelf: "B"
How can I successfully pull the information from the dict?
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project management
- MRP
This question has been flagged
It's because the self._rpc request is a promise request (not provided immediately while the code is running.
As workaround I use name each span with a unique id then once the _rpc request is fullfiled you update the value.
try:
<?xml version="1.0" encoding="utf-8"?>
<templates id="template" xml:space="preserve">
<t t-extend="stock_barcode_lines_template">
<t t-jquery='.o_barcode_line_details' t-operation='append'>
<div>
<span class="o_line_rack_name" t-esc="'Rack: '"/>
<span class="o_line_rack_value" t-esc="line.rack" t-att-id="'rack' + line.id"/>
<span class="o_line_shelf_name" t-esc="'Shelf: '"/>
<span class="o_line_shelf_value" t-esc="line.shelf" t-att-id="'shelf' + line.id"/>
<span class="o_line_bin_name" t-esc="'Bin: '"/>
<span class="o_line_bin_value" t-esc="line.bin" t-att-id="'bin' + line.id"/>
</div>
</t>
</t>
</templates>
Then for javascript:
LinesWidget.include({
getProductLines: function(lines){
var self = this
lines.forEach(function(line){
self._rpc({
model: 'stock.move.line',
method: 'get_rack_bin',
args: [line,line.id],
}).then(function(result){
var span_rack = document.getElementById('rack' + line.id);
span_rack.innerHTML = result.rack
var span_shelf = document.getElementById('shelf' + line.id);
span_shelf.innerHTML = result.shelf
var span_bin = document.getElementById('bin' + line.id);
span_bin.innerHTML = result.bin
});
});
return self._super(lines)
}
});
Enjoying the discussion? Don't just read, join in!
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
|
0
Aug 20
|
2358 | ||
|
1
Feb 22
|
1985 | ||
|
1
Apr 21
|
7959 | ||
t-att-href url get error
Solved
|
|
2
Apr 23
|
6964 | |
|
2
Oct 22
|
4551 |