2016-12-02 7 views
1

Ich bin neu bei Odoo und versuche immer noch, den Überblick zu behalten.Odoo 8 Anzeige stock_move.picking_id.partner_id in Sicht

Ich muss ein Feld "Supplier" in der Standardansicht für Einkäufe - Incoming Produkte hinzufügen, deren Wert aus der stock_move.picking_id.partner_id Ich kann nicht herausfinden, wie man das bekommt Wert in der Ansicht XML, obwohl die notwendigen Beziehungen definiert zu sein scheinen, wie ich es so im Python-Code bekommen kann.

Hier ist die Standardansicht Definition:

 <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> 

und die entsprechenden Spaltendefinitionen (nicht verwandten Zeilen der Kürze Überspringen)

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)]}), 
    } 

Antwort

1

Sie brauchen keinen Bezug zu definieren es schon da ist, so brauchen Sie nur um das zugehörige Feld in stock.move hinzuzufügen und dieses Partnerfeld in der Listenansicht oder Formularansicht von stock.move hinzuzufügen, indem vorhandene Ansichten vererbt werden.

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

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

Fügen Sie jetzt dieses partner_id-Feld in der vorhandenen Ansicht mithilfe der Vererbung hinzu.

Erstansicht ID => stock.view_move_form (es kann in Ihrem Fall abweichen)

<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

Vielen Dank für Ihre Antwort. Klingt vernünftig, aber alles, was ich bekomme, ist eine Spalte mit Nullwerten. – dgeorgiev

+0

Sie müssen den Server und das Upgrade-Modul neu starten, wenn Sie immer noch keinen Erfolg haben, dann entfernen Sie diese Partner-ID manuell aus der Tabelle (stock_move) durch Abfrage und starten Sie das Server- und Upgrade-Modul neu. –

+0

Ok, sieht so aus, als hätte ich es geschafft. Und ja, die vorhandene Spalte verursachte Probleme, also habe ich das neue Feld umbenannt. Habe auch entschieden nicht zu speichern = True – dgeorgiev