2016-12-02 8 views
1

Я новичок в Odoo, и я все еще пытаюсь получить представление о его взглядах.Odoo 8 display stock_move.picking_id.partner_id in view

Мне нужно добавить поле «Поставщик» в стандартное представление для Закупки - Входящие продукты, значение которых должно быть взято из файла stock_move.picking_id.partner_id Я не могу понять, как это получить значение в представлении xml, хотя необходимые отношения, похоже, определены, так как я могу получить его таким образом в коде python.

Вот стандартное определение вида:

 <record id="view_move_tree_receipt_picking" model="ir.ui.view"> 
     <field name="name">stock.move.tree2</field> 
     <field name="model">stock.move</field> 
     <field name="priority" eval="6"/> 
     <field name="arch" type="xml"> 
      <tree colors="grey:state == 'cancel'" string="Moves"> 
       <field name="date" widget="date"/> 
       <field name="picking_id" string="Reference" invisible="1"/> 
       <field name="origin"/> 
       <field name="product_id"/> 
       <field name="product_uom_qty"/> 
       <field name="product_uom" string="Unit of Measure" groups="product.group_uom"/> 
       <field name="location_id" invisible="1"/> 
       <field name="location_dest_id" invisible="1"/> 
       <field name="create_date" invisible="1"/> 
       <field name="date_expected" invisible="1"/> 
       <button name="%(stock.move_scrap)d" 
        string="Scrap Products" type="action" 
        icon="terp-gtk-jump-to-ltr" context="{'scrap': True}" 
        states="draft,waiting,confirmed,assigned" 
        groups="stock.group_stock_user"/> 
       <field name="state"/> 
       <button name="action_done" states="draft,assigned,confirmed" 
        icon="gtk-go-forward" type="object" groups="stock.group_stock_user" 
        class="oe_highlight" help="Done"/> 
      </tree> 
     </field> 
    </record> 

и соответствующие определения столбцов (пропуск несвязанных линий для краткости)

class stock_move(osv.osv): 
    _name = "stock.move" 
    _description = "Stock Move" 
    _order = 'date_expected desc, id' 

    _columns = { 
     'picking_id': fields.many2one('stock.picking', 'Reference', select=True, states={'done': [('readonly', True)]}), 
    } 


class stock_picking(osv.osv): 
    _name = "stock.picking" 
    _inherit = ['mail.thread'] 
    _description = "Picking List" 
    _order = "priority desc, date asc, id desc" 

    _columns = { 
     'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}), 
    } 

ответ

1

Не нужно определить соотношение, которое уже есть, так что вам просто нужно добавить связанную область в share.move и добавить это партнерское поле в виде списка или вида формы stock.move, наследуя существующие виды.

class stock_move(osv.osv): 
    _inherit = "stock.move" 

    _columns = { 
     'partner_id': fields.related('picking_id', 'partner_id', 'Supplier', type='many2one', store=True, readonly=True), 
    } 

Теперь добавьте это поле partner_id в существующий вид, используя наследование.

Base View ID => stock.view_move_form (она может отличаться в вашем случае)

<record id="new_view_id" model="ir.ui.view"> 
    <field name="name">stock.form</field> 
    <field name="model">stock.move</field> 
    <field name="inherit_id" ref="stock.view_move_form" /> 
    <field name="priority" eval="40"/> 
    <field name="arch" type="xml"> 
     <!-- field name which you specify here after then new field will be added. --> 
     <field name="existing_field_name" position="after"> 
      <field name="partner_id" /> 
     </field> 
    </field> 
</record> 
+0

Спасибо за ваш ответ. Звучит разумно, но все, что я получаю, это столбец с нулевыми значениями. – dgeorgiev

+0

Вам необходимо перезагрузить сервер и обновить модуль, если он еще не получил успеха, а затем удалите этот partner_id из таблицы (stock_move) вручную по запросу, а затем перезапустите сервер и модуль обновления. –

+0

Хорошо, похоже, мне удалось заставить его работать. И да, существующая колонка вызывала проблемы, поэтому я переименовал новое поле. Также решили не хранить = True – dgeorgiev