2016-10-11 17 views
3

私は、1つ2つのフィールドがあるウィザードを持っています。私は、私が作った別のウィザードを呼び出している1つのマニアの各行にボタンを作った。このウィザードは、選択した行の一部の値を変更するためのウィザードです。Odoo8の他のウィザードからウィザードを呼び出す方法は?

私の目的は、新しい変更を加えて、最初のウィザードを返すことです。私のウィザードのボタンをクリックします。

例:

最初のウィザードでは、3つのレコードでone2manyフィールドがあります。

  • 製品A | 1 ud |ソース位置X |デスティネーション・ロケーションY |ロットA1
  • 製品B | 2 ud |ソース位置X |デスティネーション・ロケーションY |ロットB1
  • 製品C | 3 ud |ソース位置X |デスティネーション・ロケーションY |ロットC1

ここで、私が作った最初の行のボタンをクリックして(各行に1つずつ)、 ウィザードが開きます。ここでは、最初の行の多くを修正することができます( 製品Aを使用)。私はロットA0を設定し、をクリックしたと想像してくださいを適用します。

私は親ウィザードに戻り、変更が加えられた を除き、同じデータを参照してください。結果は次のようになります。

  • 製品A | 1 ud |ソース位置X |デスティネーション・ロケーションY | ロットA0
  • 製品B | 2 ud |ソース位置X |デスティネーション・ロケーションY |ロットB1
  • 製品C | 3 ud |ソース位置X |デスティネーション・ロケーションY |ロットC1

誰でもこの方法を知っていますか?どのようにして最初のウィザードデータを保存できますか?

+0

ボタンで「ライン」ウィザードを開く方法:アクション辞書を返すその場合は、親ウィザードをアクション辞書(target "new")として "Apply"をクリックするだけで返します。他のボタンと同じようにボタンタイプ "object"にする必要があります。 – CZoellner

+0

回答はありますか? –

答えて

1

まず、ウィザードの現在のレコードとその行をブラウズする必要があります。その後、必要に応じて値を書き込みます。

ウィザードオブジェクトで現在のIDを返します。

は、次のトリックを試してみてください。

#apply button method logic 
def apply_data(self, cr, uid, ids, context=None): 
    if not context: 
     context = {} 

    ctx = context.copy() 
    for wizard in self.browse(cr, uid, ids[0], context=context): 
     for line in wizard.one2many_field: 
      line.write({ 
       'field_name': field_value 
      }) 

    dummy, view_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'module_name', 'wizard_form_view_name') 
    return { 
     'name':_("Name of your Wizard"), 
     'view_mode': 'form', 
     'view_id': view_id, 
     'view_type': 'form', 
     'res_id': ids and ids[0] or False, 
     'res_model': 'wizard.object.name', 
     'type': 'ir.actions.act_window', 
     'nodestroy': True, 
     'target': 'new', 
     'context': ctx 
    } 

注:

あなたはまた、同様にコンテキスト値を更新することができます。

適用ボタンの種類は、メソッドロジックを実行するにはオブジェクトである必要があります。

+0

ありがとうございます!私は 'apply_data'は私のカスタムウィザードで作られた*適用*ボタンから呼び出されたメソッドでなければならないと思います。しかし、このカスタムウィザードにはOne2manyフィールドはありません。 One2manyフィールドは「親」ウィザードにあります。 – forvas

関連する問題