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
- Kế toán
- Tồn kho
- PoS
- Project
- MRP
Câu hỏi này đã bị gắn cờ
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)
}
});
Bạn có hứng thú với cuộc thảo luận không? Đừng chỉ đọc, hãy tham gia nhé!
Tạo tài khoản ngay hôm nay để tận hưởng các tính năng độc đáo và tham gia cộng đồng tuyệt vời của chúng tôi!
Đăng kýBài viết liên quan | Trả lời | Lượt xem | Hoạt động | |
---|---|---|---|---|
|
0
thg 8 20
|
3356 | ||
|
1
thg 2 22
|
2857 | ||
Qweb variable operation: index +=1
Đã xử lý
|
|
1
thg 4 21
|
9361 | |
t-att-href url get error
Đã xử lý
|
|
2
thg 4 23
|
8585 | |
|
2
thg 10 22
|
5728 |