2017-12-21 4 views
2

私はOdoo v8で作業していますが、問題なく動作しているサーバーアクションを作成しましたが、新しいAPIで多くの操作を行った後、古いAPIでそれを記述しなければならないことを管理するためです。サーバーアクションコードを古いAPIから新しいAPIに移動するにはどうすればよいですか?

これは私のコード、今取り組んでいる古いAPI、1つである:

Pythonの

def open_action_alt_picking_type_views(self, cr, uid, ids, context=None): 
    res = { 
     'view_type': 'form', 
     'view_mode': 'kanban', 
     'res_model': 'stock.picking.type', 
     'type': 'ir.actions.act_window', 
     'target': 'current', 
    } 
    return res 

XML

<record id="server_action_alt_picking_type_views" model="ir.actions.server"> 
    <field name="name">Picking types</field> 
    <field name="condition">True</field> 
    <field name="type">ir.actions.server</field> 
    <field name="model_id" ref="model_stock_picking_type"/> 
    <field name="state">code</field> 
    <field name="code">action = self.open_action_alt_picking_type_views(cr, uid, context.get('active_ids', []), context=context)</field> 
</record> 

そして、これが1でありますの試みの新しいAPI作業されていない。

Pythonの

@api.model 
def open_action_alt_picking_type_views(self): 
    res = { 
     'view_type': 'form', 
     'view_mode': 'kanban', 
     'res_model': 'stock.picking.type', 
     'type': 'ir.actions.act_window', 
     'target': 'current', 
    } 
    return res 

XML

<record id="server_action_alt_picking_type_views" model="ir.actions.server"> 
    <field name="name">Picking types</field> 
    <field name="condition">True</field> 
    <field name="type">ir.actions.server</field> 
    <field name="model_id" ref="model_stock_picking_type"/> 
    <field name="state">code</field> 
    <field name="code">action = self.open_action_alt_picking_type_views()</field> 
</record> 

ノーデコレータで、@api.multiで試してみました、XML codereturn前・デ・メソッドの呼び出しを追加フィールドなど

誰もこれを達成する方法を知っていますか?

+0

あなたが何についての具体的でした「手段を動作していません?」 –

+0

これは何もせず、エラーを出すこともありません。サーバーアクションを呼び出すmenuitemをクリックすると、ビューが開かれません。 – forvas

答えて

2

私はあなたがそうのようなメソッドの呼び出しにモデルを指定する必要が信じている:

<field name="code">action = env['stock.picking.type'].open_action_alt_picking_type_views()</field> 
+0

ありがとうございます@ルーカス、それは問題でした!私はモデル呼び出しだけを編集しました。なぜなら、 'get'が機能しなかったからです。 – forvas

関連する問題