From 0268cbc9e7909c888ac814044fe9ace20e34cc07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20BEAU?= Date: Thu, 10 Sep 2015 09:49:04 +0200 Subject: [PATCH] [ADD] add mrp_workcenter_hierarchical --- mrp_workcenter_hierarchical/README.rst | 17 +++ mrp_workcenter_hierarchical/__init__.py | 22 ++++ mrp_workcenter_hierarchical/__openerp__.py | 93 +++++++++++++++ .../i18n/mrp_workcenter_group.pot | 62 ++++++++++ .../static/description/group.png | Bin 0 -> 38266 bytes .../static/description/index.html | 22 ++++ .../static/description/workc.png | Bin 0 -> 21221 bytes .../static/src/img/icon.png | Bin 0 -> 6745 bytes mrp_workcenter_hierarchical/workcenter.py | 108 ++++++++++++++++++ .../workcenter_view.xml | 33 ++++++ 10 files changed, 357 insertions(+) create mode 100644 mrp_workcenter_hierarchical/README.rst create mode 100644 mrp_workcenter_hierarchical/__init__.py create mode 100644 mrp_workcenter_hierarchical/__openerp__.py create mode 100644 mrp_workcenter_hierarchical/i18n/mrp_workcenter_group.pot create mode 100644 mrp_workcenter_hierarchical/static/description/group.png create mode 100644 mrp_workcenter_hierarchical/static/description/index.html create mode 100644 mrp_workcenter_hierarchical/static/description/workc.png create mode 100644 mrp_workcenter_hierarchical/static/src/img/icon.png create mode 100644 mrp_workcenter_hierarchical/workcenter.py create mode 100644 mrp_workcenter_hierarchical/workcenter_view.xml diff --git a/mrp_workcenter_hierarchical/README.rst b/mrp_workcenter_hierarchical/README.rst new file mode 100644 index 000000000..9e2514ac3 --- /dev/null +++ b/mrp_workcenter_hierarchical/README.rst @@ -0,0 +1,17 @@ +Description +=========== + +See __openerp__.py + +Define your workcenter groups +----------------------------- + + .. image:: static/description/group.png + :alt: Define your workcenter groups on Odoo ERP + + +Attach a group to your workcenter +--------------------------------- + + .. image:: static/description/workc.png + :alt: Attach a group to your workcenter with Odoo ERP diff --git a/mrp_workcenter_hierarchical/__init__.py b/mrp_workcenter_hierarchical/__init__.py new file mode 100644 index 000000000..d6571b201 --- /dev/null +++ b/mrp_workcenter_hierarchical/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (C) All Rights Reserved 2015 Akretion +# @author David BEAL +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################### + +from . import workcenter diff --git a/mrp_workcenter_hierarchical/__openerp__.py b/mrp_workcenter_hierarchical/__openerp__.py new file mode 100644 index 000000000..0dc0392f3 --- /dev/null +++ b/mrp_workcenter_hierarchical/__openerp__.py @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (C) All Rights Reserved 2015 Akretion +# @author David BEAL +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################### + + +{ + 'name': 'MRP Workcenter Hierarchical', + 'version': '0.5', + 'author': 'Akretion,Odoo Community Association (OCA)', + 'summary': "Organise Workcenters by section", + 'category': 'Manufacturing', + 'depends': [ + 'mrp_operations', + ], + 'description': """ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :alt: License + +MRP Workcenter Hierarchical +=============================== + +* Add the possibility to define a parent workcenter to a workcenter + +Configuration +============= + +To visualize features offered by this module, you need to: + + * go to Settings > Configuration > Manufacturing + * in the section Manufacturing Order / Planning, + check "Manage routings and work orders" and Validate + +Usage +===== + +To use this module, you need to go to: + + * Manufacturing > Configuration > Workcenter Hierarchical + + +Credits +======= + +Contributors +------------ + +* David BEAL +* Sébastien BEAU + +Maintainer +---------- + +.. image:: http://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: http://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization +whose mission is to support the collaborative development of Odoo features +and promote its widespread use. + +To contribute to this module, please visit http://odoo-community.org. +""", + 'website': 'http://www.akretion.com/', + 'data': [ + 'workcenter_view.xml', + ], + 'demo': [ + ], + 'license': 'AGPL-3', + 'tests': [], + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/mrp_workcenter_hierarchical/i18n/mrp_workcenter_group.pot b/mrp_workcenter_hierarchical/i18n/mrp_workcenter_group.pot new file mode 100644 index 000000000..b404fd8d9 --- /dev/null +++ b/mrp_workcenter_hierarchical/i18n/mrp_workcenter_group.pot @@ -0,0 +1,62 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * mrp_workcenter_group +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-03-19 10:15+0000\n" +"PO-Revision-Date: 2015-03-19 10:15+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: mrp_workcenter_group +#: field:workcenter.group,active:0 +msgid "Active" +msgstr "" + +#. module: mrp_workcenter_group +#: view:mrp.workcenter:0 +#: field:mrp.workcenter,workcenter_group_id:0 +#: view:workcenter.group:0 +msgid "Group" +msgstr "" + +#. module: mrp_workcenter_group +#: view:workcenter.group:0 +#: field:workcenter.group,workcenter_ids:0 +msgid "Linked Workcenters" +msgstr "" + +#. module: mrp_workcenter_group +#: field:workcenter.group,name:0 +msgid "Name" +msgstr "" + +#. module: mrp_workcenter_group +#: field:workcenter.group,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: mrp_workcenter_group +#: code:_description:0 +#: model:ir.model,name:mrp_workcenter_group.model_mrp_workcenter +#, python-format +msgid "Work Center" +msgstr "" + +#. module: mrp_workcenter_group +#: code:_description:0 +#: model:ir.actions.act_window,name:mrp_workcenter_group.act_open_workcenter_group_view +#: model:ir.model,name:mrp_workcenter_group.model_workcenter_group +#: model:ir.ui.menu,name:mrp_workcenter_group.menu_mrp_workcenter_group +#: view:workcenter.group:0 +#, python-format +msgid "Workcenter Groups" +msgstr "" + diff --git a/mrp_workcenter_hierarchical/static/description/group.png b/mrp_workcenter_hierarchical/static/description/group.png new file mode 100644 index 0000000000000000000000000000000000000000..f61dcd09793b9cdbe5cc6db8d332e9dbbde7eb3b GIT binary patch literal 38266 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 literal 0 HcmV?d00001 diff --git a/mrp_workcenter_hierarchical/static/description/index.html b/mrp_workcenter_hierarchical/static/description/index.html new file mode 100644 index 000000000..3b1eb19c4 --- /dev/null +++ b/mrp_workcenter_hierarchical/static/description/index.html @@ -0,0 +1,22 @@ + +
+ +
+

Workcenter Groups

+

An OCA module : validated by Odoo community experts

+

By Akretion

+
+ +

Workcenter Groups

+ + + + +

Define your workcenter groups



Attach a group to your workcenter



+ + + +
diff --git a/mrp_workcenter_hierarchical/static/description/workc.png b/mrp_workcenter_hierarchical/static/description/workc.png new file mode 100644 index 0000000000000000000000000000000000000000..d201971767746cb5f92065a8879b74ec5ae80696 GIT binary patch literal 21221 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 Q{i8~N8c18ILeVPtKixwmCIA2c literal 0 HcmV?d00001 diff --git a/mrp_workcenter_hierarchical/static/src/img/icon.png b/mrp_workcenter_hierarchical/static/src/img/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..99ee2157886de801b80c5a0c7f019f826d6df47c GIT binary patch literal 6745 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 literal 0 HcmV?d00001 diff --git a/mrp_workcenter_hierarchical/workcenter.py b/mrp_workcenter_hierarchical/workcenter.py new file mode 100644 index 000000000..9d21bad29 --- /dev/null +++ b/mrp_workcenter_hierarchical/workcenter.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author: David BEAL +# Copyright 2015 Akretion +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp.osv import orm, fields + +class MrpWorkcenter(orm.Model): + _inherit = 'mrp.workcenter' + _order = 'parent_left' + + def _get_workcenter_ids_to_recompute_level(self, cr, uid, ids, context=None): + return self.search(cr, uid, [ + '|', + ('parent_id', 'child_of', ids), + ('id', 'in', ids), + ]) + + def _get_parent_ids(self, workcenter): + if workcenter.parent_id: + ids = self._get_parent_ids(workcenter.parent_id) + ids.append(workcenter.parent_id.id) + else: + ids = [] + return ids + + def _get_parent_level(self, cr, uid, ids, field_name, args, context=None): + result = {} + def get_next_level(parent_ids, workcenter): + return parent_ids and parent_ids.pop(0) or ( + workcenter.child_ids and workcenter.id + or workcenter.parent_id.id) + + for workcenter in self.browse(cr, uid, ids, context=context): + parent_ids = self._get_parent_ids(workcenter) + parent_level_1_id = get_next_level(parent_ids, workcenter) + parent_level_2_id = get_next_level(parent_ids, workcenter) + parent_level_3_id = get_next_level(parent_ids, workcenter) + result[workcenter.id] = { + 'parent_level_1_id': parent_level_1_id, + 'parent_level_2_id': parent_level_2_id, + 'parent_level_3_id': parent_level_3_id, + } + return result + + _columns = { + 'parent_id': fields.many2one( + 'mrp.workcenter', + string='Parent'), + 'child_ids': fields.one2many( + 'mrp.workcenter', + 'parent_id', + string='Children'), + 'parent_level_1_id': fields.function( + _get_parent_level, + relation='mrp.workcenter', + type='many2one', + string='Parent Level 1', + multi='parent_level', + store={ + 'mrp.workcenter': ( + _get_workcenter_ids_to_recompute_level, + ['parent_id'], + 10), + },), + 'parent_level_2_id': fields.function( + _get_parent_level, + relation='mrp.workcenter', + type='many2one', + string='Parent Level 2', + multi='parent_level', + store={ + 'mrp.workcenter': ( + _get_workcenter_ids_to_recompute_level, + ['parent_id'], + 10), + },), + 'parent_level_3_id': fields.function( + _get_parent_level, + relation='mrp.workcenter', + type='many2one', + string='Parent Level 3', + multi='parent_level', + store={ + 'mrp.workcenter': ( + _get_workcenter_ids_to_recompute_level, + ['parent_id'], + 10), + },), + 'parent_left': fields.integer('Left Parent', select=1), + 'parent_right': fields.integer('Right Parent', select=1), + } diff --git a/mrp_workcenter_hierarchical/workcenter_view.xml b/mrp_workcenter_hierarchical/workcenter_view.xml new file mode 100644 index 000000000..ba87ef4ac --- /dev/null +++ b/mrp_workcenter_hierarchical/workcenter_view.xml @@ -0,0 +1,33 @@ + + + + + + + + mrp.workcenter + + + + + + + + + + + + mrp.workcenter + + + + + + + + + +