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
+
+
+
+
+
+
+
+
+
+
|