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 .