Skip to Content
Meniu
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
Această întrebare a fost marcată
1 Răspunde
2510 Vizualizări

I have a field where you get to pick a value from stock picking type value:

What I want, is to filter the list to not show already used values of stock picking value in the records of the model.

I want something like this:

so_receipt_location=fields.Many2one('stock.picking.type','Picking Location',domain=['id','not in' so_receipt_location.ids)

In a few words, don't display stock picking type option that has already been selected in any recordset of the model.


How can I achieve this?

 

Imagine profil
Abandonează
Autor Cel mai bun răspuns

Managed to find a solution:

so_receipt_location=fields.Many2one('stock\.picking\.type','Τοποθεσία\ Παραλαβής'\)\ 
 \  \
def\ _available_locations\(self\):
 \  \  \ locations=self\.sudo\(\)\.search_read\(\[\('id','!=',self._origin.id)],{"so_receipt_location"})
     locations_list=[]
      for r in locations:
          if (r["so_receipt_location"]):
              locations_list.append(r["so_receipt_location"][0])
     return locations_list

@api.model
def fields_view_get(self, view_id=None, view_type='form', toolbar=False,submenu=False):
      res = super(SoftOneBranch, self).fields_view_get(
                view_id=view_id,view_type=view_type,toolbar=toolbar,submenu=submenu)                            locations_list=self._available_locations()
      if ('so_receipt_location' in res['fields']):
            res['fields']['so_receipt_location']['domain']=[('id','not in',locations_list)]
      return res           

@api.onchange('so_receipt_location')   
def _get_locations(self):
      locations_list=self._available_locations()
     return {'domain':{'so_receipt_location':[('id','not in',locations_list)]}}   

Domain for so_receipt_location gets updated when form loads and every time the user picks another option from the list. Available values exclude current id's value.

Imagine profil
Abandonează
Related Posts Răspunsuri Vizualizări Activitate
3
sept. 20
71883
1
sept. 19
3122
2
sept. 23
9594
1
iul. 20
5687
0
mar. 15
4792