2017-01-13 6 views
0

stock.pickingモデルの機能/ボタンをfleet.vehicle.log.servicesに設定しようとしています。私の見解でこれまであるモデルから別のモデルにボタン機能を継承する - Odoo v9コミュニティ

:モデルに

 <record model='ir.ui.view' id='fleet_vehicle_log_services_form_inherit_1'> 
     <field name='name'>fleet.vehicle.log.services.form0</field> 
     <field name='model'>fleet.vehicle.log.services</field> 
     <field name='inherit_id' ref='fleet.fleet_vehicle_log_services_form'/> 
     <field name="priority">89</field> 
     <field name='arch' type='xml'> 
      <xpath expr="//form//sheet//group[1]" position="before"> 
      <header> 
       <button name="action_confirm" states="draft" string="Mark as Todo" type="object" class="oe_highlight" groups="base.group_user"/> 
       <button name="action_assign" states="confirmed,waiting" string="Reserve" type="object" class="oe_highlight" groups="base.group_user"/> 
       <button name="force_assign" states="confirmed,waiting,partially_available" string="Force Availability" type="object" groups="base.group_user"/> 
       <button name="do_new_transfer" states="draft,partially_available,assigned" string="Validate" groups="stock.group_stock_user" type="object" class="oe_highlight"/> 
       <button name="do_print_picking" string="Print" groups="stock.group_stock_user" type="object" attrs="{'invisible': [('state', 'not in', ('assigned', 'partially_available'))]}"/> 
       <button name="%(stock.act_stock_return_picking)d" string="Reverse" states="done" type="action" groups="base.group_user"/> 
       <button name="action_cancel" states="assigned,confirmed,partially_available,draft,waiting" string="Cancel" groups="base.group_user" type="object"/> 
       <field name="state" widget="statusbar" statusbar_visible="draft,confirmed,partially_available,assigned,done" statusbar_colors='{"shipping_except":"red","invoice_except":"red","waiting_date":"blue"}'/>     
      </header> 
      </xpath> 
     </field> 
    </record> 

_inherit = "fleet.vehicle.log.services" 
    stock_picking = fields.Many2one("stock.picking", "Picking") 
    state = fields.Selection(string="Estados", store=True, readonly=True, related="stock_picking.state") 

これまでのところ、stateフィールドは、それとは問題を微示していないが、私が作るように見えることはできませんボタンは機能しますが、ビューには表示されません。

私はこれを達成するためにどのように

任意のアイデア...私はstateで行ったようにstock_pickingに、これらの機能に関連する必要がありますが、これらは機能フィールドです推測?

答えて

1

あなたはほとんどそれを持っています。ヘッダータグは、フォームタグの直接の子でなければなりません。したがって、<xpath expr="//form//sheet//group[1]" position="before"><xpath expr="//form/sheet" position="before">に変更すると役立ちます。

これらの関数を呼び出すと、私は試してみた:

from openerp import models, api 

class FleetVehicleLogServices(models.Model): 
    _inherit = "fleet.vehicle.log.services" 

    stock_picking = fields.Many2one("stock.picking", "Picking") 
    state = fields.Selection(string="Estados", store=True, readonly=True, related="stock_picking.state") 

    @api.multi 
    def action_confirm(self): 
     for record in self: 
      record.stock_picking.action_confirm() 
     return True 

そして、あなたは他の方法とこの方法を続けることができます。

+0

こんにちは、すごい!どうもありがとうございます。でも、ボタンは表示されていますが、レコードを保存すると消滅し、状態が表示されますが、色などは変わりませんが、これは部分的に解決しますがあなたはこれがなぜ起こっているのか考えていますか? – NeoVe

+0

許可に関連するでしょうか? – NeoVe

+0

他のメソッドを呼び出すのではないかと思うかもしれません...私はあなたに書き込むようにしようとしています – NeoVe

関連する問題