..
Remove Duplicate From Actions Dropdown In Odoo
문제
오더(link.order
)의 복제되면 안되는 필드가 많아, 그냥 오더가 복제되지 않기를 원했다.
하지만 기본적으로 조치에 복제와 삭제를 할 수 있는 메뉴가 있기 때문에 복제 메뉴를 누르게 될 가능성이 조금이라도 있어 복제 메뉴를 안 보이게 하고 싶었다.
해결
복제 메뉴를 안 보이게 하기 위해서는 duplicate
옵션을 사용하면 된다.
<form duplicate="0">
<sheet>
<group>
<field name="sale_ids" widget="many2many_links" readonly="1"/>
<field name="purchase_ids" widget="many2many_links" readonly="1"/>
<field name="mrp_ids" widget="many2many_links" readonly="1"/>
</group>
</sheet>
</form>
하지만, 복제 메뉴가 아니더라도 copy()
메소드를 통해 복제될 수 있기 때문에 복제되면 안되는 필드는 copy 옵션을 선언해주어야 했다.
class LinkOrder(models.Model):
_name = 'link.order'
sale_ids = fields.Many2many('sale.order', 'link_order_sale_order_rel', 'link_id', 'sale_id', string='Sale Order',
copy=False)
mrp_ids = fields.Many2many('mrp.production', 'link_order_mrp_production_rel', 'link_id', 'mrp_id',
string='Production Order', copy=False)
purchase_ids = fields.Many2many('purchase.order', 'link_order_purchase_order_rel', 'link_id', 'purchase_id',
string='Purchase Order', copy=False)
# etc...