From 25d2f6ac62d9373ed619165b3fb09fa9d6beb5a1 Mon Sep 17 00:00:00 2001 From: Fabien BOURGEOIS Date: Fri, 20 Jul 2018 12:02:53 +0200 Subject: [PATCH] [IMP]GOLEM Member numbers now generated only after memberships --- golem_member/__manifest__.py | 2 +- golem_member/models/golem_member.py | 27 +++++++++++++++-------- golem_member/views/golem_member_views.xml | 8 +++---- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/golem_member/__manifest__.py b/golem_member/__manifest__.py index 9e9828f..0deb99e 100644 --- a/golem_member/__manifest__.py +++ b/golem_member/__manifest__.py @@ -20,7 +20,7 @@ 'name': 'GOLEM non-profit members', 'summary': 'Extends Odoo contacts for MJC', 'description': 'Extends Odoo contacts for MJC', - 'version': '10.0.2.0.0', + 'version': '10.0.2.1.0', 'category': 'GOLEM', 'author': 'Fabien Bourgeois, Michel Dessenne', 'license': 'AGPL-3', diff --git a/golem_member/models/golem_member.py b/golem_member/models/golem_member.py index 5e74653..19e1314 100644 --- a/golem_member/models/golem_member.py +++ b/golem_member/models/golem_member.py @@ -66,6 +66,19 @@ class ResPartner(models.Model): gm_obj = self.env['golem.member'] gm_obj.create({'partner_id': self[0].id}) +class GolemMembershipInvoice(models.TransientModel): + """ GOLEM Membership Invoice adaptations """ + _inherit = 'golem.membership.invoice' + + @api.multi + def membership_invoice(self): + """ Extend invoice generation with number generation """ + self.ensure_one() + res = super(GolemMembershipInvoice, self).membership_invoice() + if self.partner_id.member_id: + self.partner_id.member_id.generate_number() + return res + class GolemMember(models.Model): """ GOLEM Member model """ @@ -210,7 +223,7 @@ class GolemMember(models.Model): isauto = conf.get_param('golem_numberconfig_isautomatic') == '1' isperseason = conf.get_param('golem_numberconfig_isperseason') == '1' isfornew = conf.get_param('golem_numberconfig_isfornewmembersonly') == '1' - for member in self: + for member in self.filtered(lambda m: m.membership_state != 'none'): if not isauto or (isfornew and member.number_manual): member.number = member.number_manual else: @@ -219,13 +232,6 @@ class GolemMember(models.Model): else: member.number = member.generate_number_global() - @api.model - def create(self, values): - """ Number generation after creation """ - new_member = super(GolemMember, self).create(values) - new_member.generate_number() - return new_member - @api.multi def write(self, values): """ Number generation after updates """ @@ -318,7 +324,10 @@ class GolemNumberConfig(models.TransientModel): self.env['golem.season'].search([]).write({ 'member_counter': int(self.number_from) }) - self.env['golem.member'].search([]).generate_number() + member_obj = self.env['golem.member'] + member_obj.search([('membership_state', '=', 'none')]).write({'number': False}) + member_obj.search([('membership_state', '!=', 'none')]).generate_number() + return {'type': 'ir.actions.client', 'tag': 'reload'} class MergePartnerAutomatic(models.TransientModel): diff --git a/golem_member/views/golem_member_views.xml b/golem_member/views/golem_member_views.xml index 79e5df8..b42024a 100644 --- a/golem_member/views/golem_member_views.xml +++ b/golem_member/views/golem_member_views.xml @@ -68,10 +68,10 @@ along with this program. If not, see . + attrs="{'invisible': ['|', ('membership_state', '=', 'none'), ('is_number_manual', '=', True)]}" /> + attrs="{'invisible': ['|', ('membership_state', '=', 'none'), ('is_number_manual', '=', False)], + 'required': [('is_number_manual', '=', True), ('membership_state', '!=', 'none')]}" /> @@ -210,7 +210,7 @@ along with this program. If not, see .

- (N° ) + (N° )