Skip to content

Commit f547706

Browse files
committed
[IMP] estate: add inheritance-based business logic
• Restrict property deletion by state • Update property state on offer creation • Prevent offers below best price • Show related properties on users form
1 parent a6c41cf commit f547706

File tree

5 files changed

+42
-0
lines changed

5 files changed

+42
-0
lines changed

estate/__manifest__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
'views/estate_property_offer_views.xml',
1313
'views/estate_property_type_views.xml',
1414
'views/estate_property_tag_views.xml',
15+
'views/res_user_views.xml',
1516
'views/estate_property_menu.xml'
1617
],
1718
'application': True,

estate/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
from . import estate_property_type
33
from . import estate_property_tag
44
from . import estate_property_offer
5+
from . import res_users

estate/models/estate_property_offer.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from dateutil.relativedelta import relativedelta
22

33
from odoo import models, api, fields
4+
from odoo.exceptions import UserError
45

56

67
class EstatePropertyOffer(models.Model):
@@ -47,3 +48,16 @@ def action_refuse(self):
4748
record.property_id.selling_price = 0.00
4849
record.property_id.customer = None
4950
return True
51+
52+
@api.model
53+
def create(self, vals):
54+
if len(vals) > 0:
55+
property = self.env["estate.property"].browse(vals[0]["property_id"])
56+
for record in vals:
57+
if property.state == "new":
58+
property.state = "offer_received"
59+
if record["price"] < property.best_price:
60+
raise UserError(
61+
"Offer with an amount lower than an existing offer cannot be created."
62+
)
63+
return super().create(vals)

estate/models/res_users.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from odoo import fields, models
2+
3+
4+
class ResUser(models.Model):
5+
_inherit = "res.users"
6+
7+
property_ids = fields.One2many(
8+
"estate.property",
9+
"salesperson",
10+
domain="[('state', '!=', 'sold')]"
11+
)

estate/views/res_user_views.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0"?>
2+
<odoo>
3+
<record id="res_users_form_inherit" model="ir.ui.view">
4+
<field name="name">User Inheritance</field>
5+
<field name="model">res.users</field>
6+
<field name="inherit_id" ref="base.view_users_form"/>
7+
<field name="arch" type="xml">
8+
<notebook>
9+
<page name="Properties">
10+
<field name="property_ids"/>
11+
</page>
12+
</notebook>
13+
</field>
14+
</record>
15+
</odoo>

0 commit comments

Comments
 (0)