Skip to content

Commit 6f9cc29

Browse files
committed
[ADD] estate: Added an inherited module
Repo now represents edits made to follow chapter 12 guidelines, inherited view and class created and CRUD modifications were made
1 parent 6316118 commit 6f9cc29

File tree

6 files changed

+45
-0
lines changed

6 files changed

+45
-0
lines changed

estate/__manifest__.py

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"views/estate_property_type_views.xml",
1111
"views/estate_property_tags_views.xml",
1212
"views/estate_property_views.xml",
13+
"views/res_users_views.xml",
1314
"views/estate_menus.xml",
1415
"security/ir.model.access.csv",
1516
],

estate/models/__init__.py

+1
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.py

+8
Original file line numberDiff line numberDiff line change
@@ -127,3 +127,11 @@ def check_selling_price_in_range(self):
127127
raise ValidationError(
128128
"Selling price cannot be lower than 90%% of Expected price"
129129
)
130+
131+
@api.ondelete(at_uninstall=False)
132+
def _unlink_check_property_state(self):
133+
for single_property in self:
134+
if single_property.state not in ["new", "cancelled"]:
135+
raise UserError(
136+
"Property cannot be deleted unless it is new or cancelled"
137+
)

estate/models/estate_property_offer.py

+8
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,11 @@ def action_offer_refuse(self):
7878
for offer in self:
7979
offer.status = "refused"
8080
return True
81+
82+
@api.model_create_multi
83+
def create(self, vals):
84+
single_property = self.env["estate.property"].browse(vals["property_id"])
85+
if vals["price"] < single_property.best_price:
86+
raise UserError("An offer cannot be lower than an existing offer")
87+
single_property.state = "offer-received"
88+
return super().create(vals)

estate/models/res_users.py

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from odoo import fields, models
2+
3+
4+
class ResUsers(models.Model):
5+
_inherit = "res.users"
6+
7+
property_ids = fields.One2many(
8+
"estate.property",
9+
"seller_id",
10+
string="Properties",
11+
domain=[("state", "in", ("new", "offer-received"))],
12+
)

estate/views/res_users_views.xml

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<odoo>
3+
<record id="res_users_view_form" model="ir.ui.view">
4+
<field name="name">res.users.view.form.inherit.estate</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+
<xpath expr="//notebook/page[@name='account_security']" position="replace">
9+
<page string="Real Estate Properties">
10+
<field name="property_ids"/>
11+
</page>
12+
</xpath>
13+
</field>
14+
</record>
15+
</odoo>

0 commit comments

Comments
 (0)