2016-05-07 18 views
0

私はOdoo 8で作業しています。コンボボックスタイプのフィールドと選択フィールドのセットを含むビューがあります。私はコンボボックスのフィールドをテストしたいと思います。すべてチェックされていれば、選択フィールドの値が変わるはずです。ここで私はこれまで持っているものである:ここではodooで選択フィールドを自動的に変更する方法

def get_etat_dossier(self,cr,uid,ids,args,fields,context=None): 
    res = {} 
    for rec in self.browse(cr,uid,ids): 

     if rec.casier_judiciare==True: # test field if = true 
      res[rec.id]= 02 # field etat_dos type selection = Dossier Complet 
     else: 
      res[rec.id] = 01 

    return res 


_columns= { 

    'casier_judiciare' : fields.boolean('Casier Judiciaire'), # field to test 

    'reference_pro' : fields.boolean('Réferences Professionnelles'), 
    'certificat_qual' : fields.boolean('Certificat de qualification'), 
    'extrait_role' : fields.boolean('Extrait de Role'), 
    'statut_entre' : fields.selection([('eurl','EURL'),('sarl','SARL')],'Statut Entreprise'), 
    'etat_dos': fields.selection([('complet','Dossier Complet'),('manquant','Dossier Manquant')],'Etat De Dossier'), # field ho change after test 
} 

enter image description here

は私のビューのコード

<group col='4' name="doss_grp" string="Dossier de Soumission" colspan="4" >  <field name="casier_judiciare"/> 
    <field name="certificat_qual"/> 
    <field name="extrait_role"/> 
    <field name="reference_pro"/> 
    <field name="statut_entre" style="width:20%%"/> 
    <field name="etat_dos"/> 
</group> 
+0

あなたが示さなければならないだけで正常に動作する必要があります私たちはあなたのためのコードを表示...私はあなたが正しく選択フィールドの値を変更したい場合は、コンボボックス(チェックボックス)フィールドがチェックされているかどうかを確認します – danidee

+0

こんにちは@danidee私の意見は次のとおりです: ' <フィールド名= "casier_judiciare" /> <フィールド名= "certificat_qual" /> <フィールド名= "extrait_role" /> <フィールド名= "reference_pro" /> <フィールド名= "statut_entre" スタイル= "width:20 %%" /> ' – Smith

+0

チェックしたいすべてのチェックボックスフィールド、または特定のフィールドだけですか?コメントではなく、そのように読むのはとても難しいです。 – danidee

答えて

0

casier_judiciareフィールドにonchange属性を追加して、他のすべてのフィールドにあなたを渡していますこのようなメソッドの引数としてチェックしたい

<group col='4' name="doss_grp" string="Dossier de Soumission" colspan="4" > 
    <field name="casier_judiciare" on_change="onchange_casier_judiciare(casier_judiciare, certificat_qual, extrait_role, reference_pro)"/> 
    <field name="certificat_qual"/> 
    <field name="extrait_role"/> 
    <field name="reference_pro"/> 
    <field name="statut_entre" style="width:20%%"/> 
    <field name="etat_dos"/> 
</group> 

モデルファイルで、このようなメソッドを定義し、if文を使ってそれらがすべてTrueであることを確認します(つまり、すべてチェックされていることを意味します)。そうであれば、選択したい値で辞書を返すことができますフィールドは、この場合にはetat_dosonchangeだけcasier_judiciareフィールドでトリガされDossier Complet

def onchange_casier_judiciare(self, cr, uid, ids, casier_judiciare, certificat_qual, extrait_role, reference_pro, context=None): 
    if casier_judiciare and certificat_qual and extrait_role and reference_pro: # if they're all True (that means they're all checked): 
     values = {'value': {'etat_dos': 'complet'}} #set the value of etat_dos field 

     return values 

注に変更されますが、あなたはまた、他の分野にonchangeを設定することができ、それが

関連する問題