瀏覽代碼

Este módulo modifica la función al cambiar del campo Usuario relacionado

SEBAS 2 周之前
當前提交
7599e95087
共有 13 個文件被更改,包括 152 次插入0 次删除
  1. 20 0
      README.rst
  2. 4 0
      __init__.py
  3. 二進制
      __init__.pyc
  4. 21 0
      __openerp__.py
  5. 22 0
      i18n/es.po
  6. 5 0
      models/__init__.py
  7. 二進制
      models/__init__.pyc
  8. 34 0
      models/hr_employee.py
  9. 二進制
      models/hr_employee.pyc
  10. 11 0
      models/res_partner.py
  11. 二進制
      models/res_partner.pyc
  12. 4 0
      tests/__init__.py
  13. 31 0
      tests/test_hr_employee_catch_partner.py

+ 20 - 0
README.rst

@@ -0,0 +1,20 @@
+.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
+    :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+    :alt: License: AGPL-3
+
+=========================
+Hr employee_catch_partner
+=========================
+
+* This module modifies the "onchange" function of the field "Related user" of
+  the form of employees. When a user is introduced, and this is associated with
+  a partner, take the partner of the user and display it in the "Home address"
+  field of the form of employees.
+
+Credits
+=======
+
+Contributors
+------------
+* Ana Juaristi <anajuaristi@avanzosc.es>
+* Alfredo de la Fuente <alfredodelafuente@avanzosc.es>

+ 4 - 0
__init__.py

@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+# (c) 2016 Alfredo de la Fuente - AvanzOSC
+# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
+from . import models

二進制
__init__.pyc


+ 21 - 0
__openerp__.py

@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# (c) 2016 Alfredo de la Fuente - AvanzOSC
+# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
+{
+    "name": "Hr Employee Catch Partner",
+    'version': '8.0.1.1.0',
+    'license': "AGPL-3",
+    'author': "AvanzOSC",
+    'website': "http://www.avanzosc.es",
+    'contributors': [
+        "Ana Juaristi <anajuaristi@avanzosc.es>",
+        "Alfredo de la Fuente <alfredodelafuente@avanzosc.es",
+    ],
+    "category": "Human Resources",
+    "depends": [
+        'hr',
+    ],
+    "data": [
+    ],
+    "installable": True,
+}

+ 22 - 0
i18n/es.po

@@ -0,0 +1,22 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+#	* hr_employee_catch_partner
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-02-23 13:33+0000\n"
+"PO-Revision-Date: 2016-02-23 13:33+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: hr_employee_catch_partner
+#: model:ir.model,name:hr_employee_catch_partner.model_hr_employee
+msgid "Employee"
+msgstr "Empleado"
+

+ 5 - 0
models/__init__.py

@@ -0,0 +1,5 @@
+# -*- coding: utf-8 -*-
+# (c) 2016 Alfredo de la Fuente - AvanzOSC
+# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
+from . import hr_employee
+from . import res_partner

二進制
models/__init__.pyc


+ 34 - 0
models/hr_employee.py

@@ -0,0 +1,34 @@
+# -*- coding: utf-8 -*-
+# (c) 2016 Alfredo de la Fuente - AvanzOSC
+# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
+from openerp import models, api
+
+
+class HrEmployee(models.Model):
+    _inherit = 'hr.employee'
+
+    @api.multi
+    def onchange_user(self, user_id):
+        user_obj = self.env['res.users']
+        result = super(HrEmployee, self).onchange_user(user_id)
+        if user_id:
+            cond = [('id', '=', user_id)]
+            user = user_obj.search(cond)
+            if user.partner_id:
+                result['value']['address_home_id'] = user.partner_id.id
+        return result
+
+    @api.model
+    def create(self, vals):
+        employee = super(HrEmployee, self).create(vals)
+        if employee.address_home_id:
+            employee.address_home_id.employee_id = employee.id
+        return employee
+
+    @api.multi
+    def write(self, vals):
+        result = super(HrEmployee, self).write(vals)
+        if vals.get('address_home_id', False):
+            for employee in self:
+                employee.address_home_id.employee_id = employee.id
+        return result

二進制
models/hr_employee.pyc


+ 11 - 0
models/res_partner.py

@@ -0,0 +1,11 @@
+# -*- coding: utf-8 -*-
+# (c) 2016 Alfredo de la Fuente - AvanzOSC
+# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
+from openerp import models, fields
+
+
+class ResPartner(models.Model):
+    _inherit = 'res.partner'
+
+    employee_id = fields.Many2one(
+        comodel_name='hr.employee', string='Employee')

二進制
models/res_partner.pyc


+ 4 - 0
tests/__init__.py

@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+# (c) 2016 Alfredo de la Fuente - AvanzOSC
+# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
+from . import test_hr_employee_catch_partner

+ 31 - 0
tests/test_hr_employee_catch_partner.py

@@ -0,0 +1,31 @@
+# -*- coding: utf-8 -*-
+# (c) 2016 Alfredo de la Fuente - AvanzOSC
+# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
+import openerp.tests.common as common
+
+
+class TestHrEmployeeCatchPartner(common.TransactionCase):
+
+    def setUp(self):
+        super(TestHrEmployeeCatchPartner, self).setUp()
+        self.employee_model = self.env['hr.employee']
+        self.demo_user = self.ref('base.user_demo')
+        employee_vals = {'name': 'employee name',
+                         'user_id':  self.ref('base.user_root')}
+        self.employee = self.employee_model.create(employee_vals)
+
+    def test_hr_employee_catch_partner(self):
+        result = self.employee.onchange_user(self.ref('base.user_root'))
+        self.assertNotEqual(
+            result.get('value', False), False, 'Value not found in result')
+        self.assertNotEqual(
+            result['value'].get('address_home_id', False), False,
+            'Partner not found')
+
+    def test_create_with_addres_home(self):
+        employee = self.employee_model.create({
+            'name': 'Test employee',
+            'user_id': self.demo_user,
+            'address_home_id': self.demo_user,
+        })
+        self.assertEqual(employee.address_home_id.employee_id.id, employee.id)