Merge pull request #5 from SARL-PACIFIC-ERP/staging

End of Server 101 tuto
This commit is contained in:
Matt Marcha 2024-08-10 10:56:58 -10:00 committed by GitHub
commit f61a5c1ed6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 45 additions and 7 deletions

View file

@ -14,7 +14,7 @@
'views/estate_property_tag_views.xml', 'views/estate_property_tag_views.xml',
'views/estate_property_views.xml', 'views/estate_property_views.xml',
'views/res_users_views.xml', 'views/res_users_views.xml',
'views/estate_menus_view.xml', 'views/estate_menus.xml',
'security/ir.model.access.csv', 'security/ir.model.access.csv',
], ],
'license': 'AGPL-3', 'license': 'AGPL-3',

View file

@ -1,5 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from odoo import api, fields, models, exceptions from dateutil.relativedelta import relativedelta
from odoo import api, exceptions, fields, models
from odoo.tools import float_utils as floatTool from odoo.tools import float_utils as floatTool
class EstateProperty(models.Model): class EstateProperty(models.Model):
@ -18,12 +20,15 @@ class EstateProperty(models.Model):
# ------------- Fields ------------------------- # # ------------- Fields ------------------------- #
def _default_date_availability(self):
return fields.Date.context_today(self) + relativedelta(months=3)
name = fields.Char(required=True) name = fields.Char(required=True)
description = fields.Text() description = fields.Text()
active = fields.Boolean(default=True) active = fields.Boolean(default=True)
state = fields.Selection(selection=[('new','New'), ('offer_received', 'Offer Received'), ('offer_accepted', 'Offer Accepted'), ('sold', 'Sold'), ('cancelled', 'Cancelled')], required=True, copy=False, default='new') state = fields.Selection(selection=[('new','New'), ('offer_received', 'Offer Received'), ('offer_accepted', 'Offer Accepted'), ('sold', 'Sold'), ('cancelled', 'Cancelled')], required=True, copy=False, default='new')
postcode = fields.Char() postcode = fields.Char()
date_availability = fields.Date(copy=False, default=fields.Date.add(fields.Date.today(), months=3)) date_availability = fields.Date(copy=False, default=lambda self: self._default_date_availability())
expected_price = fields.Float(required=True) expected_price = fields.Float(required=True)
selling_price = fields.Float(readonly=True, copy=False) selling_price = fields.Float(readonly=True, copy=False)
bedrooms = fields.Integer(default=2) bedrooms = fields.Integer(default=2)
@ -41,6 +46,7 @@ class EstateProperty(models.Model):
total_area = fields.Integer(compute="_get_total_area", readonly=True) total_area = fields.Integer(compute="_get_total_area", readonly=True)
best_price = fields.Float(compute="_compute_best_price") best_price = fields.Float(compute="_compute_best_price")
# ----------------- CRUD methods --------------------------- # # ----------------- CRUD methods --------------------------- #
@api.ondelete(at_uninstall=False) @api.ondelete(at_uninstall=False)

View file

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from odoo import api, fields, models, exceptions from odoo import api, exceptions, fields, models
from odoo.tools import float_utils as floatTool from odoo.tools import float_utils as floatTool
class EstatePropertyOffer(models.Model): class EstatePropertyOffer(models.Model):

View file

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from itertools import count from itertools import count
from odoo import fields, models, api from odoo import api, fields, models
class EstatePropertyType(models.Model): class EstatePropertyType(models.Model):

View file

@ -0,0 +1,10 @@
<?xml version="1.0"?>
<odoo>
<menuitem id="estate_menu_root" name="Real Estate" />
<menuitem id="estate_property_menu" name="Advertisements" parent="estate_menu_root" />
<menuitem id="estate_property_menu_action" action="estate_property_action" parent="estate_property_menu"/>
<menuitem id="estate_property_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_property_menu_settings"/>
<menuitem id="estate_property_tag_menu_action" action="estate_property_tag_action" name="Property Tags" parent="estate_property_menu_settings"/>
</odoo>

View file

@ -3,7 +3,7 @@
<record id="estate_property_action" model="ir.actions.act_window"> <record id="estate_property_action" model="ir.actions.act_window">
<field name="name">Properties</field> <field name="name">Properties</field>
<field name="res_model">estate.property</field> <field name="res_model">estate.property</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form,kanban</field>
<field name="context">{'search_default_available': True}</field> <field name="context">{'search_default_available': True}</field>
</record> </record>
@ -101,4 +101,26 @@
</search> </search>
</field> </field>
</record> </record>
<record id="estate_property_view_kanban" model="ir.ui.view">
<field name="name">estate.property.kanban</field>
<field name="model">estate.property</field>
<field name="arch" type="xml">
<kanban default_group_by="property_type_id" records_draggable="False">
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<h3><field name="name"/></h3>
<p>
Expected price : <field name="expected_price" /><br />
<t t-if="record.best_price.raw_value > 0.00">Best offer : <field name="best_price" /><br /></t>
<t t-if="record.selling_price.raw_value > 0.00">Accepted offer : <field name="selling_price" /><br /></t>
</p>
<field name="tag_ids" widget="kanban.many2many_tags" options="{'color_field': 'color'}" />
</div>
</t>
</templates>
</kanban>
</field>
</record>
</odoo> </odoo>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<odoo> <odoo>
<record id="res_users_view_form" model="ir.ui.view"> <record id="res_users_view_form" model="ir.ui.view">
<field name="name">res.users.view.form.inherit.estate</field> <field name="name">res.users.view.form.inherit.estate.properties</field>
<field name="model">res.users</field> <field name="model">res.users</field>
<field name="inherit_id" ref="base.view_users_form"/> <field name="inherit_id" ref="base.view_users_form"/>
<field name="arch" type="xml"> <field name="arch" type="xml">