Hello,
I have been asking quite a few questions about menu items. Hopefully this will be the last. I am now configuring my custom modules settings page. I would like to make it that certain menu items show/hide depending on a boolean.
Lets use odoo's source code as an example as i have nothing written, everything i did just had errors. I'm just trying to understand what's going on before i begin to program. Everything below is from odoo 11 MRP.
res_config_settings.py:
group_mrp_routings = fields.Boolean("Work Orders & Quality",
implied_group='mrp.group_mrp_routings')
@api.onchange('group_mrp_routings')
def _onchange_group_mrp_routings(self):
self.module_quality_mrp = self.group_mrp_routings
Okay ^^ declaring the boolean, got it. Whats implied group? And whats the onchange doing here?
mrp_workcenter_views.xml:
<menuitem id="menu_mrp_dashboard"
name="Dashboard"
action="mrp_workcenter_kanban_action"
groups="group_mrp_routings"
parent="menu_mrp_root"
sequence="5"/>
Basic menu item with group in it. This is where my error would come in. It would always say key id error, groups id doesn't exist...even though we declared it in the python file?
res_config_settings.xml:
<div class="col-md-6 col-xs-12 o_setting_box" id="work_order" title="Work Order Operations allow you to create and manage the manufacturing operations that should be followed within your work centers in order to produce a product. They are attached to bills of materials that will define the required raw materials.">
<div class="o_setting_left_pane">
<field name="group_mrp_routings"/>
<field name="module_quality_mrp" invisible="1"/>
</div>
<div class="o_setting_right_pane">
<label for="group_mrp_routings"/>
<div class="text-muted">
Process operations at specific work centers based on the routing
and carry out quality checks.
</div>
<div class="content-group" attrs="{'invisible': [('group_mrp_routings','=',False)]}">
<div class="mt16">
<div>
<button name="%(mrp.mrp_routing_action)d" icon="fa-arrow-right" type="action" string="Routings" class="btn-link"/>
</div>
<div>
<button name="%(mrp.mrp_workcenter_action)d" icon="fa-arrow-right" type="action" string="Work Centers" class="btn-link"/>
</div>
</div>
</div>
</div>
</div>
Okay, settings the label and group to the boolean we declared earlier. Seems simple enough. My module is for agriculture. I have a menu item titled "additives" for which farmers can choose to monitor additive usage. I made a boolean with the implied group, i made the menu item with the same group, i made the settings display said boolean. It would give me id key error every single time, specifically on the menuitem. What am i missing?