2016-04-12 1 views
0

Je dois ajouter un filtre à un champ de sélection Odoo ..Comment ajouter un filtre à un champ de sélection Odoo

roomuser = fields.Selection([('stpi', 'Belongs to Park'),('Incubation', 'Belongs to Incubation companies'),('both', 'Belongs to Park& Incubation companies')],'Room Assignment',required=True) 
roomType = fields.Selection([('meeting','Meeting Room'),('discussion','Discussion Room'),('auditorium','Auditorium'),('board','Board Room')],required=True) 

Ici j'ai besoin de filtrer la valeur de Roomtype en fonction de la valeur de roomuser. On suppose que la valeur roomuser est à la fois que l'auditorium et le conseil doit être visible dans Roomtype

Répondre

0

J'ai fait mes commentaires comme ci-dessous, vous prions de trouver ci-dessous peut aider dans votre cas:

class HotelManagement(models.Model): 

    _name='hotel.management' 
@api.model  
def _get_room_type_list(self): 
    # [('meeting','Meeting Room'),('discussion','Discussion Room'),('auditorium','Auditorium'),('board','Board Room')] 
    vals=[] 
    for record in self.env['hotel.management'].search([]): 
     if record.roomuser in ['stpi','Incubation'] : 
      vals.extend([('meeting','Meeting Room'),('discussion','Discussion Room')]) 
     if record.roomuser in ['both'] : 
      vals.extend([('auditorium','Auditorium'),('board','Board Room')]) 
    return vals 


def _get_roomuser_list(self): 
    return [('stpi', 'Belongs to Park'), 
          ('Incubation', 'Belongs to Incubation companies'), 
          ('both', 'Belongs to Park& Incubation companies')] 


roomType=fields.Selection(string="Room Type", selection=_get_room_type_list, default='meeting', required=True) 
roomuser = fields.Selection(string="Room Assignment",selection=_get_roomuser_list ,required=True) 

Ici i Il suffit de placer @ api.model sur _get_room_type_list et de parcourir tous les enregistrements de ce modèle (hotel.management) et de filtrer le champ de sélection.

+0

J'ai essayé ce code. Mais le fielduserutilisateur donnant plusieurs valeurs dans la liste de sélection, comme salle de réunion, salle de discussion, conseil d'administration, auditorium arrivent plusieurs fois –

+0

Comment cela peut-il être la réponse acceptée? Je ne pense pas qu'il existe un moyen de faire ce que vous voulez faire. – Majikat