mirror of
https://github.com/SARL-PACIFIC-ERP/odoo-sh-test.git
synced 2025-06-25 09:32:22 +00:00
end of chapt 7
This commit is contained in:
parent
92013b2cc9
commit
dd262c69c5
|
@ -8,6 +8,7 @@
|
|||
'base',
|
||||
],
|
||||
'data': [
|
||||
'views/estate_property_offer_views.xml',
|
||||
'views/estate_property_views.xml',
|
||||
'views/estate_menus_view.xml',
|
||||
'security/ir.model.access.csv'
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import estate_property
|
||||
from . import estate_property_type
|
||||
from . import estate_property_tag
|
||||
from . import estate_property_offer
|
|
@ -21,3 +21,8 @@ class EstateProperty(models.Model):
|
|||
garden = fields.Boolean()
|
||||
garden_area = fields.Integer()
|
||||
garden_orientation = fields.Selection(selection=[('north', 'North'), ('south', 'South'), ('east', 'East'), ('west', 'West')])
|
||||
property_type_id = fields.Many2one("estate.property.type", "Property Type")
|
||||
salesman_id = fields.Many2one("res.users", string="Salesman")
|
||||
buyer_id = fields.Many2one("res.partner", string="Buyer")
|
||||
tag_ids = fields.Many2many("estate.property.tag", string="Tags")
|
||||
offer_ids = fields.One2many("estate.property.offer", "property_id", string="Offers")
|
11
estate/models/estate_property_offer.py
Normal file
11
estate/models/estate_property_offer.py
Normal file
|
@ -0,0 +1,11 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from odoo import fields, models
|
||||
|
||||
class EstatePropertyOffer(models.Model):
|
||||
_name = "estate.property.offer"
|
||||
_description = "Offers made on properties"
|
||||
|
||||
price = fields.Float()
|
||||
status = fields.Selection(copy=False, selection=[('accepted', 'Accepted'), ('refused', 'Refused')])
|
||||
partner_id = fields.Many2one("res.partner", required=True)
|
||||
property_id = fields.Many2one("estate.property", required=True)
|
8
estate/models/estate_property_tag.py
Normal file
8
estate/models/estate_property_tag.py
Normal file
|
@ -0,0 +1,8 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from odoo import fields, models
|
||||
|
||||
class EstatePropertyTag(models.Model):
|
||||
_name = "estate.property.tag"
|
||||
_description = "Tags for properties"
|
||||
|
||||
name = fields.Char(required=True)
|
9
estate/models/estate_property_type.py
Normal file
9
estate/models/estate_property_type.py
Normal file
|
@ -0,0 +1,9 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
class EstatePropertyType(models.Model):
|
||||
_name = "estate.property.type"
|
||||
_description = "Types of properties"
|
||||
|
||||
name = fields.Char(required=True)
|
|
@ -1,2 +1,5 @@
|
|||
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_estate_property,access_estate_property,model_estate_property,base.group_user,1,1,1,1
|
||||
access_estate_property_type,access_estate_property_type,model_estate_property_type,base.group_user,1,1,1,1
|
||||
access_estate_property_tag,access_estate_property_tag,model_estate_property_tag,base.group_user,1,1,1,1
|
||||
access_estate_property_offer,access_estate_property_offer,model_estate_property_offer,base.group_user,1,1,1,1
|
|
|
@ -1,8 +1,10 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<menuitem id="estate_menu_root" name="Real Estate">
|
||||
<menuitem id="estate_first_level_menu" name="Advertiments">
|
||||
<menuitem id="estate_property_menu_action" action="estate_property_action" />
|
||||
</menuitem>
|
||||
</menuitem>
|
||||
<menuitem id="estate_menu_root" name="Real Estate" />
|
||||
<menuitem id="estate_first_level_menu_advertisements" name="Advertisements" parent="estate_menu_root" />
|
||||
<menuitem id="estate_property_menu_action" action="estate_property_action" parent="estate_first_level_menu_advertisements"/>
|
||||
|
||||
<menuitem id="estate_first_level_menu_settings" name="Settings" parent="estate_menu_root" />
|
||||
<menuitem id="estate_property_type_menu_action" action="estate_property_type_action" name="Property Types" parent="estate_first_level_menu_settings"/>
|
||||
<menuitem id="estate_property_tag_menu_action" action="estate_property_tag_action" name="Property Tags" parent="estate_first_level_menu_settings"/>
|
||||
</odoo>
|
28
estate/views/estate_property_offer_views.xml
Normal file
28
estate/views/estate_property_offer_views.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="estate_property_offer_tree_view" model="ir.ui.view">
|
||||
<field name="name">estate.property.offer.tree</field>
|
||||
<field name="model">estate.property.offer</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Offers">
|
||||
<field name="price" />
|
||||
<field name="partner_id" />
|
||||
<field name="status" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="estate_property_view_form" model="ir.ui.view">
|
||||
<field name="name">estate.property.offer.form</field>
|
||||
<field name="model">estate.property.offer</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<field name="price" />
|
||||
<field name="partner_id" />
|
||||
<field name="status" />
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
|
@ -12,6 +12,7 @@
|
|||
<field name="arch" type="xml">
|
||||
<tree string="Properties">
|
||||
<field name="name" />
|
||||
<field name="property_type_id" />
|
||||
<field name="postcode" />
|
||||
<field name="bedrooms" />
|
||||
<field name="living_area" />
|
||||
|
@ -28,13 +29,13 @@
|
|||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
<field name="name" />
|
||||
</h1>
|
||||
</div>
|
||||
<h1>
|
||||
<field name="name" />
|
||||
</h1>
|
||||
<field name="tag_ids" widget="many2many_tags" />
|
||||
<group>
|
||||
<group>
|
||||
<field name="property_type_id" />
|
||||
<field name="postcode" />
|
||||
<field name="date_availability" />
|
||||
</group>
|
||||
|
@ -56,9 +57,50 @@
|
|||
<field name="garden_orientation" />
|
||||
</group>
|
||||
</page>
|
||||
<page string="People">
|
||||
<group>
|
||||
<field name="salesman_id" default="self._uid" />
|
||||
<field name="buyer_id" copy="False" />
|
||||
</group>
|
||||
</page>
|
||||
<page string="Offers">
|
||||
<field name="offer_ids" />
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="estate_property_view_search" model="ir.ui.view">
|
||||
<field name="name">estate.property.search</field>
|
||||
<field name="model">estate.property</field>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<field name="name" string="Title" />
|
||||
<field name="postcode"/>
|
||||
<field name="property_type_id" />
|
||||
<field name="bedrooms"/>
|
||||
<field name="expected_price" string="Expected price (sqm)"/>
|
||||
<field name="living_area"/>
|
||||
<field name="facades"/>
|
||||
<filter string="Available" name="available" domain="['|',('state', '=', 'new'), ('state', '=', 'offer_received')]"/>
|
||||
<group expand="1" string="Group By">
|
||||
<filter name="group_postcode" string="Postcode" context="{'group_by':'postcode'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="estate_property_type_action" model="ir.actions.act_window">
|
||||
<field name="name">Property Types</field>
|
||||
<field name="res_model">estate.property.type</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<record id="estate_property_tag_action" model="ir.actions.act_window">
|
||||
<field name="name">Property Tags</field>
|
||||
<field name="res_model">estate.property.tag</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
</odoo>
|
Loading…
Reference in a new issue