Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
6193 Lượt xem

I'm using odoo v8 and I had create a new module to develop specific feature for my company.

My goal is to add an additional column in product template variant list (only on the display view not when editing or creating attribute) (http://www.files.com/image/58121ec64bf47/print1.png).

This column which contain the unit of measure of attribut was defined on product attribute configuration (http://www.files.com/image/5812239446f0f/print2.png).

I have identified that the field name I need to update is attribute_line_ids, it's right ? 


Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

First you have to add a field uom_id to product.attribute.line class, and also you have to write a default function to get the value of uom with respect to product template. Also you have to mention the uom_id in tree view inside the product_view.xml .

Ảnh đại diện
Huỷ bỏ
Tác giả Câu trả lời hay nhất

I don't want to add uom on product attribute line but on product attribute (because uom is the same for each attribute line). To do that I had already code py file:

# -*- coding: utf-8 -*-
from openerp import models, fields
class ProductAttribute(models.Model):
    _name = 'product.attribute'
    _inherit = 'product.attribute'
    uom_id = fields.Many2one('product.uom', 'Unit of Measure')

and the follow xml code:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
    <!-- Unit of Measure on Attributes Configuration -->
    <record id="attribute_uom_tree_view" model="ir.ui.view">
   <field name="name">product.attribute.tree.type</field>
        <field name="model">product.attribute</field>
        <field name="inherit_id" ref="product.attribute_tree_view"/>
            <field name="arch" type="xml">
            <field name="name" position="after">
                <field name="uom_id"/>
            </field>
        </field>
    </record>
</data>
</openerp>

 Now (in my understand of odoo) I need to find the page which display the table and add the column on tree view.

 

[edit 21 nov]

Finally I have found the solution. Add model relation:

class ProductAttributeLine(models.Model):
    _inherit = 'product.attribute.line' uom_id = fields.Many2one(related='attribute_id.uom_id', string='Unit of Measure', store=False, readonly=True)
 <record id="product_variant_list_view" model="ir.ui.view"> <field name="name">product.template.variant.form</field> <field name="model">product.template</field> <field name="type">form</field>  <field name="inherit_id" ref="product.product_template_only_form_view" />  <field name="arch" type="xml">    <field name="value_ids" position="after">     <field name="uom_id" />   </field> </field> </record>
Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 3 15
7053
0
thg 3 15
4124
0
thg 3 15
3442
0
thg 3 15
3912
0
thg 7 24
1329