diff --git a/estate/__manifest__.py b/estate/__manifest__.py index ab70a45..840d0f6 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -14,7 +14,7 @@ 'views/estate_property_tag_views.xml', 'views/estate_property_views.xml', 'views/res_users_views.xml', - 'views/estate_menus_view.xml', + 'views/estate_menus.xml', 'security/ir.model.access.csv', ], 'license': 'AGPL-3', diff --git a/estate/models/estate_property.py b/estate/models/estate_property.py index f56e904..0d87087 100644 --- a/estate/models/estate_property.py +++ b/estate/models/estate_property.py @@ -1,5 +1,7 @@ # -*- 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 class EstateProperty(models.Model): @@ -18,12 +20,15 @@ class EstateProperty(models.Model): # ------------- Fields ------------------------- # + def _default_date_availability(self): + return fields.Date.context_today(self) + relativedelta(months=3) + name = fields.Char(required=True) description = fields.Text() 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') 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) selling_price = fields.Float(readonly=True, copy=False) bedrooms = fields.Integer(default=2) @@ -41,6 +46,7 @@ class EstateProperty(models.Model): total_area = fields.Integer(compute="_get_total_area", readonly=True) best_price = fields.Float(compute="_compute_best_price") + # ----------------- CRUD methods --------------------------- # @api.ondelete(at_uninstall=False) diff --git a/estate/models/estate_property_offer.py b/estate/models/estate_property_offer.py index d38edb0..83c8535 100644 --- a/estate/models/estate_property_offer.py +++ b/estate/models/estate_property_offer.py @@ -1,5 +1,5 @@ # -*- 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 class EstatePropertyOffer(models.Model): diff --git a/estate/models/estate_property_type.py b/estate/models/estate_property_type.py index 1402d42..30a2044 100644 --- a/estate/models/estate_property_type.py +++ b/estate/models/estate_property_type.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from itertools import count -from odoo import fields, models, api +from odoo import api, fields, models class EstatePropertyType(models.Model): diff --git a/estate/views/estate_menus.xml b/estate/views/estate_menus.xml new file mode 100644 index 0000000..3961fcf --- /dev/null +++ b/estate/views/estate_menus.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/estate/views/estate_property_views.xml b/estate/views/estate_property_views.xml index 74ccd50..7481347 100644 --- a/estate/views/estate_property_views.xml +++ b/estate/views/estate_property_views.xml @@ -3,7 +3,7 @@ Properties estate.property - tree,form + tree,form,kanban {'search_default_available': True} @@ -101,4 +101,26 @@ + + + estate.property.kanban + estate.property + + + + +
+

+

+ Expected price :
+ Best offer :
+ Accepted offer :
+

+ +
+
+
+
+
+
\ No newline at end of file diff --git a/estate/views/res_users_views.xml b/estate/views/res_users_views.xml index 41efd20..4cc443c 100644 --- a/estate/views/res_users_views.xml +++ b/estate/views/res_users_views.xml @@ -1,7 +1,7 @@ - res.users.view.form.inherit.estate + res.users.view.form.inherit.estate.properties res.users