Skip to content

Commit

Permalink
[IMP] adjust menu action with default filter for rental orders and no…
Browse files Browse the repository at this point in the history
…rmal sale orders
  • Loading branch information
yweng8111 committed Jul 31, 2024
1 parent 35ed8b6 commit 1dfb3e7
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 16 deletions.
23 changes: 23 additions & 0 deletions rental_base/models/sale.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ class SaleOrder(models.Model):
store=True,
)

is_rental_order = fields.Boolean(
string="Is Rental Order",
compute="_compute_is_rental_order",
store=True,
)

@api.depends("order_line.start_date")
def _compute_default_start_date(self):
for order in self:
Expand Down Expand Up @@ -56,6 +62,23 @@ def _compute_default_end_date(self):
}
)

@api.depends("type_id")
def _compute_is_rental_order(self):
try:
rental_type = (
self.env["ir.model.data"]
.sudo()
.get_object("rental_base", "rental_sale_type")
)
except ValueError:
for order in self:
order.is_rental_order = False
return
for order in self:
order.is_rental_order = False
if order.type_id.id == rental_type.id:
order.is_rental_order = True

def unlink(self):
for rec in self:
rentals = self.env["sale.rental"].search(
Expand Down
26 changes: 10 additions & 16 deletions rental_base/views/menu_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,18 @@
<field name="name">Sales Orders</field>
<field
name="context"
eval="{'default_type_id': ref('sale_order_type.normal_sale_type')}"
/>
<field
name="domain"
eval="[('type_id','!=', ref('rental_sale_type')), ('state', 'not in', ('draft', 'sent'))]"
eval="{'default_type_id': ref('sale_order_type.normal_sale_type'), 'search_default_is_normal_order': 1}"
/>
<field name="domain" eval="[('state', 'not in', ('draft', 'sent'))]" />
</record>

<record id="sale.action_quotations" model="ir.actions.act_window">
<field name="name">Sales Quotations</field>
<field
name="context"
eval="{'search_default_my_quotation': 1, 'default_type_id': ref('sale_order_type.normal_sale_type')}"
/>
<field
name="domain"
eval="[('type_id','!=', ref('rental_sale_type')), ('state', 'in', ('draft', 'sent', 'cancel'))]"
eval="{'search_default_my_quotation': 1, 'default_type_id': ref('sale_order_type.normal_sale_type'), 'search_default_is_normal_order': 1}"
/>
<field name="domain" eval="[('state', 'in', ('draft', 'sent', 'cancel'))]" />
</record>

<record id="action_rental_orders" model="ir.actions.act_window">
Expand All @@ -30,11 +24,11 @@
<field name="res_model">sale.order</field>
<field name="view_mode">tree,kanban,form,calendar,pivot,graph,activity</field>
<field name="search_view_id" ref="sale.sale_order_view_search_inherit_sale" />
<field name="context" eval="{'default_type_id': ref('rental_sale_type')}" />
<field
name="domain"
eval="[('type_id','=', ref('rental_sale_type')), ('state', 'not in', ('draft', 'sent'))]"
name="context"
eval="{'default_type_id': ref('rental_sale_type'), 'search_default_is_rental_order': 1}"
/>
<field name="domain" eval="[('state', 'not in', ('draft', 'sent'))]" />
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new quotation, the first step of a new sale!
Expand All @@ -51,11 +45,11 @@
<field name="res_model">sale.order</field>
<field name="view_mode">tree,kanban,form,calendar,pivot,graph,activity</field>
<field name="search_view_id" ref="sale.sale_order_view_search_inherit_sale" />
<field name="context" eval="{'default_type_id': ref('rental_sale_type')}" />
<field
name="domain"
eval="[('type_id','=', ref('rental_sale_type')), ('state', 'in', ['draft', 'sent', 'cancel'])]"
name="context"
eval="{'default_type_id': ref('rental_sale_type'), 'search_default_is_rental_order': 1}"
/>
<field name="domain" eval="[('state', 'in', ['draft', 'sent', 'cancel'])]" />
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new quotation, the first step of a new sale!
Expand Down
20 changes: 20 additions & 0 deletions rental_base/views/sale_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -392,5 +392,25 @@
</field>
</record>

<record id="view_sales_order_filter" model="ir.ui.view">
<field name="name">rental_base.sales_order_filter</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_sales_order_filter" />
<field name="arch" type="xml">
<xpath expr="//filter[@name='my_sale_orders_filter']" position="after">
<separator />
<filter
string="Normal Order"
domain="[('is_rental_order','=',False)]"
name="is_normal_order"
/>
<filter
string="Rental Order"
domain="[('is_rental_order','=',True)]"
name="is_rental_order"
/>
</xpath>
</field>
</record>

</odoo>

0 comments on commit 1dfb3e7

Please sign in to comment.