我正在使用Odoo 8.我的视图包含一组组合框类型字段和一个选择字段。我想对组合框字段进行测试,如果全部选中,则选择字段值应该更改。以下是我到目前为止的情况:
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
}
以下是我的观点代码
<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 :(得分:0)
将onchange
属性添加到casier_judiciare
字段,然后将要检查的所有其他字段作为参数传递给方法
<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_dos
将更改为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
仅在casier_judiciare
字段上触发,但您也可以在其他字段上设置onchange
,它应该可以正常工作