From d75d35163ae21312eb6a260a03016b5471718b7c Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Mon, 1 Sep 2014 10:59:15 +0200 Subject: [PATCH 01/22] Adds purchase_analytic_global, An analytic account field on the purchase order that applies the account on all the lines of the purchase order. --- purchase_analytic_global/__init__.py | 22 ++++++++ purchase_analytic_global/__openerp__.py | 43 ++++++++++++++++ purchase_analytic_global/purchase.py | 58 ++++++++++++++++++++++ purchase_analytic_global/purchase_view.xml | 23 +++++++++ 4 files changed, 146 insertions(+) create mode 100644 purchase_analytic_global/__init__.py create mode 100644 purchase_analytic_global/__openerp__.py create mode 100644 purchase_analytic_global/purchase.py create mode 100644 purchase_analytic_global/purchase_view.xml diff --git a/purchase_analytic_global/__init__.py b/purchase_analytic_global/__init__.py new file mode 100644 index 00000000000..dce44d741c4 --- /dev/null +++ b/purchase_analytic_global/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author: Guewen Baconnier +# Copyright 2014 Camptocamp SA +# +# 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 purchase diff --git a/purchase_analytic_global/__openerp__.py b/purchase_analytic_global/__openerp__.py new file mode 100644 index 00000000000..8673fdecd48 --- /dev/null +++ b/purchase_analytic_global/__openerp__.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author: Guewen Baconnier +# Copyright 2014 Camptocamp SA +# +# 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': 'Purchase - Analytic Account Global', + 'version': '1.0', + 'author': 'Camptocamp', + 'maintainer': 'Camptocamp', + 'license': 'AGPL-3', + 'category': 'Purchase Management', + 'complexity': "easy", + 'depends': ['purchase', + ], + 'description': """ +Purchase - Analytic Account Global +================================== + +Adds an analytic account on the purchases that is applied on all the lines. +""", + 'website': 'http://www.camptocamp.com', + 'data': ['purchase_view.xml', + ], + 'test': [], + 'installable': True, + 'auto_install': False, + } diff --git a/purchase_analytic_global/purchase.py b/purchase_analytic_global/purchase.py new file mode 100644 index 00000000000..6db2e8e30ca --- /dev/null +++ b/purchase_analytic_global/purchase.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author: Guewen Baconnier +# Copyright 2014 Camptocamp SA +# +# 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 purchase_order(orm.Model): + _inherit = 'purchase.order' + + _columns = { + 'account_analytic_id': fields.many2one( + 'account.analytic.account', + string='Analytic Account', + states={'confirmed': [('readonly', True)], + 'approved': [('readonly', True)], + 'done': [('readonly', True)]}, + help="The analytic account that will be set on all the lines. " + "If you want to use different accounts, leave this field " + "empty and set the accounts individually on the lines.") + } + + def onchange_default_analytic_id(self, cr, uid, ids, account_analytic_id, + order_line, context=None): + new_commands = [] + if not order_line: + return {} + for command in order_line: + code = command[0] + if code in (0, 1): + values = command[2] + values['account_analytic_id'] = account_analytic_id + line = code, command[1], values + elif code == 4: + values = {'account_analytic_id': account_analytic_id} + line = 1, command[1], values + else: + line = command + new_commands.append(line) + vals = {'order_line': new_commands} + return {'value': vals} diff --git a/purchase_analytic_global/purchase_view.xml b/purchase_analytic_global/purchase_view.xml new file mode 100644 index 00000000000..e989e171fbb --- /dev/null +++ b/purchase_analytic_global/purchase_view.xml @@ -0,0 +1,23 @@ + + + + + purchase.order.form + purchase.order + + + + + + + {'default_account_analytic_id': account_analytic_id} + + + + + + From ceb7a71c906b9891b0d67e36b257373ff73dba95 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Mon, 1 Sep 2014 12:07:16 +0200 Subject: [PATCH 02/22] Add translations for purchase_analytic_global --- purchase_analytic_global/i18n/fr.po | 39 +++++++++++++++++++ .../i18n/purchase_analytic_global.pot | 39 +++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 purchase_analytic_global/i18n/fr.po create mode 100644 purchase_analytic_global/i18n/purchase_analytic_global.pot diff --git a/purchase_analytic_global/i18n/fr.po b/purchase_analytic_global/i18n/fr.po new file mode 100644 index 00000000000..4de44645941 --- /dev/null +++ b/purchase_analytic_global/i18n/fr.po @@ -0,0 +1,39 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * purchase_analytic_global +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-01 10:04+0000\n" +"PO-Revision-Date: 2014-09-01 10:04+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: purchase_analytic_global +#: field:purchase.order,account_analytic_id:0 +msgid "Analytic Account" +msgstr "Compte analytique" + +#. module: purchase_analytic_global +#: help:purchase.order,account_analytic_id:0 +msgid "The analytic account that will be set on all the lines. If you want to use different accounts, leave this field empty and set the accounts individually on the lines." +msgstr "Le compte analytique sera défini sur toutes les lignes. Afin d'utiliser des comptes différents sur les lignes, veuillez laisser ce champ vide et les définir manuellement sur les lignes." + +#. module: purchase_analytic_global +#: view:purchase.order:0 +msgid "{'default_account_analytic_id': account_analytic_id}" +msgstr "" + +#. module: purchase_analytic_global +#: code:_description:0 +#: model:ir.model,name:purchase_analytic_global.model_purchase_order +#, python-format +msgid "Purchase Order" +msgstr "Commande d'achat" + diff --git a/purchase_analytic_global/i18n/purchase_analytic_global.pot b/purchase_analytic_global/i18n/purchase_analytic_global.pot new file mode 100644 index 00000000000..be017be2249 --- /dev/null +++ b/purchase_analytic_global/i18n/purchase_analytic_global.pot @@ -0,0 +1,39 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * purchase_analytic_global +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-01 10:03+0000\n" +"PO-Revision-Date: 2014-09-01 10:03+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: purchase_analytic_global +#: field:purchase.order,account_analytic_id:0 +msgid "Analytic Account" +msgstr "" + +#. module: purchase_analytic_global +#: help:purchase.order,account_analytic_id:0 +msgid "The analytic account that will be set on all the lines. If you want to use different accounts, leave this field empty and set the accounts individually on the lines." +msgstr "" + +#. module: purchase_analytic_global +#: view:purchase.order:0 +msgid "{'default_account_analytic_id': account_analytic_id}" +msgstr "" + +#. module: purchase_analytic_global +#: code:_description:0 +#: model:ir.model,name:purchase_analytic_global.model_purchase_order +#, python-format +msgid "Purchase Order" +msgstr "" + From 1069c4715c09ad929aa2de1e7da59c78d8115a91 Mon Sep 17 00:00:00 2001 From: Yannick Vaucher Date: Tue, 10 May 2016 13:53:48 +0200 Subject: [PATCH 03/22] purchase_analytic_global --- purchase_analytic_global/README.rst | 55 +++++++++++++++++ purchase_analytic_global/__init__.py | 23 +------ purchase_analytic_global/__openerp__.py | 34 ++-------- purchase_analytic_global/models/__init__.py | 1 + purchase_analytic_global/models/purchase.py | 26 ++++++++ purchase_analytic_global/purchase.py | 58 ------------------ .../static/description/icon.png | Bin 0 -> 9455 bytes .../{purchase_view.xml => views/purchase.xml} | 5 +- 8 files changed, 90 insertions(+), 112 deletions(-) create mode 100644 purchase_analytic_global/README.rst create mode 100644 purchase_analytic_global/models/__init__.py create mode 100644 purchase_analytic_global/models/purchase.py delete mode 100644 purchase_analytic_global/purchase.py create mode 100644 purchase_analytic_global/static/description/icon.png rename purchase_analytic_global/{purchase_view.xml => views/purchase.xml} (74%) diff --git a/purchase_analytic_global/README.rst b/purchase_analytic_global/README.rst new file mode 100644 index 00000000000..29b3256fd30 --- /dev/null +++ b/purchase_analytic_global/README.rst @@ -0,0 +1,55 @@ +.. 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 + +================================== +Purchase - Analytic Account Global +================================== + +This module adds an analytic account on the purchases that is applied on all the lines. + + +Usage +===== + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/142/9.0 + + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smashing it by providing a detailed and welcomed feedback. + +Credits +======= + +Images +------ + +* Odoo Community Association: `Icon `_. + +Contributors +------------ + +* Guewen Baconnier +* Yannick Vaucher + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://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 https://odoo-community.org. diff --git a/purchase_analytic_global/__init__.py b/purchase_analytic_global/__init__.py index dce44d741c4..0650744f6bc 100644 --- a/purchase_analytic_global/__init__.py +++ b/purchase_analytic_global/__init__.py @@ -1,22 +1 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2014 Camptocamp SA -# -# 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 purchase +from . import models diff --git a/purchase_analytic_global/__openerp__.py b/purchase_analytic_global/__openerp__.py index 8673fdecd48..b965989b9e2 100644 --- a/purchase_analytic_global/__openerp__.py +++ b/purchase_analytic_global/__openerp__.py @@ -1,41 +1,17 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2014 Camptocamp SA -# -# 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 . -# -############################################################################## - +# © 2014-2016 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) {'name': 'Purchase - Analytic Account Global', - 'version': '1.0', - 'author': 'Camptocamp', + 'version': '9.0.1.0.0', + 'author': 'Camptocamp, Odoo Community Association (OCA)', 'maintainer': 'Camptocamp', 'license': 'AGPL-3', 'category': 'Purchase Management', 'complexity': "easy", 'depends': ['purchase', ], - 'description': """ -Purchase - Analytic Account Global -================================== - -Adds an analytic account on the purchases that is applied on all the lines. -""", 'website': 'http://www.camptocamp.com', - 'data': ['purchase_view.xml', + 'data': ['views/purchase.xml', ], 'test': [], 'installable': True, diff --git a/purchase_analytic_global/models/__init__.py b/purchase_analytic_global/models/__init__.py new file mode 100644 index 00000000000..370f577b2a2 --- /dev/null +++ b/purchase_analytic_global/models/__init__.py @@ -0,0 +1 @@ +from . import purchase diff --git a/purchase_analytic_global/models/purchase.py b/purchase_analytic_global/models/purchase.py new file mode 100644 index 00000000000..f1050eb774d --- /dev/null +++ b/purchase_analytic_global/models/purchase.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# © 2014-2016 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from openerp import api, fields, models + + +class PurchaseOrder(models.Model): + _inherit = 'purchase.order' + + account_analytic_id = fields.Many2one( + 'account.analytic.account', + string='Analytic Account', + states={'confirmed': [('readonly', True)], + 'approved': [('readonly', True)], + 'done': [('readonly', True)]}, + help="The analytic account that will be set on all the lines. " + "If you want to use different accounts, leave this field " + "empty and set the accounts individually on the lines.") + + @api.onchange('account_analytic_id') + def onchange_default_analytic_id(self): + if not self.order_line: + return + for line in self.order_line: + line.account_analytic_id = self.account_analytic_id diff --git a/purchase_analytic_global/purchase.py b/purchase_analytic_global/purchase.py deleted file mode 100644 index 6db2e8e30ca..00000000000 --- a/purchase_analytic_global/purchase.py +++ /dev/null @@ -1,58 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2014 Camptocamp SA -# -# 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 purchase_order(orm.Model): - _inherit = 'purchase.order' - - _columns = { - 'account_analytic_id': fields.many2one( - 'account.analytic.account', - string='Analytic Account', - states={'confirmed': [('readonly', True)], - 'approved': [('readonly', True)], - 'done': [('readonly', True)]}, - help="The analytic account that will be set on all the lines. " - "If you want to use different accounts, leave this field " - "empty and set the accounts individually on the lines.") - } - - def onchange_default_analytic_id(self, cr, uid, ids, account_analytic_id, - order_line, context=None): - new_commands = [] - if not order_line: - return {} - for command in order_line: - code = command[0] - if code in (0, 1): - values = command[2] - values['account_analytic_id'] = account_analytic_id - line = code, command[1], values - elif code == 4: - values = {'account_analytic_id': account_analytic_id} - line = 1, command[1], values - else: - line = command - new_commands.append(line) - vals = {'order_line': new_commands} - return {'value': vals} diff --git a/purchase_analytic_global/static/description/icon.png b/purchase_analytic_global/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zl&#s4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6# z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f# zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv! zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG z-wfS zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9 z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE# z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1 zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$ zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV( z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4 z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{ zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx} z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22 zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t< z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{} zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/purchase_analytic_global/purchase_view.xml b/purchase_analytic_global/views/purchase.xml similarity index 74% rename from purchase_analytic_global/purchase_view.xml rename to purchase_analytic_global/views/purchase.xml index e989e171fbb..c0be6cf9573 100644 --- a/purchase_analytic_global/purchase_view.xml +++ b/purchase_analytic_global/views/purchase.xml @@ -6,11 +6,10 @@ purchase.order - + From 9699ce02831aaa4d9233c3cb7b2f28524e80ec4d Mon Sep 17 00:00:00 2001 From: Yannick Vaucher Date: Fri, 19 Aug 2016 15:26:53 +0200 Subject: [PATCH 04/22] Replace by --- purchase_analytic_global/views/purchase.xml | 36 ++++++++++----------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/purchase_analytic_global/views/purchase.xml b/purchase_analytic_global/views/purchase.xml index c0be6cf9573..6a541e678ef 100644 --- a/purchase_analytic_global/views/purchase.xml +++ b/purchase_analytic_global/views/purchase.xml @@ -1,22 +1,20 @@ - - - - purchase.order.form - purchase.order - - - - - - - {'default_account_analytic_id': account_analytic_id} - + + + purchase.order.form + purchase.order + + + + + + + {'default_account_analytic_id': account_analytic_id} - + + - - + From 8c8d5409d8dc6c8ec909ffb984e35bf463ecff0e Mon Sep 17 00:00:00 2001 From: Iryna Vushnevska Date: Tue, 26 Nov 2019 12:16:45 +0200 Subject: [PATCH 05/22] 12.0 purchase_analytic_global --- purchase_analytic_global/README.rst | 68 ++- purchase_analytic_global/__manifest__.py | 17 + purchase_analytic_global/__openerp__.py | 19 - purchase_analytic_global/i18n/fr.po | 27 +- .../i18n/purchase_analytic_global.pot | 23 +- purchase_analytic_global/models/purchase.py | 42 +- .../readme/CONTRIBUTORS.rst | 3 + .../readme/DESCRIPTION.rst | 1 + .../static/description/index.html | 421 ++++++++++++++++++ purchase_analytic_global/views/purchase.xml | 3 +- 10 files changed, 531 insertions(+), 93 deletions(-) create mode 100644 purchase_analytic_global/__manifest__.py delete mode 100644 purchase_analytic_global/__openerp__.py create mode 100644 purchase_analytic_global/readme/CONTRIBUTORS.rst create mode 100644 purchase_analytic_global/readme/DESCRIPTION.rst create mode 100644 purchase_analytic_global/static/description/index.html diff --git a/purchase_analytic_global/README.rst b/purchase_analytic_global/README.rst index 29b3256fd30..963f61bbea5 100644 --- a/purchase_analytic_global/README.rst +++ b/purchase_analytic_global/README.rst @@ -1,55 +1,75 @@ -.. 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 - ================================== Purchase - Analytic Account Global ================================== -This module adds an analytic account on the purchases that is applied on all the lines. - +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/purchase-workflow/tree/12.0/purchase_analytic_global + :alt: OCA/purchase-workflow +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/purchase-workflow-12-0/purchase-workflow-12-0-purchase_analytic_global + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/142/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| -Usage -===== +This module adds an analytic account on the purchases that is applied on all the lines. -.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas - :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/142/9.0 +**Table of contents** +.. contents:: + :local: Bug Tracker =========== -Bugs are tracked on `GitHub Issues -`_. In case of trouble, please -check there if your issue has already been reported. If you spotted it first, -help us smashing it by providing a detailed and welcomed feedback. +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. Credits ======= -Images ------- +Authors +~~~~~~~ -* Odoo Community Association: `Icon `_. +* Camptocamp Contributors ------------- +~~~~~~~~~~~~ * Guewen Baconnier * Yannick Vaucher +* Iryna Vyshnevska -Maintainer ----------- +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. .. image:: https://odoo-community.org/logo.png :alt: Odoo Community Association :target: https://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 https://odoo-community.org. +This module is part of the `OCA/purchase-workflow `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/purchase_analytic_global/__manifest__.py b/purchase_analytic_global/__manifest__.py new file mode 100644 index 00000000000..1cdc4e5d280 --- /dev/null +++ b/purchase_analytic_global/__manifest__.py @@ -0,0 +1,17 @@ +# Copyright 2014-2019 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +{ + "name": "Purchase - Analytic Account Global", + "version": "12.0.1.0.0", + "author": "Camptocamp, Odoo Community Association (OCA)", + "maintainer": "Camptocamp", + "license": "AGPL-3", + "category": "Purchase Management", + "complexity": "easy", + "depends": ["purchase"], + "website": "https://github.com/OCA/purchase-workflow", + "data": ["views/purchase.xml"], + "installable": True, + "auto_install": False, +} diff --git a/purchase_analytic_global/__openerp__.py b/purchase_analytic_global/__openerp__.py deleted file mode 100644 index b965989b9e2..00000000000 --- a/purchase_analytic_global/__openerp__.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -# © 2014-2016 Camptocamp SA -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) -{'name': 'Purchase - Analytic Account Global', - 'version': '9.0.1.0.0', - 'author': 'Camptocamp, Odoo Community Association (OCA)', - 'maintainer': 'Camptocamp', - 'license': 'AGPL-3', - 'category': 'Purchase Management', - 'complexity': "easy", - 'depends': ['purchase', - ], - 'website': 'http://www.camptocamp.com', - 'data': ['views/purchase.xml', - ], - 'test': [], - 'installable': True, - 'auto_install': False, - } diff --git a/purchase_analytic_global/i18n/fr.po b/purchase_analytic_global/i18n/fr.po index 4de44645941..da70788f28a 100644 --- a/purchase_analytic_global/i18n/fr.po +++ b/purchase_analytic_global/i18n/fr.po @@ -1,6 +1,6 @@ # Translation of OpenERP Server. # This file contains the translation of the following modules: -# * purchase_analytic_global +# * purchase_analytic_global # msgid "" msgstr "" @@ -10,30 +10,29 @@ msgstr "" "PO-Revision-Date: 2014-09-01 10:04+0000\n" "Last-Translator: <>\n" "Language-Team: \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" #. module: purchase_analytic_global -#: field:purchase.order,account_analytic_id:0 +#: model:ir.model.fields,field_description:purchase_analytic_global.field_purchase_order__account_analytic_id msgid "Analytic Account" msgstr "Compte analytique" #. module: purchase_analytic_global -#: help:purchase.order,account_analytic_id:0 -msgid "The analytic account that will be set on all the lines. If you want to use different accounts, leave this field empty and set the accounts individually on the lines." -msgstr "Le compte analytique sera défini sur toutes les lignes. Afin d'utiliser des comptes différents sur les lignes, veuillez laisser ce champ vide et les définir manuellement sur les lignes." - -#. module: purchase_analytic_global -#: view:purchase.order:0 -msgid "{'default_account_analytic_id': account_analytic_id}" -msgstr "" - -#. module: purchase_analytic_global -#: code:_description:0 #: model:ir.model,name:purchase_analytic_global.model_purchase_order -#, python-format msgid "Purchase Order" msgstr "Commande d'achat" +#. module: purchase_analytic_global +#: model:ir.model.fields,help:purchase_analytic_global.field_purchase_order__account_analytic_id +#, fuzzy +msgid "" +"This account will be propagated to all lines, if you need to use different " +"accounts, define the account at line level." +msgstr "" +"Le compte analytique sera défini sur toutes les lignes. Afin d'utiliser des " +"comptes différents sur les lignes, veuillez laisser ce champ vide et les " +"définir manuellement sur les lignes." diff --git a/purchase_analytic_global/i18n/purchase_analytic_global.pot b/purchase_analytic_global/i18n/purchase_analytic_global.pot index be017be2249..75a1dacfda9 100644 --- a/purchase_analytic_global/i18n/purchase_analytic_global.pot +++ b/purchase_analytic_global/i18n/purchase_analytic_global.pot @@ -1,13 +1,11 @@ -# Translation of OpenERP Server. +# Translation of Odoo Server. # This file contains the translation of the following modules: # * purchase_analytic_global # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 7.0\n" +"Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-09-01 10:03+0000\n" -"PO-Revision-Date: 2014-09-01 10:03+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -16,24 +14,17 @@ msgstr "" "Plural-Forms: \n" #. module: purchase_analytic_global -#: field:purchase.order,account_analytic_id:0 +#: model:ir.model.fields,field_description:purchase_analytic_global.field_purchase_order__account_analytic_id msgid "Analytic Account" msgstr "" #. module: purchase_analytic_global -#: help:purchase.order,account_analytic_id:0 -msgid "The analytic account that will be set on all the lines. If you want to use different accounts, leave this field empty and set the accounts individually on the lines." -msgstr "" - -#. module: purchase_analytic_global -#: view:purchase.order:0 -msgid "{'default_account_analytic_id': account_analytic_id}" +#: model:ir.model,name:purchase_analytic_global.model_purchase_order +msgid "Purchase Order" msgstr "" #. module: purchase_analytic_global -#: code:_description:0 -#: model:ir.model,name:purchase_analytic_global.model_purchase_order -#, python-format -msgid "Purchase Order" +#: model:ir.model.fields,help:purchase_analytic_global.field_purchase_order__account_analytic_id +msgid "This account will be propagated to all lines, if you need to use different accounts, define the account at line level." msgstr "" diff --git a/purchase_analytic_global/models/purchase.py b/purchase_analytic_global/models/purchase.py index f1050eb774d..2d453b3c234 100644 --- a/purchase_analytic_global/models/purchase.py +++ b/purchase_analytic_global/models/purchase.py @@ -1,26 +1,32 @@ -# -*- coding: utf-8 -*- -# © 2014-2016 Camptocamp SA +# Copyright 2014-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) -from openerp import api, fields, models +from odoo import api, fields, models class PurchaseOrder(models.Model): - _inherit = 'purchase.order' + _inherit = "purchase.order" account_analytic_id = fields.Many2one( - 'account.analytic.account', - string='Analytic Account', - states={'confirmed': [('readonly', True)], - 'approved': [('readonly', True)], - 'done': [('readonly', True)]}, - help="The analytic account that will be set on all the lines. " - "If you want to use different accounts, leave this field " - "empty and set the accounts individually on the lines.") + "account.analytic.account", + string="Analytic Account", + compute="_compute_analytic_account", + inverse="_inverse_analytic_account", + help="This account will be propagated to all lines, if you need " + "to use different accounts, define the account at line level.", + ) - @api.onchange('account_analytic_id') - def onchange_default_analytic_id(self): - if not self.order_line: - return - for line in self.order_line: - line.account_analytic_id = self.account_analytic_id + @api.depends("order_line.account_analytic_id") + def _compute_analytic_account(self): + for rec in self: + account = rec.mapped("order_line.account_analytic_id") + if len(account) == 1: + rec.account_analytic_id = account + else: + rec.account_analytic_id = False + + def _inverse_analytic_account(self): + for rec in self: + if rec.account_analytic_id: + for line in rec.order_line: + line.account_analytic_id = rec.account_analytic_id diff --git a/purchase_analytic_global/readme/CONTRIBUTORS.rst b/purchase_analytic_global/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..2e150e1f738 --- /dev/null +++ b/purchase_analytic_global/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* Guewen Baconnier +* Yannick Vaucher +* Iryna Vyshnevska diff --git a/purchase_analytic_global/readme/DESCRIPTION.rst b/purchase_analytic_global/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..a368dc2c08d --- /dev/null +++ b/purchase_analytic_global/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module adds an analytic account on the purchases that is applied on all the lines. diff --git a/purchase_analytic_global/static/description/index.html b/purchase_analytic_global/static/description/index.html new file mode 100644 index 00000000000..b5a45326542 --- /dev/null +++ b/purchase_analytic_global/static/description/index.html @@ -0,0 +1,421 @@ + + + + + + +Purchase - Analytic Account Global + + + +
+

Purchase - Analytic Account Global

+ + +

Beta License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runbot

+

This module adds an analytic account on the purchases that is applied on all the lines.

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Camptocamp
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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.

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/purchase_analytic_global/views/purchase.xml b/purchase_analytic_global/views/purchase.xml index 6a541e678ef..6313449563b 100644 --- a/purchase_analytic_global/views/purchase.xml +++ b/purchase_analytic_global/views/purchase.xml @@ -7,8 +7,7 @@ From 053b7b880674170162647f654dee039aee0d5eb0 Mon Sep 17 00:00:00 2001 From: Sudhir Arya Date: Wed, 26 Feb 2020 13:34:39 +0530 Subject: [PATCH 06/22] Migrated the module purchase_analytic_global to v13. --- purchase_analytic_global/README.rst | 9 +++++---- purchase_analytic_global/__manifest__.py | 2 +- purchase_analytic_global/readme/CONTRIBUTORS.rst | 1 + purchase_analytic_global/static/description/index.html | 5 +++-- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/purchase_analytic_global/README.rst b/purchase_analytic_global/README.rst index 963f61bbea5..414737cdc25 100644 --- a/purchase_analytic_global/README.rst +++ b/purchase_analytic_global/README.rst @@ -14,13 +14,13 @@ Purchase - Analytic Account Global :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github - :target: https://github.com/OCA/purchase-workflow/tree/12.0/purchase_analytic_global + :target: https://github.com/OCA/purchase-workflow/tree/13.0/purchase_analytic_global :alt: OCA/purchase-workflow .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/purchase-workflow-12-0/purchase-workflow-12-0-purchase_analytic_global + :target: https://translation.odoo-community.org/projects/purchase-workflow-13-0/purchase-workflow-13-0-purchase_analytic_global :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/142/12.0 + :target: https://runbot.odoo-community.org/runbot/142/13.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -56,6 +56,7 @@ Contributors * Guewen Baconnier * Yannick Vaucher * Iryna Vyshnevska +* Sudhir Arya Maintainers ~~~~~~~~~~~ @@ -70,6 +71,6 @@ 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. -This module is part of the `OCA/purchase-workflow `_ project on GitHub. +This module is part of the `OCA/purchase-workflow `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/purchase_analytic_global/__manifest__.py b/purchase_analytic_global/__manifest__.py index 1cdc4e5d280..c9831d08199 100644 --- a/purchase_analytic_global/__manifest__.py +++ b/purchase_analytic_global/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Purchase - Analytic Account Global", - "version": "12.0.1.0.0", + "version": "13.0.1.0.0", "author": "Camptocamp, Odoo Community Association (OCA)", "maintainer": "Camptocamp", "license": "AGPL-3", diff --git a/purchase_analytic_global/readme/CONTRIBUTORS.rst b/purchase_analytic_global/readme/CONTRIBUTORS.rst index 2e150e1f738..e8c77d2f2e2 100644 --- a/purchase_analytic_global/readme/CONTRIBUTORS.rst +++ b/purchase_analytic_global/readme/CONTRIBUTORS.rst @@ -1,3 +1,4 @@ * Guewen Baconnier * Yannick Vaucher * Iryna Vyshnevska +* Sudhir Arya diff --git a/purchase_analytic_global/static/description/index.html b/purchase_analytic_global/static/description/index.html index b5a45326542..9557bbb2831 100644 --- a/purchase_analytic_global/static/description/index.html +++ b/purchase_analytic_global/static/description/index.html @@ -367,7 +367,7 @@

Purchase - Analytic Account Global

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runbot

This module adds an analytic account on the purchases that is applied on all the lines.

Table of contents

@@ -403,6 +403,7 @@

Contributors

  • Guewen Baconnier <guewen.baconnier@camptocamp.com>
  • Yannick Vaucher <yannick.vaucher@camptocamp.com>
  • Iryna Vyshnevska <i.vyshnevska@mobilunity.com>
  • +
  • Sudhir Arya <sudhir@erpharbor.com>
  • @@ -412,7 +413,7 @@

    Maintainers

    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.

    -

    This module is part of the OCA/purchase-workflow project on GitHub.

    +

    This module is part of the OCA/purchase-workflow project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    From 242579166f911a9a98d8d91fbc5d158644a9e3f3 Mon Sep 17 00:00:00 2001 From: Sudhir Arya Date: Wed, 26 Feb 2020 19:05:45 +0530 Subject: [PATCH 07/22] Added test case for purchase_analytic_global and improved the code. --- purchase_analytic_global/tests/__init__.py | 1 + .../tests/test_purchase_analytic_global.py | 71 +++++++++++++++++++ purchase_analytic_global/views/purchase.xml | 36 +++++----- 3 files changed, 91 insertions(+), 17 deletions(-) create mode 100644 purchase_analytic_global/tests/__init__.py create mode 100644 purchase_analytic_global/tests/test_purchase_analytic_global.py diff --git a/purchase_analytic_global/tests/__init__.py b/purchase_analytic_global/tests/__init__.py new file mode 100644 index 00000000000..a30cb3293cf --- /dev/null +++ b/purchase_analytic_global/tests/__init__.py @@ -0,0 +1 @@ +from . import test_purchase_analytic_global diff --git a/purchase_analytic_global/tests/test_purchase_analytic_global.py b/purchase_analytic_global/tests/test_purchase_analytic_global.py new file mode 100644 index 00000000000..ffaa2a70a3b --- /dev/null +++ b/purchase_analytic_global/tests/test_purchase_analytic_global.py @@ -0,0 +1,71 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from datetime import date + +from odoo.tests.common import TransactionCase + + +class TestPurchaseAnalyticGlobal(TransactionCase): + def setUp(self): + super(TestPurchaseAnalyticGlobal, self).setUp() + self.purchase_order_model = self.env["purchase.order"] + self.partner_model = self.env["res.partner"] + self.analytic_account_model = self.env["account.analytic.account"] + self.partner1 = self.partner_model.create({"name": "Partner1"}) + self.partner2 = self.partner_model.create({"name": "Partner2"}) + self.analytic_account1 = self.analytic_account_model.create( + {"name": "Analytic Account 1"} + ) + self.analytic_account2 = self.analytic_account_model.create( + {"name": "Analytic Account 2"} + ) + self.product = self.env.ref("product.product_product_4") + self.purchase_order1 = self.purchase_order_model.create( + { + "partner_id": self.partner1.id, + "account_analytic_id": self.analytic_account1.id, + "order_line": [ + ( + 0, + 0, + { + "product_id": self.product.id, + "name": self.product.name, + "product_qty": 10, + "price_unit": 50, + "product_uom": self.product.uom_id.id, + "date_planned": date.today(), + }, + ) + ], + } + ) + self.purchase_order2 = self.purchase_order_model.create( + { + "partner_id": self.partner2.id, + "order_line": [ + ( + 0, + 0, + { + "product_id": self.product.id, + "name": self.product.name, + "product_qty": 5, + "price_unit": 40, + "account_analytic_id": self.analytic_account2.id, + "product_uom": self.product.uom_id.id, + "date_planned": date.today(), + }, + ) + ], + } + ) + + def test_purchase_order_check(self): + self.assertEqual( + self.purchase_order1.order_line[0].account_analytic_id, + self.analytic_account1, + ) + self.assertEqual( + self.purchase_order2.account_analytic_id, self.analytic_account2 + ) diff --git a/purchase_analytic_global/views/purchase.xml b/purchase_analytic_global/views/purchase.xml index 6313449563b..be3d129d42f 100644 --- a/purchase_analytic_global/views/purchase.xml +++ b/purchase_analytic_global/views/purchase.xml @@ -1,19 +1,21 @@ - + - - purchase.order.form - purchase.order - - - - - - - {'default_account_analytic_id': account_analytic_id} - - - - + + purchase.order.form + purchase.order + + + + + + + {'default_account_analytic_id': account_analytic_id} + + + From 72452eb34a4594b25a77af95ae4169e39716d841 Mon Sep 17 00:00:00 2001 From: sonhd Date: Mon, 27 Dec 2021 09:51:05 +0700 Subject: [PATCH 08/22] purchase_analytic_global: Migration to 14.0 --- purchase_analytic_global/README.rst | 27 ++++++++----- purchase_analytic_global/__manifest__.py | 2 +- purchase_analytic_global/i18n/fr.po | 15 +++++++ .../i18n/purchase_analytic_global.pot | 26 ++++++++++--- .../readme/CONTRIBUTORS.rst | 12 ++++-- purchase_analytic_global/readme/CREDITS.rst | 1 + .../static/description/index.html | 39 ++++++++++++++++--- 7 files changed, 97 insertions(+), 25 deletions(-) create mode 100644 purchase_analytic_global/readme/CREDITS.rst diff --git a/purchase_analytic_global/README.rst b/purchase_analytic_global/README.rst index 414737cdc25..7e1ff4db3b0 100644 --- a/purchase_analytic_global/README.rst +++ b/purchase_analytic_global/README.rst @@ -14,13 +14,13 @@ Purchase - Analytic Account Global :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github - :target: https://github.com/OCA/purchase-workflow/tree/13.0/purchase_analytic_global + :target: https://github.com/OCA/purchase-workflow/tree/14.0/purchase_analytic_global :alt: OCA/purchase-workflow .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/purchase-workflow-13-0/purchase-workflow-13-0-purchase_analytic_global + :target: https://translation.odoo-community.org/projects/purchase-workflow-14-0/purchase-workflow-14-0-purchase_analytic_global :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/142/13.0 + :target: https://runbot.odoo-community.org/runbot/142/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -38,7 +38,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -53,10 +53,19 @@ Authors Contributors ~~~~~~~~~~~~ -* Guewen Baconnier -* Yannick Vaucher -* Iryna Vyshnevska -* Sudhir Arya +* `Camptocamp `_: + * Guewen Baconnier + * Yannick Vaucher + * Iryna Vyshnevska +* `ERP Harbor `_: + * Sudhir Arya +* `Trobz `_: + * Phuc Tran + +Other credits +~~~~~~~~~~~~~ + +The migration of this module from 13.0 to 14.0 was financially supported by Camptocamp Maintainers ~~~~~~~~~~~ @@ -71,6 +80,6 @@ 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. -This module is part of the `OCA/purchase-workflow `_ project on GitHub. +This module is part of the `OCA/purchase-workflow `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/purchase_analytic_global/__manifest__.py b/purchase_analytic_global/__manifest__.py index c9831d08199..2c4c73979bc 100644 --- a/purchase_analytic_global/__manifest__.py +++ b/purchase_analytic_global/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Purchase - Analytic Account Global", - "version": "13.0.1.0.0", + "version": "14.0.1.0.0", "author": "Camptocamp, Odoo Community Association (OCA)", "maintainer": "Camptocamp", "license": "AGPL-3", diff --git a/purchase_analytic_global/i18n/fr.po b/purchase_analytic_global/i18n/fr.po index da70788f28a..056e616f917 100644 --- a/purchase_analytic_global/i18n/fr.po +++ b/purchase_analytic_global/i18n/fr.po @@ -21,6 +21,21 @@ msgstr "" msgid "Analytic Account" msgstr "Compte analytique" +#. module: purchase_analytic_global +#: model:ir.model.fields,field_description:purchase_analytic_global.field_purchase_order__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_analytic_global +#: model:ir.model.fields,field_description:purchase_analytic_global.field_purchase_order__id +msgid "ID" +msgstr "" + +#. module: purchase_analytic_global +#: model:ir.model.fields,field_description:purchase_analytic_global.field_purchase_order____last_update +msgid "Last Modified on" +msgstr "" + #. module: purchase_analytic_global #: model:ir.model,name:purchase_analytic_global.model_purchase_order msgid "Purchase Order" diff --git a/purchase_analytic_global/i18n/purchase_analytic_global.pot b/purchase_analytic_global/i18n/purchase_analytic_global.pot index 75a1dacfda9..7bce06d2640 100644 --- a/purchase_analytic_global/i18n/purchase_analytic_global.pot +++ b/purchase_analytic_global/i18n/purchase_analytic_global.pot @@ -1,12 +1,12 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * purchase_analytic_global +# * purchase_analytic_global # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: <>\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,21 @@ msgstr "" msgid "Analytic Account" msgstr "" +#. module: purchase_analytic_global +#: model:ir.model.fields,field_description:purchase_analytic_global.field_purchase_order__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_analytic_global +#: model:ir.model.fields,field_description:purchase_analytic_global.field_purchase_order__id +msgid "ID" +msgstr "" + +#. module: purchase_analytic_global +#: model:ir.model.fields,field_description:purchase_analytic_global.field_purchase_order____last_update +msgid "Last Modified on" +msgstr "" + #. module: purchase_analytic_global #: model:ir.model,name:purchase_analytic_global.model_purchase_order msgid "Purchase Order" @@ -25,6 +40,7 @@ msgstr "" #. module: purchase_analytic_global #: model:ir.model.fields,help:purchase_analytic_global.field_purchase_order__account_analytic_id -msgid "This account will be propagated to all lines, if you need to use different accounts, define the account at line level." +msgid "" +"This account will be propagated to all lines, if you need to use different " +"accounts, define the account at line level." msgstr "" - diff --git a/purchase_analytic_global/readme/CONTRIBUTORS.rst b/purchase_analytic_global/readme/CONTRIBUTORS.rst index e8c77d2f2e2..061d45c34bd 100644 --- a/purchase_analytic_global/readme/CONTRIBUTORS.rst +++ b/purchase_analytic_global/readme/CONTRIBUTORS.rst @@ -1,4 +1,8 @@ -* Guewen Baconnier -* Yannick Vaucher -* Iryna Vyshnevska -* Sudhir Arya +* `Camptocamp `_: + * Guewen Baconnier + * Yannick Vaucher + * Iryna Vyshnevska +* `ERP Harbor `_: + * Sudhir Arya +* `Trobz `_: + * Phuc Tran diff --git a/purchase_analytic_global/readme/CREDITS.rst b/purchase_analytic_global/readme/CREDITS.rst new file mode 100644 index 00000000000..f37ebe75704 --- /dev/null +++ b/purchase_analytic_global/readme/CREDITS.rst @@ -0,0 +1 @@ +The migration of this module from 13.0 to 14.0 was financially supported by Camptocamp diff --git a/purchase_analytic_global/static/description/index.html b/purchase_analytic_global/static/description/index.html index 9557bbb2831..3676d6eddb4 100644 --- a/purchase_analytic_global/static/description/index.html +++ b/purchase_analytic_global/static/description/index.html @@ -367,7 +367,7 @@

    Purchase - Analytic Account Global

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

    Beta License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runbot

    +

    Beta License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runbot

    This module adds an analytic account on the purchases that is applied on all the lines.

    Table of contents

    @@ -376,7 +376,8 @@

    Purchase - Analytic Account Global

  • Credits
  • @@ -386,7 +387,7 @@

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

    +feedback.

    Do not contact contributors directly about support or help with technical issues.

    @@ -400,20 +401,46 @@

    Authors

    Contributors

    +
    +
    +

    Other credits

    +

    The migration of this module from 13.0 to 14.0 was financially supported by Camptocamp

    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association

    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.

    -

    This module is part of the OCA/purchase-workflow project on GitHub.

    +

    This module is part of the OCA/purchase-workflow project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    From acc15d7f2025d9c39c1873af865d2aea83d0accf Mon Sep 17 00:00:00 2001 From: Maksym Yankin Date: Wed, 4 May 2022 10:05:39 +0300 Subject: [PATCH 09/22] purchase_analytic_global: black, isort, prettier --- purchase_analytic_global/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/purchase_analytic_global/__manifest__.py b/purchase_analytic_global/__manifest__.py index 2c4c73979bc..80e13a2a557 100644 --- a/purchase_analytic_global/__manifest__.py +++ b/purchase_analytic_global/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Purchase - Analytic Account Global", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "author": "Camptocamp, Odoo Community Association (OCA)", "maintainer": "Camptocamp", "license": "AGPL-3", From b93611aa06ae6f95c0c6777fd0815987c03dc8b7 Mon Sep 17 00:00:00 2001 From: Maksym Yankin Date: Wed, 4 May 2022 10:16:08 +0300 Subject: [PATCH 10/22] purchase_analytic_global: Migration to 15.0 --- purchase_analytic_global/README.rst | 12 ++-- purchase_analytic_global/i18n/fr.po | 4 +- .../i18n/purchase_analytic_global.pot | 17 +----- purchase_analytic_global/models/purchase.py | 4 +- purchase_analytic_global/readme/CREDITS.rst | 2 +- .../static/description/index.html | 8 +-- .../tests/test_purchase_analytic_global.py | 58 +++++++++++-------- 7 files changed, 50 insertions(+), 55 deletions(-) diff --git a/purchase_analytic_global/README.rst b/purchase_analytic_global/README.rst index 7e1ff4db3b0..8667a3ea13e 100644 --- a/purchase_analytic_global/README.rst +++ b/purchase_analytic_global/README.rst @@ -14,13 +14,13 @@ Purchase - Analytic Account Global :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github - :target: https://github.com/OCA/purchase-workflow/tree/14.0/purchase_analytic_global + :target: https://github.com/OCA/purchase-workflow/tree/15.0/purchase_analytic_global :alt: OCA/purchase-workflow .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/purchase-workflow-14-0/purchase-workflow-14-0-purchase_analytic_global + :target: https://translation.odoo-community.org/projects/purchase-workflow-15-0/purchase-workflow-15-0-purchase_analytic_global :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/142/14.0 + :target: https://runbot.odoo-community.org/runbot/142/15.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -38,7 +38,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -65,7 +65,7 @@ Contributors Other credits ~~~~~~~~~~~~~ -The migration of this module from 13.0 to 14.0 was financially supported by Camptocamp +The migration of this module from 14.0 to 15.0 was financially supported by Camptocamp Maintainers ~~~~~~~~~~~ @@ -80,6 +80,6 @@ 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. -This module is part of the `OCA/purchase-workflow `_ project on GitHub. +This module is part of the `OCA/purchase-workflow `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/purchase_analytic_global/i18n/fr.po b/purchase_analytic_global/i18n/fr.po index 056e616f917..6b85b6c2595 100644 --- a/purchase_analytic_global/i18n/fr.po +++ b/purchase_analytic_global/i18n/fr.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: OpenERP Server 7.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-09-01 10:04+0000\n" -"PO-Revision-Date: 2014-09-01 10:04+0000\n" +"POT-Creation-Date: 2015-09-01 10:04+0000\n" +"PO-Revision-Date: 2015-09-01 10:04+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "Language: \n" diff --git a/purchase_analytic_global/i18n/purchase_analytic_global.pot b/purchase_analytic_global/i18n/purchase_analytic_global.pot index 7bce06d2640..74b57d1a791 100644 --- a/purchase_analytic_global/i18n/purchase_analytic_global.pot +++ b/purchase_analytic_global/i18n/purchase_analytic_global.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -18,21 +18,6 @@ msgstr "" msgid "Analytic Account" msgstr "" -#. module: purchase_analytic_global -#: model:ir.model.fields,field_description:purchase_analytic_global.field_purchase_order__display_name -msgid "Display Name" -msgstr "" - -#. module: purchase_analytic_global -#: model:ir.model.fields,field_description:purchase_analytic_global.field_purchase_order__id -msgid "ID" -msgstr "" - -#. module: purchase_analytic_global -#: model:ir.model.fields,field_description:purchase_analytic_global.field_purchase_order____last_update -msgid "Last Modified on" -msgstr "" - #. module: purchase_analytic_global #: model:ir.model,name:purchase_analytic_global.model_purchase_order msgid "Purchase Order" diff --git a/purchase_analytic_global/models/purchase.py b/purchase_analytic_global/models/purchase.py index 2d453b3c234..4d3f96968d6 100644 --- a/purchase_analytic_global/models/purchase.py +++ b/purchase_analytic_global/models/purchase.py @@ -27,6 +27,4 @@ def _compute_analytic_account(self): def _inverse_analytic_account(self): for rec in self: - if rec.account_analytic_id: - for line in rec.order_line: - line.account_analytic_id = rec.account_analytic_id + rec.order_line.account_analytic_id = rec.account_analytic_id diff --git a/purchase_analytic_global/readme/CREDITS.rst b/purchase_analytic_global/readme/CREDITS.rst index f37ebe75704..3e193a7a632 100644 --- a/purchase_analytic_global/readme/CREDITS.rst +++ b/purchase_analytic_global/readme/CREDITS.rst @@ -1 +1 @@ -The migration of this module from 13.0 to 14.0 was financially supported by Camptocamp +The migration of this module from 14.0 to 15.0 was financially supported by Camptocamp diff --git a/purchase_analytic_global/static/description/index.html b/purchase_analytic_global/static/description/index.html index 3676d6eddb4..2d25a02cdea 100644 --- a/purchase_analytic_global/static/description/index.html +++ b/purchase_analytic_global/static/description/index.html @@ -367,7 +367,7 @@

    Purchase - Analytic Account Global

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

    Beta License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runbot

    +

    Beta License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runbot

    This module adds an analytic account on the purchases that is applied on all the lines.

    Table of contents

    @@ -387,7 +387,7 @@

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

    +feedback.

    Do not contact contributors directly about support or help with technical issues.

    @@ -431,7 +431,7 @@

    Contributors

    Other credits

    -

    The migration of this module from 13.0 to 14.0 was financially supported by Camptocamp

    +

    The migration of this module from 14.0 to 15.0 was financially supported by Camptocamp

    Maintainers

    @@ -440,7 +440,7 @@

    Maintainers

    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.

    -

    This module is part of the OCA/purchase-workflow project on GitHub.

    +

    This module is part of the OCA/purchase-workflow project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    diff --git a/purchase_analytic_global/tests/test_purchase_analytic_global.py b/purchase_analytic_global/tests/test_purchase_analytic_global.py index ffaa2a70a3b..fe66f9a861d 100644 --- a/purchase_analytic_global/tests/test_purchase_analytic_global.py +++ b/purchase_analytic_global/tests/test_purchase_analytic_global.py @@ -2,58 +2,59 @@ from datetime import date -from odoo.tests.common import TransactionCase +from odoo.tests.common import Form, TransactionCase class TestPurchaseAnalyticGlobal(TransactionCase): - def setUp(self): - super(TestPurchaseAnalyticGlobal, self).setUp() - self.purchase_order_model = self.env["purchase.order"] - self.partner_model = self.env["res.partner"] - self.analytic_account_model = self.env["account.analytic.account"] - self.partner1 = self.partner_model.create({"name": "Partner1"}) - self.partner2 = self.partner_model.create({"name": "Partner2"}) - self.analytic_account1 = self.analytic_account_model.create( + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.purchase_order_model = cls.env["purchase.order"] + cls.partner_model = cls.env["res.partner"] + cls.analytic_account_model = cls.env["account.analytic.account"] + cls.partner1 = cls.partner_model.create({"name": "Partner1"}) + cls.partner2 = cls.partner_model.create({"name": "Partner2"}) + cls.analytic_account1 = cls.analytic_account_model.create( {"name": "Analytic Account 1"} ) - self.analytic_account2 = self.analytic_account_model.create( + cls.analytic_account2 = cls.analytic_account_model.create( {"name": "Analytic Account 2"} ) - self.product = self.env.ref("product.product_product_4") - self.purchase_order1 = self.purchase_order_model.create( + cls.product = cls.env.ref("product.product_product_4") + cls.purchase_order1 = cls.purchase_order_model.create( { - "partner_id": self.partner1.id, - "account_analytic_id": self.analytic_account1.id, + "partner_id": cls.partner1.id, + "account_analytic_id": cls.analytic_account1.id, "order_line": [ ( 0, 0, { - "product_id": self.product.id, - "name": self.product.name, + "product_id": cls.product.id, + "name": cls.product.name, "product_qty": 10, "price_unit": 50, - "product_uom": self.product.uom_id.id, + "product_uom": cls.product.uom_id.id, "date_planned": date.today(), }, ) ], } ) - self.purchase_order2 = self.purchase_order_model.create( + cls.purchase_order2 = cls.purchase_order_model.create( { - "partner_id": self.partner2.id, + "partner_id": cls.partner2.id, "order_line": [ ( 0, 0, { - "product_id": self.product.id, - "name": self.product.name, + "product_id": cls.product.id, + "name": cls.product.name, "product_qty": 5, "price_unit": 40, - "account_analytic_id": self.analytic_account2.id, - "product_uom": self.product.uom_id.id, + "account_analytic_id": cls.analytic_account2.id, + "product_uom": cls.product.uom_id.id, "date_planned": date.today(), }, ) @@ -69,3 +70,14 @@ def test_purchase_order_check(self): self.assertEqual( self.purchase_order2.account_analytic_id, self.analytic_account2 ) + purchase_form = Form(self.purchase_order2) + with purchase_form.order_line.new() as line_form: + line_form.product_id = self.product + line_form.name = self.product.name + line_form.product_qty = 10 + line_form.price_unit = 20 + line_form.account_analytic_id = self.analytic_account1 + line_form.product_uom = self.product.uom_id + line_form.date_planned = date.today() + purchase_form.save() + self.assertFalse(self.purchase_order2.account_analytic_id) From 791c074a03a1aa1a3a5f71244e22e6f23c06e89c Mon Sep 17 00:00:00 2001 From: Maksym Yankin Date: Tue, 18 Oct 2022 14:52:50 +0300 Subject: [PATCH 11/22] purchase_analytic_global: different analytic accounts are not removed on save --- purchase_analytic_global/models/purchase.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/purchase_analytic_global/models/purchase.py b/purchase_analytic_global/models/purchase.py index 4d3f96968d6..96275a54d18 100644 --- a/purchase_analytic_global/models/purchase.py +++ b/purchase_analytic_global/models/purchase.py @@ -27,4 +27,5 @@ def _compute_analytic_account(self): def _inverse_analytic_account(self): for rec in self: - rec.order_line.account_analytic_id = rec.account_analytic_id + if rec.account_analytic_id: + rec.order_line.account_analytic_id = rec.account_analytic_id From 8dbe28bb49e28ba50428c3a4bc4be7cfe59f302f Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 20 Oct 2022 10:47:51 +0000 Subject: [PATCH 12/22] purchase_analytic_global 15.0.1.0.1 --- purchase_analytic_global/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/purchase_analytic_global/__manifest__.py b/purchase_analytic_global/__manifest__.py index 80e13a2a557..40acffbb14d 100644 --- a/purchase_analytic_global/__manifest__.py +++ b/purchase_analytic_global/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Purchase - Analytic Account Global", - "version": "15.0.1.0.0", + "version": "15.0.1.0.1", "author": "Camptocamp, Odoo Community Association (OCA)", "maintainer": "Camptocamp", "license": "AGPL-3", From 6668ec9831da6e41a154d7f4fa957de27b602712 Mon Sep 17 00:00:00 2001 From: Ivorra78 Date: Tue, 18 Jul 2023 15:39:36 +0000 Subject: [PATCH 13/22] Added translation using Weblate (Spanish) --- purchase_analytic_global/README.rst | 15 +++++--- purchase_analytic_global/i18n/es.po | 36 ++++++++++++++++++ purchase_analytic_global/i18n/fr.po | 15 -------- .../static/description/index.html | 38 ++++++++++--------- 4 files changed, 65 insertions(+), 39 deletions(-) create mode 100644 purchase_analytic_global/i18n/es.po diff --git a/purchase_analytic_global/README.rst b/purchase_analytic_global/README.rst index 8667a3ea13e..1da49253f72 100644 --- a/purchase_analytic_global/README.rst +++ b/purchase_analytic_global/README.rst @@ -2,10 +2,13 @@ Purchase - Analytic Account Global ================================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:db39dcb22a972912eef60a60ce0663387130beda4e999b2927cfdef563abfe85 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Purchase - Analytic Account Global .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/purchase-workflow-15-0/purchase-workflow-15-0-purchase_analytic_global :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/142/15.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=15.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module adds an analytic account on the purchases that is applied on all the lines. @@ -37,7 +40,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. -If you spotted it first, help us smashing it by providing a detailed and welcomed +If you spotted it first, help us to smash it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. diff --git a/purchase_analytic_global/i18n/es.po b/purchase_analytic_global/i18n/es.po new file mode 100644 index 00000000000..59684a26c35 --- /dev/null +++ b/purchase_analytic_global/i18n/es.po @@ -0,0 +1,36 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_analytic_global +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-07-18 18:08+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: purchase_analytic_global +#: model:ir.model.fields,field_description:purchase_analytic_global.field_purchase_order__account_analytic_id +msgid "Analytic Account" +msgstr "cuenta analítica" + +#. module: purchase_analytic_global +#: model:ir.model,name:purchase_analytic_global.model_purchase_order +msgid "Purchase Order" +msgstr "orden de compra" + +#. module: purchase_analytic_global +#: model:ir.model.fields,help:purchase_analytic_global.field_purchase_order__account_analytic_id +msgid "" +"This account will be propagated to all lines, if you need to use different " +"accounts, define the account at line level." +msgstr "" +"Esta cuenta se propagará a todas las líneas, si necesita utilizar diferentes " +"cuentas, defina la cuenta a nivel de línea." diff --git a/purchase_analytic_global/i18n/fr.po b/purchase_analytic_global/i18n/fr.po index 6b85b6c2595..afda5610282 100644 --- a/purchase_analytic_global/i18n/fr.po +++ b/purchase_analytic_global/i18n/fr.po @@ -21,21 +21,6 @@ msgstr "" msgid "Analytic Account" msgstr "Compte analytique" -#. module: purchase_analytic_global -#: model:ir.model.fields,field_description:purchase_analytic_global.field_purchase_order__display_name -msgid "Display Name" -msgstr "" - -#. module: purchase_analytic_global -#: model:ir.model.fields,field_description:purchase_analytic_global.field_purchase_order__id -msgid "ID" -msgstr "" - -#. module: purchase_analytic_global -#: model:ir.model.fields,field_description:purchase_analytic_global.field_purchase_order____last_update -msgid "Last Modified on" -msgstr "" - #. module: purchase_analytic_global #: model:ir.model,name:purchase_analytic_global.model_purchase_order msgid "Purchase Order" diff --git a/purchase_analytic_global/static/description/index.html b/purchase_analytic_global/static/description/index.html index 2d25a02cdea..dba961d25b7 100644 --- a/purchase_analytic_global/static/description/index.html +++ b/purchase_analytic_global/static/description/index.html @@ -1,20 +1,20 @@ - + - + Purchase - Analytic Account Global -
    -

    Purchase - Analytic Account Global

    +
    + + +Odoo Community Association + +
    +

    Purchase - Analytic Account Global

    -

    Beta License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runboat

    +

    Beta License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runboat

    This module adds an analytic account on the purchases that is applied on all the lines distributions.

    Table of contents

    @@ -386,23 +391,23 @@

    Purchase - Analytic Account Global

    -

    Bug Tracker

    +

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

    +feedback.

    Do not contact contributors directly about support or help with technical issues.

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

    • Camptocamp
    -

    Other credits

    +

    Other credits

    The migration of this module from 15.0 to 18.0 was financially supported by Camptocamp

    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association @@ -435,10 +440,11 @@

    Maintainers

    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.

    -

    This module is part of the OCA/purchase-workflow project on GitHub.

    +

    This module is part of the OCA/purchase-workflow project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    +
    From 78a4ddd3bbcb817aa11c9f9588239a2e4dadfb66 Mon Sep 17 00:00:00 2001 From: bosd <5e2fd43-d292-4c90-9d1f-74ff3436329a@anonaddy.me> Date: Tue, 11 Nov 2025 21:32:01 +0100 Subject: [PATCH 22/22] [MIG] purchase_analytic_global: Migration to 19.0 * Module version updated: 18.0.1.0.0 -> 19.0.1.0.0 * All code compatible with Odoo 19 * README badges updated to 19.0 branch --- purchase_analytic_global/__manifest__.py | 2 +- .../tests/test_purchase_analytic_global.py | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/purchase_analytic_global/__manifest__.py b/purchase_analytic_global/__manifest__.py index dcb25c63ab6..fd5fcb72277 100644 --- a/purchase_analytic_global/__manifest__.py +++ b/purchase_analytic_global/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Purchase - Analytic Account Global", - "version": "18.0.1.0.0", + "version": "19.0.1.0.0", "author": "Camptocamp, Odoo Community Association (OCA)", "maintainer": "Camptocamp", "license": "AGPL-3", diff --git a/purchase_analytic_global/tests/test_purchase_analytic_global.py b/purchase_analytic_global/tests/test_purchase_analytic_global.py index 6bd7b223886..3c33537f659 100644 --- a/purchase_analytic_global/tests/test_purchase_analytic_global.py +++ b/purchase_analytic_global/tests/test_purchase_analytic_global.py @@ -11,7 +11,16 @@ class TestPurchaseAnalyticGlobal(BaseCommon): def setUpClass(cls): super().setUpClass() cls.analytic_plan = cls.env["account.analytic.plan"].create({"name": "Plan"}) - cls.product = cls.env.ref("product.product_product_4") + # Create a product directly instead of using external XML ID + # (product.product_product_4 doesn't exist in Odoo 19) + cls.product = cls.env["product.product"].create( + { + "name": "Test Product", + "type": "consu", + "list_price": 100.0, + "standard_price": 50.0, + } + ) cls.partner = cls.env["res.partner"].create({"name": "Test Partner"}) vals_list = [ {"name": "Analytic Account 1", "plan_id": cls.analytic_plan.id}, @@ -31,7 +40,6 @@ def setUpClass(cls): "order_id": cls.purchase_order.id, "product_qty": 10, "price_unit": 50, - "product_uom": cls.product.uom_id.id, "date_planned": date.today(), } for _ in range(3)