From f0dea08da2cbbe1dcc89485aabe34e58a1d05713 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20V=C3=A9zina?= Date: Sun, 29 Oct 2023 14:10:37 -0400 Subject: [PATCH] add view to import relation --- bemade_sethy_configuration/__manifest__.py | 4 +- .../models/res_partner.py | 66 +++++++++-- .../views/membership_membership_line.xml | 85 ++++++++++++++ .../views/res_partner_views.xml | 106 ++++++++++++++---- 4 files changed, 230 insertions(+), 31 deletions(-) create mode 100644 bemade_sethy_configuration/views/membership_membership_line.xml diff --git a/bemade_sethy_configuration/__manifest__.py b/bemade_sethy_configuration/__manifest__.py index 94d0cc1..7ff25fa 100644 --- a/bemade_sethy_configuration/__manifest__.py +++ b/bemade_sethy_configuration/__manifest__.py @@ -23,7 +23,9 @@ 'data/partner_tags_data.xml', 'data/partner_relations_data.xml', 'views/res_partner_views.xml', - 'views/res_partner_relation_views.xml' + 'views/res_partner_relation_views.xml', + 'views/membership_membership_line.xml' + ], 'demo': [ # Reference to demo data files diff --git a/bemade_sethy_configuration/models/res_partner.py b/bemade_sethy_configuration/models/res_partner.py index 854ed8f..eda0d74 100644 --- a/bemade_sethy_configuration/models/res_partner.py +++ b/bemade_sethy_configuration/models/res_partner.py @@ -7,13 +7,29 @@ from odoo.addons.website.models import ir_http class ResPartner(models.Model): _inherit = 'res.partner' - surface = fields.Float(string='Surface (ha)') - lot_number = fields.Text(string='Lot Number') - ref_project = fields.Text(string='Project No') - intent_signing = fields.Boolean(string='Intent to sign') - cyberimpact = fields.Boolean(string='Cyberimpact') - specification_date = fields.Date(string='Specification date') - crm_stage_activity = fields.Text(string='Activity Stage') + surface = fields.Float(string='Surface (ha)') # terrain + lot_number = fields.Text(string='Lot Number') # terrain + + ref_project = fields.Text(string='Project No') # proprio + intent_signing = fields.Boolean(string='Intent to sign') # proprio + cyberimpact = fields.Boolean(string='Cyberimpact') # proprio + specification_date = fields.Date(string='Specification date') # proprio + crm_stage_activity = fields.Text(string='Activity Stage') # proprio + + property_count = fields.Integer(string='Property count', compute='_compute_property_count') + is_owner = fields.Boolean(string='Is Owner', compute='_compute_property_count') + + sethy_firs_tdate = fields.Date(string='First membership date') # member + sethy_last_date = fields.Date(string='Last membership date') # member + sethy_renew_date = fields.Date(string='Next renew date date') # member + sethy_certification_date = fields.Date(string='Certification date date') # member + sethy_payment_type = fields.Text(string='Payment Type') # member + sethy_amount = fields.Float(string='Payment amount') # Member + + is_property = fields.Boolean( + string='Is Property', + default=False + ) # True if property, False if not interest_level = fields.Selection( selection=[ @@ -21,9 +37,9 @@ class ResPartner(models.Model): ('2', 'Low'), ('3', 'Average'), ('4', 'High')], - string='Interest Level') + string='Interest Level') # proprio - company_use = fields.Text(string='Company related') + company_use = fields.Text(string='Company related') # proprio relation_owner_ids = fields.One2many( "res.partner.relation.all", @@ -42,7 +58,7 @@ class ResPartner(models.Model): for record in self: record.relation_owner_ids = record.relation_all_ids.filtered( lambda line: ( - line.type_id.name == 'Owner' and not line.is_inverse) + line.type_id.name == 'Owner' and not line.is_inverse) ) @api.depends('relation_all_ids') @@ -52,3 +68,33 @@ class ResPartner(models.Model): lambda line: ( line.type_id.name == 'Owner' and line.is_inverse) ) + + # @api.depends('is_property') + # def _forcing_company(self): + # for record in self: + # if record.is_property: + # record.is_company = True + + @api.onchange('is_property') + def _onchange_is_property(self): + """ Set is_company to True when is_property is set to True. """ + if self.is_property: + self.is_company = True + + @api.onchange('is_company') + def _onchange_is_company(self): + """ Set is_property to False when is_company is set to False. """ + if not self.is_company: + self.is_property = False + + @api.onchange('lot_number') + def _onchange_lot_number(self): + for lot in self: + if lot.lot_number: + lot.name = "Lot " + str(lot.lot_number) + + @api.depends('relation_property_ids') + def _compute_property_count(self): + for record in self: + record.property_count = len(record.relation_property_ids) + record.is_owner = record.property_count > 0 \ No newline at end of file diff --git a/bemade_sethy_configuration/views/membership_membership_line.xml b/bemade_sethy_configuration/views/membership_membership_line.xml new file mode 100644 index 0000000..19448f2 --- /dev/null +++ b/bemade_sethy_configuration/views/membership_membership_line.xml @@ -0,0 +1,85 @@ + + + + membership.membership_line + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Membership line + membership.membership_line + tree + + + + +

+ Record and track your partners'membership +

+
+
+ + +
diff --git a/bemade_sethy_configuration/views/res_partner_views.xml b/bemade_sethy_configuration/views/res_partner_views.xml index 5f63c33..c7d0e49 100644 --- a/bemade_sethy_configuration/views/res_partner_views.xml +++ b/bemade_sethy_configuration/views/res_partner_views.xml @@ -6,38 +6,93 @@ res.partner + +