Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
1 Odpowiedz
2038 Widoki

Hello, 

I am creating a maintenance module where I use products as the maintenance actions. 

eg: product: revise engine


But  I don't want these products to show up any where else then in my maintenance module. 

I know I can add domain filters to the other views-actions to filter out these products, but this is a lot of work. And adding them to every one2many field. This is almost impossible. 

Is there a way to hide the products in all the views exept for the views where I want them to? 

I was thinking about record rules, but it doesn't look like the rules have any knowledge about the view that is shown.

Please let me know your ideas!

Thanks, 


Awatar
Odrzuć

you can set the check boxes can be sold and can be purchased so it won't appear in most views.  or archive the product.  

Najlepsza odpowiedź

Hello Dries,

You can do this by simply overriding the method search_read in the inherited model product.product. Just follow the code written below:


class Product(models.Model):    
​_inherit = 'product.product'
​@api.model
​def search_read(self, domain=None, fields=None, offset=0, limit=None, order=None, **read_kwargs):
​if self.env.context('field_name', False):
domain += [('field_name', '=', True)] # or the domain you want to add.
​else:
domain += [('field_name', '=', False)] # or the domain you want to add to restrict everywhere.
​return super().search_read(domain, fields, offset, limit, order)


In your product view action:


    My Product    ir.actions.act_window    product.product    tree,form    {'field_name': True}            

Ready to recruit more efficiently?

Let's create a job position.


As every tree and form view is calling the search_read method, you just need to play with the domain name here.


Thanks & Regards, 

 

Brain Station 23 Ltd. 

Mobile: (+880) 1404055226 

Email: sales@brainstation-23.com 

Web: https://brainstation-23.com/ 

Address: (Building-1) 8th Floor, 2 Bir Uttam AK Khandakar Road, Mohakhali C/A, Dhaka 1212, Bangladesh 


Awatar
Odrzuć
Autor

Great, thank you, this definitely looks like a good way to do this.
Thank you,

Powiązane posty Odpowiedzi Widoki Czynność
1
wrz 23
2188
1
kwi 24
2442
1
sty 24
2001
1
lis 23
2084
4
lis 23
2847