This
Best Practice Approach
Odoo lets you control the visibility of the "Create" button by setting the context in the action with the flag:
'context': {'hide_create_button': True}
Then, in the XML view, you check that context and hide the button accordingly.
Step 1: Inherit the "Sales Orders" action and set the context
<odoo>
<record id="action_orders_hide_create" model="ir.actions.act_window">
<field name="name">Sales Orders (No Create)</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sale.order</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('state', 'not in', ('draft',))]</field>
<field name="context">{'hide_create_button': True}</field>
</record>
<!-- Override menu to point to the new action -->
<menuitem id="sale.menu_sale_order" action="action_orders_hide_create"/>
</odoo>
This keeps "Quotations" untouched (default behavior), and applies the modified context only in the Sales Orders view.
Step 2: Inherit the tree/form view and hide the "Create" button based on context
<record id="view_order_tree_inherit_hide_create" model="ir.ui.view">
<field name="name">sale.order.tree.hide.create</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_tree"/>
<field name="arch" type="xml">
<xpath expr="//tree" position="attributes">
<attribute name="create">not context.get('hide_create_button')</attribute>
</xpath>
</field>
</record>
You can repeat the same for the form view if needed, though usually the button only appears in the list.
i hope it is use full