Skip to content

Commit 1f4e08d

Browse files
[IMP] estate: Add property types, tags and offers (ch 7)
1 parent 39fbcbf commit 1f4e08d

12 files changed

Lines changed: 132 additions & 1 deletion

estate/__manifest__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
'data': [
1717
'security/ir.model.access.csv',
1818
'views/estate_property_views.xml',
19+
'views/estate_property_type_views.xml',
20+
'views/estate_property_tag_views.xml',
21+
'views/estate_property_offer_views.xml',
1922
'views/estate_menus.xml',
2023
],
2124
'license': 'LGPL-3',

estate/models/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
# -*- coding: utf-8 -*-
22
from . import estate_property
3+
from . import estate_property_type
4+
from . import estate_property_tag
5+
from . import estate_property_offer

estate/models/estate_property.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,8 @@ class EstateProperty(models.Model):
3434
('sold', 'Sold'),
3535
('cancelled', 'Cancelled')])
3636
active = fields.Boolean(default=True)
37+
property_type_id = fields.Many2one("estate.property.type", string="Type")
38+
buyer_id = fields.Many2one("res.partner", string="Buyer", copy=False)
39+
salesperson_id = fields.Many2one("res.users", string="Salesperson", default=lambda self: self.env.user)
40+
tag_ids = fields.Many2many("estate.property.tag", string="Tags")
41+
offer_ids = fields.One2many("estate.property.offer", "property_id", string="Offers")
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from odoo import fields, models
2+
3+
class EstatePropertyOffer(models.Model):
4+
_name = "estate.property.offer"
5+
_description = "Estate property offer"
6+
7+
price = fields.Float()
8+
status = fields.Selection(copy=False, selection=[('accepted', 'Accepted'), ('refused', 'Refused')])
9+
partner_id = fields.Many2one("res.partner", string="Partner", required=True)
10+
property_id = fields.Many2one("estate.property", string="Property", required=True)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from odoo import fields, models
2+
3+
class EstatePropertyTag(models.Model):
4+
_name = "estate.property.tag"
5+
_description = "Estate property tag"
6+
7+
name = fields.Char('Tag', required=True)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from odoo import fields, models
2+
3+
class EstatePropertyType(models.Model):
4+
_name = "estate.property.type"
5+
_description = "Estate property type"
6+
7+
name = fields.Char('Type', required=True)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
22
access_estate_property,access_estate_property,model_estate_property,base.group_user,1,1,1,1
3+
access_estate_property_type,access_estate_property_type,model_estate_property_type,base.group_user,1,1,1,1
4+
access_estate_property_tag,access_estate_property_tag,model_estate_property_tag,base.group_user,1,1,1,1
5+
access_estate_property_offer,access_estate_property_offer,model_estate_property_offer,base.group_user,1,1,1,1

estate/views/estate_menus.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,9 @@
33
<menuitem id="advertisements_menu" name="Advertisements">
44
<menuitem id="estate_property_menu_action" action="estate_property_action"/>
55
</menuitem>
6+
<menuitem id="settings_menu" name="Settings">
7+
<menuitem id="estate_property_type_menu_action" action="estate_property_type_action"/>
8+
<menuitem id="estate_property_tag_menu_action" action="estate_property_tag_action"/>
9+
</menuitem>
610
</menuitem>
711
</odoo>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<odoo>
2+
<record id="estate_property_offer_view_list" model="ir.ui.view">
3+
<field name="name">estate.property.offer.list</field>
4+
<field name="model">estate.property.offer</field>
5+
<field name="arch" type="xml">
6+
<list string="Offers">
7+
<field name="price"/>
8+
<field name="partner_id"/>
9+
<field name="status"/>
10+
</list>
11+
</field>
12+
</record>
13+
14+
<record id="estate_property_offer_view_form" model="ir.ui.view">
15+
<field name="name">estate.property.offer.form</field>
16+
<field name="model">estate.property.offer</field>
17+
<field name="arch" type="xml">
18+
<form string="Offer">
19+
<sheet>
20+
<group>
21+
<field name="price"/>
22+
<field name="partner_id"/>
23+
<field name="status"/>
24+
</group>
25+
</sheet>
26+
</form>
27+
</field>
28+
</record>
29+
</odoo>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<odoo>
2+
<record id="estate_property_tag_action" model="ir.actions.act_window">
3+
<field name="name">Property Tags</field>
4+
<field name="res_model">estate.property.tag</field>
5+
<field name="view_mode">list,form</field>
6+
</record>
7+
8+
<record id="estate_property_tag_view_form" model="ir.ui.view">
9+
<field name="name">estate.property.tag.form</field>
10+
<field name="model">estate.property.tag</field>
11+
<field name="arch" type="xml">
12+
<form string="Property tag">
13+
<sheet>
14+
<div class="oe_title">
15+
<h1 class="mb16">
16+
<field name="name"/>
17+
</h1>
18+
</div>
19+
</sheet>
20+
</form>
21+
</field>
22+
</record>
23+
</odoo>

0 commit comments

Comments
 (0)