Skip to content

Commit 123badb

Browse files
committed
[ADD] estate: added inheritance
1 parent 9a66bbf commit 123badb

File tree

7 files changed

+43
-2
lines changed

7 files changed

+43
-2
lines changed

estate/__manifest__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
'data': [
2020
'security/ir.model.access.csv',
21+
'views/users_views.xml',
2122
'views/estate_property_views.xml',
2223
'views/estate_property_offer_views.xml',
2324
'views/estate_property_type_views.xml',

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class Estateproperty(models.Model):
3434
default=('new')
3535
)
3636
property_type_id = fields.Many2one("estate.property.type", string="Type")
37-
salesperson = fields.Many2one('res.partner', string='Salesperson')
37+
salesperson = fields.Many2one('res.users', string='Salesperson')
3838
buyer = fields.Many2one('res.users', string='Buyer')
3939
tag_ids = fields.Many2many('estate.property.tag', string='Tag')
4040
offer_ids = fields.One2many('estate.property.offer', 'property_id', string='Offer')
@@ -89,3 +89,10 @@ def _check_selling_price(self):
8989
for record in self:
9090
if not(float_is_zero(record.selling_price,2)) and record.selling_price < 0.9 * record.expected_price:
9191
raise(UserError("Selling price can not be less than 90'%' of Excpected price"))
92+
93+
@api.ondelete(at_uninstall=False)
94+
def unlink(self):
95+
for record in self:
96+
if record.state not in {'new', 'cancelled'}:
97+
raise(UserError("Can not delete properties at this state"))
98+
return super.unlink()

estate/models/estate_property_offer.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class EstatePropertyOffer(models.Model):
1919
property_id = fields.Many2one('estate.property', required=True)
2020
validity = fields.Integer(string="Validity (days)", default=7)
2121
date_deadline = fields.Date(compute="_compute_date_deadline", inverse="_inverse_date_deadline")
22-
property_type_id = fields.Many2one(related="property_id.property_type_id")
22+
property_type_id = fields.Many2one(related="property_id.property_type_id", store=True)
2323

2424
_offer_price_strictly_positive = models.Constraint(
2525
'CHECK(price > 0)',
@@ -49,3 +49,10 @@ def accept_offer(self):
4949
def reject_offer(self):
5050
for record in self:
5151
record.status = 'refused'
52+
53+
@api.model
54+
def create(self, vals_list):
55+
if vals_list[0].get('price') < min(self.env['estate.property'].browse(vals_list[0].get('property_id')).offer_ids.mapped('price')):
56+
raise(UserError("Can not have an offer that is less the minimum offer"))
57+
self.env['estate.property'].browse(vals_list[0]['property_id']).state = 'offer received'
58+
return super().create(vals_list)

estate/models/res_users.py

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

estate/security/ir.model.access.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ access_estate_property_tag,estate.property.tag,model_estate_property_tag,base.gr
33
access_estate_property,estate.property,model_estate_property,base.group_user,1,1,1,1
44
access_estate_property_type,estate.property.type,model_estate_property_type,base.group_user,1,1,1,1
55
access_estate_property_offer,estate.property.offer,model_estate_property_offer,base.group_user,1,1,1,1
6+
access_res_users,res.users,model_res_users,base.group_user,1,1,1,1

estate/views/users_views.xml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
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</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 string="Real Estate Properties">
10+
<group>
11+
<field name="property_ids"/>
12+
</group>
13+
</page>
14+
</notebook>
15+
</field>
16+
</record>
17+
</odoo>

0 commit comments

Comments
 (0)