2016-05-07 13 views
0

ich ein Anfänger in odoo bin, und ich bin weiß, wie eine Selektionsbedingung auf einem Feld zu machen, hier ist mein Code:Wie eine Bedingung für ein Auswahlfeld setzen

ETAT_DOSSIER = [ 
    ('dos_comp','Dossier Complet'), 
    ('dos_manq','Dossier Manquant'), 
    ] 

    def set_etat_dossier(self, cr, uid, ids, context=None): 
     val = {} 
     for prod in self.browse(cr, uid, ids, context=context): 
      if prod.casier_judiciare ==True: 
       val['etat_dos'] = ETAT_DOSSIER[0][0] 
      else: 
       val['etat_dos'] = ETAT_DOSSIER[1][0] 

    return val 

    columns= { 
    'etat_dos': fields.selection(ETAT_DOSSIER,string='Etat Dossier') 
       } 

    defaults = { 
    'etat_dos' : ETAT_DOSSIER[1][0], 
      } 

Antwort

0

Sie sollen Auswahlfeld machen Funktionsfeld und rufen Sie eine Funktion auf, die Sie definiert haben, damit Sie den Wert dieses Feldes gemäß Ihrer Funktionsbedingung festlegen.

 
Ex. 
columns = { 
    'etat_dos': fields.function(set_etat_dossier, string='Method',type='selection', selection=ETAT_DOSSIER) 
    } 

    def set_etat_dossier(self, cr, uid, ids, context=None): 
     val = {} 
     for prod in self.browse(cr, uid, ids, context=context): 
      if prod.casier_judiciare ==True: 
       val['etat_dos'] = ETAT_DOSSIER[0][0] 
      else: 
       val['etat_dos'] = ETAT_DOSSIER[1][0] 
+0

Dank mein Freund für diesen Vorschlag, aber die Funktion zurückgeben nichts –

+0

hinzufügen 'return {Wert: val}' bis zum Ende des Codes – danidee

0

Von Ihrer Frage, schreibe ich eine mögliche Lösung für Ihr Problem.

def _set_etat_dossier(self, cr, uid, ids, context=None): 
    retVal = {} 
    for prod in self.browse(cr, uid, ids, context=context): 
     if prod.casier_judiciare == True: 
      retVal[ prod.id ] = ('dos_comp','Dossier Complet') 
     else: 
      retVal[ prod.id ] = ('dos_manq','Dossier Complet'), 

    return retVal 



columns = { 
    'etat_dos': fields.function(_set_etat_dossier, 
           string='Etat Dossier', 
           type='selection', 
           method=True, 
           selection=ETAT_DOSSIER) 
} 
Verwandte Themen