From a5623e1fc2c8d2e267b1abd104cef792335ac04f Mon Sep 17 00:00:00 2001 From: Sudhir Arya Date: Fri, 15 Sep 2017 19:41:10 +0530 Subject: [PATCH] [MIG]Migrated Business Requirement Deliverable Resource Template from 8.0 to 10.0. (#236) * [MIG]Migrated Business Requirement Deliverable Resource Template from 8.0 to 10.0. * [IMP]Added Test-cases and Improved test-cases code * [IMP]Improved code for demo data * [IMP]Removed unused import statement * [REM/ADD]Moved demo data files from data folder to demo folder --- .../README.rst | 4 +- .../__manifest__.py | 6 +- ...ent_deliverable_resource_template_demo.xml | 38 ++++++------- .../business_requirement_resource_template.py | 15 +++-- .../models/product_template.py | 2 +- .../tests/__init__.py | 3 +- .../tests/test_br_deliverable.py | 57 +++++++++++++++++++ .../tests/test_br_resource_template.py | 12 ++-- ...siness_requirement_deliverable_default.xml | 50 ++++++++-------- 9 files changed, 123 insertions(+), 64 deletions(-) rename business_requirement_deliverable_resource_template/{data => demo}/business_requirement_deliverable_resource_template_demo.xml (74%) create mode 100644 business_requirement_deliverable_resource_template/tests/test_br_deliverable.py diff --git a/business_requirement_deliverable_resource_template/README.rst b/business_requirement_deliverable_resource_template/README.rst index 9cb04281d..19a8d8dea 100644 --- a/business_requirement_deliverable_resource_template/README.rst +++ b/business_requirement_deliverable_resource_template/README.rst @@ -10,7 +10,7 @@ Business Requirement Introduction ============ -This module is part of a set of modules (`Business Requirements `_) +This module is part of a set of modules (`Business Requirements `_) This module adds the following features particularly useful for sales package with standard resources: @@ -58,7 +58,7 @@ Usage .. figure:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/222/8.0 + :target: https://runbot.odoo-community.org/runbot/222/10.0 Known issues / Roadmap ====================== diff --git a/business_requirement_deliverable_resource_template/__manifest__.py b/business_requirement_deliverable_resource_template/__manifest__.py index 15a4d8168..21ccda31e 100644 --- a/business_requirement_deliverable_resource_template/__manifest__.py +++ b/business_requirement_deliverable_resource_template/__manifest__.py @@ -6,7 +6,7 @@ 'category': 'Business Requirements Management', 'summary': """Manage default resource lines in your deliverable sales package from product template""", - 'version': '8.0.1.0.1', + 'version': '10.0.1.0.0', 'website': 'https://www.elico-corp.com/', "author": "Elico Corp, Odoo Community Association (OCA)", 'depends': [ @@ -22,8 +22,8 @@ "views/business_requirement_deliverable_default.xml", ], 'demo': [ - 'data/business_requirement_deliverable_resource_template_demo.xml' + 'demo/business_requirement_deliverable_resource_template_demo.xml' ], 'license': 'AGPL-3', - 'installable': False, + 'installable': True, } diff --git a/business_requirement_deliverable_resource_template/data/business_requirement_deliverable_resource_template_demo.xml b/business_requirement_deliverable_resource_template/demo/business_requirement_deliverable_resource_template_demo.xml similarity index 74% rename from business_requirement_deliverable_resource_template/data/business_requirement_deliverable_resource_template_demo.xml rename to business_requirement_deliverable_resource_template/demo/business_requirement_deliverable_resource_template_demo.xml index 4d9355036..aa797e969 100644 --- a/business_requirement_deliverable_resource_template/data/business_requirement_deliverable_resource_template_demo.xml +++ b/business_requirement_deliverable_resource_template/demo/business_requirement_deliverable_resource_template_demo.xml @@ -1,5 +1,5 @@ - + 1 + ref="business_requirement_deliverable.product_product_1"/> + ref="business_requirement_deliverable.product_template_1"/> @@ -20,9 +20,9 @@ 1 + ref="business_requirement_deliverable.product_product_2"/> + ref="business_requirement_deliverable.product_template_2"/> @@ -31,9 +31,9 @@ 1 + ref="business_requirement_deliverable.product_product_3"/> + ref="business_requirement_deliverable.product_template_3"/> @@ -44,7 +44,7 @@ + ref="business_requirement_deliverable.product_template_5"/> @@ -53,9 +53,9 @@ 1 + ref="business_requirement_deliverable.product_product_4"/> + ref="business_requirement_deliverable.product_template_5"/> @@ -64,9 +64,9 @@ 3 + ref="business_requirement_deliverable.product_product_2"/> + ref="business_requirement_deliverable.product_template_5"/> @@ -75,9 +75,9 @@ 7 + ref="business_requirement_deliverable.product_product_1"/> + ref="business_requirement_deliverable.product_template_5"/> @@ -86,9 +86,9 @@ 24 + ref="business_requirement_deliverable.product_product_3"/> + ref="business_requirement_deliverable.product_template_6"/> @@ -97,10 +97,10 @@ 32 + ref="business_requirement_deliverable.product_product_1"/> + ref="business_requirement_deliverable.product_template_6"/> - + diff --git a/business_requirement_deliverable_resource_template/models/business_requirement_resource_template.py b/business_requirement_deliverable_resource_template/models/business_requirement_resource_template.py index 5574c3c18..fba782b2f 100644 --- a/business_requirement_deliverable_resource_template/models/business_requirement_resource_template.py +++ b/business_requirement_deliverable_resource_template/models/business_requirement_resource_template.py @@ -1,9 +1,8 @@ # -*- coding: utf-8 -*- # © 2017 Elico Corp (https://www.elico-corp.com). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openerp import api, fields, models -from openerp.exceptions import ValidationError -from openerp.tools.translate import _ +from odoo import api, fields, models, _ +from odoo.exceptions import ValidationError class BusinessRequirementDeliverable(models.Model): @@ -12,11 +11,12 @@ class BusinessRequirementDeliverable(models.Model): def _prepare_resource_lines(self): rl_data = self.env['business.requirement.resource.template'].search( [('product_template_id', '=', self.product_id.product_tmpl_id.id)], - order='sequence' - ).copy_data() - return [(0, 0, item) for index, item in enumerate(rl_data)] + order='sequence') + data = [] + for rec in rl_data: + data.append(rec.copy_data()[0]) + return [(0, 0, item) for index, item in enumerate(data)] - @api.multi @api.onchange('product_id') def product_id_change(self): super(BusinessRequirementDeliverable, self).product_id_change() @@ -62,7 +62,6 @@ class BusinessRequirementResourceTemplate(models.Model): default='task' ) - @api.multi @api.onchange('product_id') def product_id_change(self): description = '' diff --git a/business_requirement_deliverable_resource_template/models/product_template.py b/business_requirement_deliverable_resource_template/models/product_template.py index 74761697e..3e977b6f7 100644 --- a/business_requirement_deliverable_resource_template/models/product_template.py +++ b/business_requirement_deliverable_resource_template/models/product_template.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # © 2017 Elico Corp (https://www.elico-corp.com). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openerp import fields, models +from odoo import fields, models class ProductTemplate(models.Model): diff --git a/business_requirement_deliverable_resource_template/tests/__init__.py b/business_requirement_deliverable_resource_template/tests/__init__.py index 11d3f5d0c..7405e14d4 100644 --- a/business_requirement_deliverable_resource_template/tests/__init__.py +++ b/business_requirement_deliverable_resource_template/tests/__init__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- -# © 2016 Elico Corp (https://www.elico-corp.com). +# © 2017 Elico Corp (https://www.elico-corp.com). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from . import test_br_resource_template +from . import test_br_deliverable diff --git a/business_requirement_deliverable_resource_template/tests/test_br_deliverable.py b/business_requirement_deliverable_resource_template/tests/test_br_deliverable.py new file mode 100644 index 000000000..0700eee1e --- /dev/null +++ b/business_requirement_deliverable_resource_template/tests/test_br_deliverable.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# © 2017 Elico Corp (https://www.elico-corp.com). +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from odoo.tests import common + + +class BusinessRequirementDeliverable(common.TransactionCase): + def setUp(self): + super(BusinessRequirementDeliverable, self).setUp() + self.categ_wtime = self.env.ref('product.uom_categ_wtime') + self.categ_kgm = self.env.ref('product.product_uom_categ_kgm') + + self.UomObj = self.env['product.uom'] + self.uom_hours = self.UomObj.create({ + 'name': 'Test-Hours', + 'category_id': self.categ_wtime.id, + 'factor': 8, + 'uom_type': 'smaller'}) + self.uom_kg = self.UomObj.create({ + 'name': 'Test-KG', + 'category_id': self.categ_kgm.id, + 'factor_inv': 1, + 'factor': 1, + 'uom_type': 'reference', + 'rounding': 0.000001}) + self.ProductS = self.env.ref('product.service_order_01') + vals = { + 'description': ' test', + 'deliverable_lines': [ + (0, 0, {'name': 'deliverable line1', 'qty': 1.0, + 'product_id': self.ProductS.id, + 'sale_price_unit': 900, 'uom_id': 1}), + (0, 0, {'name': 'deliverable line2', 'qty': 1.0, + 'sale_price_unit': 1100, 'uom_id': 1}), + (0, 0, {'name': 'deliverable line3', 'qty': 1.0, + 'sale_price_unit': 1300, 'uom_id': 1}), + (0, 0, {'name': 'deliverable line4', 'qty': 1.0, + 'sale_price_unit': 1500, 'uom_id': 1, + }), + ] + } + self.br = self.env['business.requirement'].create(vals) + self.BRTemplate = self.env['business.requirement.resource.template'] + + def test_product_id_change(self): + for dl in self.br.deliverable_lines: + dl.product_id_change() + + def test_prepare_resource_lines(self): + self.BRT = self.BRTemplate.create({ + 'name': 'BR Template', + 'product_template_id': self.ProductS.product_tmpl_id.id, + 'uom_id': self.uom_hours.id, + 'resource_type': 'task' + }) + for dl in self.br.deliverable_lines: + dl._prepare_resource_lines() diff --git a/business_requirement_deliverable_resource_template/tests/test_br_resource_template.py b/business_requirement_deliverable_resource_template/tests/test_br_resource_template.py index 838ab6be3..f69f08be4 100644 --- a/business_requirement_deliverable_resource_template/tests/test_br_resource_template.py +++ b/business_requirement_deliverable_resource_template/tests/test_br_resource_template.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -# © 2016 Elico Corp (https://www.elico-corp.com). +# © 2017 Elico Corp (https://www.elico-corp.com). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openerp.tests import common -from openerp.exceptions import ValidationError +from odoo.tests import common +from odoo.exceptions import ValidationError class BusinessRequirementResourceTemplate(common.TransactionCase): @@ -24,7 +24,7 @@ def setUp(self): 'factor': 1, 'uom_type': 'reference', 'rounding': 0.000001}) - self.ProductS = self.env.ref('product.product_product_consultant') + self.ProductS = self.env.ref('product.service_order_01') self.ProductObj = self.env['product.template'] self.productA = self.ProductObj.create({ 'name': 'Product A', @@ -37,9 +37,11 @@ def setUp(self): 'resource_type': 'task' })]}) - def test_product_id_onchnage(self): + def test_product_id_change(self): for resource in self.productA.resource_lines: resource.product_id_change() + description = self.ProductS.name_get()[0][1] + self.assertEqual(resource.name, description) def test_resource_uom_change(self): for line in self.productA: diff --git a/business_requirement_deliverable_resource_template/views/business_requirement_deliverable_default.xml b/business_requirement_deliverable_resource_template/views/business_requirement_deliverable_default.xml index 77051669b..ea5407c0d 100644 --- a/business_requirement_deliverable_resource_template/views/business_requirement_deliverable_default.xml +++ b/business_requirement_deliverable_resource_template/views/business_requirement_deliverable_default.xml @@ -1,27 +1,27 @@ - - - - product.template.form - product.template - - - - - - - - - - - - - - - + + + + product.template.form + product.template + + + + + + + + + + + + + + - - - - + + + + +