I know I can set create=False to hide it from everyone but I would like to be able to see it when I'm in certain group. How can I do it?
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Boekhouding
- Voorraad
- PoS
- Project
- MRP
Deze vraag is gerapporteerd
Hello dohn_joe,
You can do by overriding fields_view_get method.
here I give you the example of fields_view_get:
For E.g:
from lxml import etree
def fields_view_get(self, cr, uid, view_id=None, view_type='tree',
context=None, toolbar=False, submenu=False):
if context is None:context = {}
res = super(class_name, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type,
context=context, toolbar=toolbar, submenu=False)
group_id = self.pool.get('res.users').has_group(cr, uid, 'modulename.group_xml_id')
doc = etree.XML(res['arch'])
if group_id:
if view_type == 'tree':
nodes = doc.xpath("//tree[@string='Test Tree']")
for node in nodes:
node.set('create', '0')
res['arch'] = etree.tostring(doc)
return res
I hope this will helpful for you.
thanks
Thanks a lot! It worked exactly as I wanted.
Always welcome john_joe :) 👍
this has change a bit in Odoo 16 and looks more like this:
def_get_view(self, view_id=None, view_type='form', **options):
arch, view = super()._get_view(view_id, view_type, **options)
if view_type in ('tree'):
nodes = arch.xpath("//tree")
for node in nodes:
# logic needed to switch create on or off
if True:
node.set('create', '1')
return arch, view
thanks!
Geniet je van het gesprek? Blijf niet alleen lezen, doe ook mee!
Maak vandaag nog een account aan om te profiteren van exclusieve functies en deel uit te maken van onze geweldige community!
AanmeldenGerelateerde posts | Antwoorden | Weergaven | Activiteit | |
---|---|---|---|---|
|
2
aug. 21
|
13515 | ||
|
5
aug. 20
|
7464 | ||
|
1
dec. 19
|
5361 | ||
|
0
sep. 17
|
3507 | ||
|
0
aug. 17
|
2860 |