跳至内容
菜单
此问题已终结
2 回复
4326 查看

I have a pivot table and when I click an entry, it opens to the default tree view defined on the model. I have a custom tree view I want to use with this pivot table. But I do not want this custom view to replace the default view on other actions.

形象
丢弃
最佳答案

There are two ways that Odoo can be instructed to look for a particular view when a User navigates to a Menu:

1. Specify the View Ref for the default view (in this case the Tree/List View from the Quotations Menu):


2. Specify the Views the Action will use (in this case specific Views from the Sales Menu):






These two Actions show data from the same sale.order model differently, depending on which Menu you select.


Note: In these screenshots it appears that both Actions leverage the same View because it has the same name, but Quotations is actually using the View with External ID sale.view_quotation_tree and Sales is using the View with External ID sale.view_order_tree




形象
丢弃
编写者 最佳答案

I found a solution. You need to override the fields_view_get method on the model. You can match using the 'pivot_view_ref' key in the context dictionary. Here is an example:


@api.model
def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False):
view_ref = self.env.context.get('pivot_view_ref', None)
if view_ref == '<view_name>' and view_type == 'tree':
ref = self.env.ref('<model>.<view_name>')
return super().fields_view_get(view_id=ref.id, view_type=view_type, toolbar=toolbar, submenu=submenu)
else:
return super().fields_view_get(view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu)
形象
丢弃
相关帖文 回复 查看 活动
3
4月 25
4899
1
7月 24
29
5
11月 23
43232
3
9月 23
9597
2
8月 23
2190