diff --git a/beesdoo_base/__init__.py b/beesdoo_base/__init__.py index fe524ee..eca5f1d 100644 --- a/beesdoo_base/__init__.py +++ b/beesdoo_base/__init__.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- import models import wizard -import tools import controllers \ No newline at end of file diff --git a/beesdoo_base/__openerp__.py b/beesdoo_base/__openerp__.py index 593319e..229d3ec 100644 --- a/beesdoo_base/__openerp__.py +++ b/beesdoo_base/__openerp__.py @@ -15,7 +15,7 @@ 'category': 'Project Management', 'version': '0.1', - 'depends': ['point_of_sale', 'purchase', 'report', 'portal'], + 'depends': ['point_of_sale', 'purchase', 'report', 'portal', 'partner_firstname'], 'data': [ 'security/groups.xml', diff --git a/beesdoo_base/models/partner.py b/beesdoo_base/models/partner.py index 0c397d3..db8e592 100644 --- a/beesdoo_base/models/partner.py +++ b/beesdoo_base/models/partner.py @@ -7,8 +7,6 @@ class Partner(models.Model): _inherit = 'res.partner' - first_name = fields.Char('First Name') - last_name = fields.Char('Last Name') eater = fields.Selection([('eater', 'Eater'), ('worker_eater', 'Worker and Eater')], string="Eater/Worker") child_eater_ids = fields.One2many("res.partner", "parent_eater_id", domain=[('customer', '=', True), ('eater', '=', 'eater')]) @@ -23,10 +21,6 @@ class Partner(models.Model): cooperator_type = fields.Selection([('share_a', 'Share A'), ('share_b', 'Share B'), ('share_c', 'Share C')], store=True, compute=None) - @api.onchange('first_name', 'last_name') - def _on_change_name(self): - self.name = concat_names(self.first_name, self.last_name) - @api.one @api.depends('parent_eater_id', 'parent_eater_id.barcode', 'eater', 'member_card_ids') def _get_bar_code(self): @@ -83,18 +77,12 @@ class Partner(models.Model): card_data['barcode'] = barcode self.env['member.card'].create(card_data) - @api.noguess - def _auto_init(self, cr, context=None): - res = super(Partner, self)._auto_init(cr, context=context) - cr.execute("UPDATE res_partner set last_name = name where last_name IS NULL") - return res - @api.multi def _new_eater(self, surname, name, email): partner_data = { - 'name' : surname + " "+ name, - 'last_name' : name, - 'first_name' : surname, + + 'lastname' : name, + 'firstname' : surname, 'is_customer' : True, 'eater' : 'eater', 'parent_eater_id' : self.id, diff --git a/beesdoo_base/report/beescard.xml b/beesdoo_base/report/beescard.xml index a3761c6..34be32d 100644 --- a/beesdoo_base/report/beescard.xml +++ b/beesdoo_base/report/beescard.xml @@ -59,17 +59,17 @@

- +
- +

- - + + diff --git a/beesdoo_base/tools/__init__.py b/beesdoo_base/tools/__init__.py deleted file mode 100644 index 64ec8c0..0000000 --- a/beesdoo_base/tools/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -# -*- coding: utf-8 -*- - -def concat_names(*args): - """ - Concatenate only args that are not empty - @param args: a list of string - """ - return ' '.join(filter(bool, args)) diff --git a/beesdoo_base/views/partner.xml b/beesdoo_base/views/partner.xml index f5fbeb5..ec2df0e 100644 --- a/beesdoo_base/views/partner.xml +++ b/beesdoo_base/views/partner.xml @@ -19,14 +19,6 @@ res.partner - - - - - diff --git a/beesdoo_pos/models/beesdoo_pos.py b/beesdoo_pos/models/beesdoo_pos.py index 81e8627..24c1c01 100644 --- a/beesdoo_pos/models/beesdoo_pos.py +++ b/beesdoo_pos/models/beesdoo_pos.py @@ -75,5 +75,3 @@ class BeescoopPosPartner(models.Model): def get_eater(self): eater1, eater2, eater3 = self._get_eater() return eater1, eater2, eater3 - - last_name = fields.Char('Last Name', required=True, default="/") diff --git a/partner_firstname/__init__.py b/partner_firstname/__init__.py new file mode 100644 index 0000000..89d26e2 --- /dev/null +++ b/partner_firstname/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +import models diff --git a/partner_firstname/__openerp__.py b/partner_firstname/__openerp__.py new file mode 100644 index 0000000..c875990 --- /dev/null +++ b/partner_firstname/__openerp__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +{ + 'name': "Beescoop Base Module", + + 'summary': """ + Module that simply add a firstname on the module res.partner + replace the community module from the same name for the beescoop + """, + + 'description': """ + """, + + 'author': "Beescoop - Cellule IT", + 'website': "https://github.com/beescoop/Obeesdoo", + + 'category': 'Contact', + 'version': '1.0', + + 'depends': ['base'], + + 'data': [ + 'views/res_partner.xml', + ], +} diff --git a/partner_firstname/models/__init__.py b/partner_firstname/models/__init__.py new file mode 100644 index 0000000..0f63679 --- /dev/null +++ b/partner_firstname/models/__init__.py @@ -0,0 +1 @@ +import partner diff --git a/partner_firstname/models/partner.py b/partner_firstname/models/partner.py new file mode 100644 index 0000000..d5498f3 --- /dev/null +++ b/partner_firstname/models/partner.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +from openerp import models, fields, api, _ +from openerp.exceptions import ValidationError + +def concat_names(*args): + """ + Concatenate only args that are not empty + @param args: a list of string + """ + return ' '.join(filter(bool, args)) + +class Partner(models.Model): + + _inherit = 'res.partner' + + firstname = fields.Char('First Name') + lastname = fields.Char('Last Name', required=True, default="/") + name = fields.Char(compute='_get_name', inverse='_set_name', store=True) + + @api.depends('firstname', 'lastname') + def _get_name(self): + for rec in self: + rec.name = concat_names(rec.firstname, rec.lastname) + + def _set_name(self): + """ + This allow to handle the case of code that write directly on the name at creation + Should never happen but in case it happen write on the lastname + If there is no firstname lastname and name are the same + """ + for rec in self: + if not rec.firstname: + rec.lastname = rec.name + + + def _compatibility_layer(self, vals): + if 'last_name' in vals: + if not 'lastname' in vals: + vals['lastname'] = vals['last_name'] + vals.pop('last_name') + if 'first_name' in vals: + if not 'firstname' in vals: + vals['firstname'] = vals['first_name'] + vals.pop('first_name') + return vals + + @api.multi + def write(self, vals): + return super(Partner, self).write(self._compatibility_layer(vals)) + + @api.model + def create(self, vals): + return super(Partner, self).create(self._compatibility_layer(vals)) diff --git a/partner_firstname/views/res_partner.xml b/partner_firstname/views/res_partner.xml new file mode 100644 index 0000000..01e48b8 --- /dev/null +++ b/partner_firstname/views/res_partner.xml @@ -0,0 +1,17 @@ + + + beesdoo.partner.form.view + res.partner + + + + + + + + + +