Odoo: Wie Erben Menüpunkte (Menü Elemente unsichtbar)
Muss ich entfernen (oder unsichtbar) ein Menüpunkt.
Ich denke, dies sollte getan werden mit einem Erben und xpath.
Aber ich bin mir nicht sicher, die Namen, das Modell und inherit_id ich verwenden soll. Wo finde ich die korrekten Werte für diese?
Ich weiß auch nicht, wie die Verwendung von xpath richtig für diese.
Soweit ich weiß, gibt es Ausdrücke, die nur für Seiten, Gruppen und Felder?
(http://www.odoo.yenthevg.com/xpath-expressions-in-odoo-8/)
Dem Menü, das entfernt werden muss, ist Produkt-Varianten:
In addons/product/product_view.xml ich fand etwas, das möglicherweise zu tun.
Zeile 1:
<menuitem id="base.menu_product" name="Product Variants" parent="base.menu_base_partner" sequence="9"/>
Zeile 444-446:
<menuitem action="variants_action"
id="menu_variants_action"
parent="product.prod_config_main" sequence="10" />
Dem Weg habe ich versucht, den Menüpunkt unsichtbar in meinem eigenen views.xml:
<record model="ir.ui.view" id="menuproductvariants_inherit">
<field name="name">name">product.prod_config_main</field>
<field name="model">base.menu_product</field>
<field name="inherit_id" ref="product.product_template_only_form_view" />
<field name="arch" type="xml">
<xpath expr="//menuitem[@string='Product Variants']" position='replace'>
<menuitem name=""/>
</xpath>
</field>
</record>
Den Fehler gibt es:
ParseError: "ValidateError
Field(s) `arch` failed against a constraint: Invalid view definition
Error details:
Element '<xpath expr="//menuitem[@string='Product Variants']">' cannot be located in parent view
Error context:
View `name">product.prod_config_main`
[view_id: 971, xml_id: n/a, model: base.menu_product, parent_id: 257]" while parsing /root/git/odoo/modulesdewieuw/dewieuw/views.xml:59, near
<record model="ir.ui.view" id="menuproductvariants_inherit">
<field name="name">name">product.prod_config_main</field>
<field name="model">base.menu_product</field>
<field name="inherit_id" ref="product.product_template_only_form_view"/>
<field name="arch" type="xml">
<xpath expr="//menuitem[@string='Product Variants']" position="replace">
<menuitem name=""/>
</xpath>
</field>
</record>
Edit: Nach den Tipps zur Erstellung einer neuen Gruppe, ich versuchte es.
Ich habe eine Gruppe angelegt "verborgenmenus" und fügte hinzu, einen Benutzer zu.
In meiner xml habe ich nur diese, irgendwo:
<menuitem id="base.menu_product" name="Product Variants" parent="base.menu_base_partner" sequence="9" groups="verborgenmenus"/>
Es gibt mir die folgende Fehlermeldung:
raise ValueError('External ID not found in the system: %s' % (xmlid))
ParseError: "External ID not found in the system: dewieuw.verborgenmenus" while parsing /root/git/odoo/modulesdewieuw/dewieuw/views.xml:34, near
<menuitem id="base.menu_product" name="Product Variants" parent="base.menu_base_partner" sequence="9" groups="verborgenmenus"/>
Was ist falsch in meinem code?
Edit: ich habe es, wie ich wollte, indem nur die Benutzer aus der Gruppe Usability/Technische Funktionen.
- Ein menuitem ist nicht in einem
ir.ui.view
. Es ist inir.ui.menu
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht machen ein menuitem unsichtbar in Odoo, als wäre es ein Feld. Sie müssen es entfernen, mit der
delete
tag:Einen Weg, um es unsichtbar, ohne es zu entfernen ist, fügen Sie das Attribut
groups
zu den menuitem und legen Sie dort eine Gruppe, deren Komponenten nur die Nutzer, die sehen können, die menuitem. Wenn Sie nicht möchten, dass alle Benutzer zu sehen, und erstellen Sie dann eine leere Gruppe, und weisen Sie diesem Attribut:Können Sie löschen es wie folgt:
Aber es ist nicht empfehlenswert, weil vielleicht einige andere Modul versucht, darauf zugreifen. Stattdessen können Sie es hinzufügen, um die admin-Gruppe zu machen, unsichtbar für den rest der Benutzer:
Update:
In deinem Fall die id des menuitem sollte
id="product.menu_products"
Müssen Sie auch zu entfernen, "Usability/Technische Merkmale" von diesem Menü aus..
Für das Goto : Einstellungen -> User-Interface -> Menü-Items.
Suche nach : Produkt-Varianten
öffnen Sie die Formularansicht : entfernen von "Usability/Technische Merkmale" von Gruppe-raster.
Tatsächlich gegeben, ein menuitem, das ist der richtige Weg, um zu verbergen ein menuitem, indem Sie einen "verstecken" - Gruppe
Das funktioniert gut für mich.
Natürlich können Sie es auch für neu zu definieren, andere von seinen Eigenschaften (parent, name, etc...)
Die Antwort von BBBagdiya Ihr Recht, ich habe nur zu fügen Sie die name-Eigenschaft, da seine hat eine nicht-null-constraint.
Der code ist:
Können Sie Ausblenden ein Menü