From cf135c7f0e7b86ee76fb69de4a9b7f6286f7a708 Mon Sep 17 00:00:00 2001 From: "sergio.teruel" Date: Sat, 22 Sep 2018 00:17:23 +0200 Subject: [PATCH 01/31] 11.0[WIP]product_pricelist_revision --- product_pricelist_revision/README.rst | 57 ++++++++ product_pricelist_revision/__init__.py | 2 + product_pricelist_revision/__manifest__.py | 20 +++ product_pricelist_revision/i18n/es.po | 136 ++++++++++++++++++ product_pricelist_revision/models/__init__.py | 1 + .../models/pricelist.py | 41 ++++++ .../static/description/icon.png | Bin 0 -> 9455 bytes .../views/pricelist_view.xml | 73 ++++++++++ .../wizards/__init__.py | 1 + .../wizards/pricelist_duplicate_wizard.py | 42 ++++++ .../pricelist_duplicate_wizard_view.xml | 42 ++++++ 11 files changed, 415 insertions(+) create mode 100644 product_pricelist_revision/README.rst create mode 100644 product_pricelist_revision/__init__.py create mode 100644 product_pricelist_revision/__manifest__.py create mode 100644 product_pricelist_revision/i18n/es.po create mode 100644 product_pricelist_revision/models/__init__.py create mode 100644 product_pricelist_revision/models/pricelist.py create mode 100644 product_pricelist_revision/static/description/icon.png create mode 100644 product_pricelist_revision/views/pricelist_view.xml create mode 100644 product_pricelist_revision/wizards/__init__.py create mode 100644 product_pricelist_revision/wizards/pricelist_duplicate_wizard.py create mode 100644 product_pricelist_revision/wizards/pricelist_duplicate_wizard_view.xml diff --git a/product_pricelist_revision/README.rst b/product_pricelist_revision/README.rst new file mode 100644 index 00000000000..c4faa10a163 --- /dev/null +++ b/product_pricelist_revision/README.rst @@ -0,0 +1,57 @@ +.. 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 + +========================== +Product Pricelist Revision +========================== + +This module allow create revisions of pricelist prices. + +Usage +===== + +To use this module, you need to: + +#. Go to... + + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/135/11.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. + +Images +------ + +* Odoo Community Association: `Icon `_. + +Contributors +------------ + +* `Tecnativa `_: + + * Carlos Dauden + + +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/product_pricelist_revision/__init__.py b/product_pricelist_revision/__init__.py new file mode 100644 index 00000000000..aee8895e7a3 --- /dev/null +++ b/product_pricelist_revision/__init__.py @@ -0,0 +1,2 @@ +from . import models +from . import wizards diff --git a/product_pricelist_revision/__manifest__.py b/product_pricelist_revision/__manifest__.py new file mode 100644 index 00000000000..aa1cc5afaf3 --- /dev/null +++ b/product_pricelist_revision/__manifest__.py @@ -0,0 +1,20 @@ +# Copyright 2018 Carlos Dauden - Tecnativa +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Product Pricelist Revision", + "summary": "Product Pricelist Revision", + "version": "11.0.1.0.0", + "category": "Product", + "website": "http://www.tecnativa.com", + "author": "Tecnativa S.L.", + "license": "AGPL-3", + "installable": True, + "depends": [ + "sale_management", + ], + "data": [ + "views/pricelist_view.xml", + "wizards/pricelist_duplicate_wizard_view.xml", + ], +} diff --git a/product_pricelist_revision/i18n/es.po b/product_pricelist_revision/i18n/es.po new file mode 100644 index 00000000000..a313429f71d --- /dev/null +++ b/product_pricelist_revision/i18n/es.po @@ -0,0 +1,136 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_pricelist_revision +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-30 01:33+0200\n" +"PO-Revision-Date: 2017-04-30 01:41+0200\n" +"Last-Translator: Carlos Dauden \n" +"Language-Team: carlos.dauden@tecnativa.com\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.7.1\n" +"X-Poedit-SourceCharset: UTF-8\n" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +msgid "Apply" +msgstr "Aplicar" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +msgid "Cancel" +msgstr "Cancelar" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_date_end +msgid "Date end" +msgstr "Fecha final" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_date_start +msgid "Date start" +msgstr "Fecha inicial" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: product_pricelist_revision +#: model:ir.actions.act_window,name:product_pricelist_revision.pricelist_item_duplicate_wizard_action +msgid "Duplicate Item" +msgstr "Duplicar elemento" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_previous_price +msgid "Fixed Price" +msgstr "Precio fijo" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_id +msgid "ID" +msgstr "ID (identificación)" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard___last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_write_uid +msgid "Last Updated by" +msgstr "Última actualización de" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_previous_item_id +msgid "Previous Item" +msgstr "Elemento previo" + +#. module: product_pricelist_revision +#: model:ir.actions.act_window,name:product_pricelist_revision.product_pricelist_item_action +#: model:ir.ui.menu,name:product_pricelist_revision.menu_product_pricelist_item_action +msgid "Pricelist Items" +msgstr "Elementos de tarifa" + +#. module: product_pricelist_revision +#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item +msgid "Pricelist item" +msgstr "Elemento de la tarifa" + +#. module: product_pricelist_revision +#: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item_previous_item_id +msgid "Relation with previous item when duplicate line" +msgstr "Relacion con elemento previo cuando se duplica la linea" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +msgid "" +"Set new start date and variation percent to duplicate.\n" +" This process set start date previous day as end date of\n" +" origin record.\n" +"
\n" +"
" +msgstr "" +"Establece fecha inicio y porcentage de variación para duplicar.\n" +" Este proceso establecerá como fecha final el día previo a la fecha final en\n" +" el registro original.\n" +"
\n" +"
" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_variation_percent +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_variation_percent +msgid "Variation %" +msgstr "Variación %" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +msgid "or" +msgstr "o" + +#. module: product_pricelist_revision +#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item_duplicate_wizard +msgid "product.pricelist.item.duplicate.wizard" +msgstr "" diff --git a/product_pricelist_revision/models/__init__.py b/product_pricelist_revision/models/__init__.py new file mode 100644 index 00000000000..fa640d16f1a --- /dev/null +++ b/product_pricelist_revision/models/__init__.py @@ -0,0 +1 @@ +from . import pricelist diff --git a/product_pricelist_revision/models/pricelist.py b/product_pricelist_revision/models/pricelist.py new file mode 100644 index 00000000000..93ea4fe3936 --- /dev/null +++ b/product_pricelist_revision/models/pricelist.py @@ -0,0 +1,41 @@ +# Copyright 2018 Carlos Dauden - Tecnativa +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models +from odoo.addons import decimal_precision as dp + + +class ProductPricelistItem(models.Model): + _inherit = 'product.pricelist.item' + + name = fields.Char(search='_search_name') + + previous_item_id = fields.Many2one( + comodel_name='product.pricelist.item', + string='Previous Item', + help='Relation with previous item when duplicate line', + ) + previous_price = fields.Float( + related='previous_item_id.fixed_price', + readonly=True, + ) + variation_percent = fields.Float( + compute='_compute_variation_percent', + store=True, + digits=dp.get_precision('Product Price'), + string='Variation %', + ) + + @api.model + def _search_name(self, operator, value): + domain = [] + return [('applied_on', '=', '3_global'),] + + @api.multi + @api.depends('fixed_price', 'previous_item_id.fixed_price') + def _compute_variation_percent(self): + for line in self: + if not (line.fixed_price and line.previous_price): + continue + line.variation_percent = ( + (line.fixed_price / line.previous_price - 1) * 100) diff --git a/product_pricelist_revision/static/description/icon.png b/product_pricelist_revision/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/product_pricelist_revision/views/pricelist_view.xml b/product_pricelist_revision/views/pricelist_view.xml new file mode 100644 index 00000000000..0899d0fd562 --- /dev/null +++ b/product_pricelist_revision/views/pricelist_view.xml @@ -0,0 +1,73 @@ + + + + + + product.pricelist.item + + primary + + + bottom + false + + + + + + + 1 + + + 1 + + + 1 + + + + + + + + + + + product.pricelist.item.search + product.pricelist.item + + + + + + + + + + + + + + + + + + + + + + + Pricelist Items + ir.actions.act_window + product.pricelist.item + form + tree,form + + + + + + diff --git a/product_pricelist_revision/wizards/__init__.py b/product_pricelist_revision/wizards/__init__.py new file mode 100644 index 00000000000..2e393da49ab --- /dev/null +++ b/product_pricelist_revision/wizards/__init__.py @@ -0,0 +1 @@ +from . import pricelist_duplicate_wizard diff --git a/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py b/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py new file mode 100644 index 00000000000..685fec85df5 --- /dev/null +++ b/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py @@ -0,0 +1,42 @@ +# Copyright 2018 Carlos Dauden - Tecnativa +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from dateutil.relativedelta import relativedelta + +from odoo import api, fields, models +from odoo.addons import decimal_precision as dp + + +class ProductPricelistItemDuplicateWizard(models.TransientModel): + _name = 'product.pricelist.item.duplicate.wizard' + + date_start = fields.Date(required=True) + date_end = fields.Date() + variation_percent = fields.Float( + digits=dp.get_precision('Product Price'), + string='Variation %', + ) + + @api.multi + def action_apply(self): + PricelistItem = self.env['product.pricelist.item'] + new_items = PricelistItem + for item in PricelistItem.browse(self.env.context['active_ids']): + new_items |= item.copy({ + 'date_start': self.date_start, + 'date_end': self.date_end, + 'previous_item_id': item.id, + 'fixed_price': item.fixed_price * ( + 1.0 + self.variation_percent / 100.0), + }) + item.date_end = (fields.Date.from_string(self.date_start) - + relativedelta(days=1)) + + action = self.env.ref( + 'product_pricelist_revision.product_pricelist_item_action' + ).read()[0] + if len(new_items) > 0: + action['domain'] = [('id', 'in', new_items.ids)] + else: + action = {'type': 'ir.actions.act_window_close'} + return action diff --git a/product_pricelist_revision/wizards/pricelist_duplicate_wizard_view.xml b/product_pricelist_revision/wizards/pricelist_duplicate_wizard_view.xml new file mode 100644 index 00000000000..e386d7893c0 --- /dev/null +++ b/product_pricelist_revision/wizards/pricelist_duplicate_wizard_view.xml @@ -0,0 +1,42 @@ + + + + + Pricelist Item Duplicate + product.pricelist.item.duplicate.wizard + +
+
+ Set new start date and variation percent to duplicate. + This process set start date previous day as end date of + origin record. +
+
+
+ + + + + + + +
+
+
+
+
+ + + +
From 3179382bd76d8dd3bc6c735a99fd54359d2dbfcb Mon Sep 17 00:00:00 2001 From: Sergio Teruel Date: Fri, 8 Feb 2019 10:32:37 +0100 Subject: [PATCH 02/31] [11.0][IMP] product_pricelist_revision: Complete translations --- product_pricelist_revision/i18n/es.po | 83 +++++++- .../i18n/product_pricelist_revision.pot | 193 ++++++++++++++++++ 2 files changed, 268 insertions(+), 8 deletions(-) create mode 100644 product_pricelist_revision/i18n/product_pricelist_revision.pot diff --git a/product_pricelist_revision/i18n/es.po b/product_pricelist_revision/i18n/es.po index a313429f71d..2c781c4485f 100644 --- a/product_pricelist_revision/i18n/es.po +++ b/product_pricelist_revision/i18n/es.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-30 01:33+0200\n" -"PO-Revision-Date: 2017-04-30 01:41+0200\n" +"POT-Creation-Date: 2019-02-08 08:47+0000\n" +"PO-Revision-Date: 2019-02-08 10:28+0100\n" "Last-Translator: Carlos Dauden \n" "Language-Team: carlos.dauden@tecnativa.com\n" "Language: es\n" @@ -15,9 +15,29 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 1.8.7.1\n" +"X-Generator: Poedit 2.0.6\n" "X-Poedit-SourceCharset: UTF-8\n" +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Applied on categories" +msgstr "Aplicado a categorías" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Applied on global" +msgstr "Aplicado a todo" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Applied on products" +msgstr "Aplicado a plantilla de prouctos" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Applied on variants" +msgstr "Aplicado a variantes" + #. module: product_pricelist_revision #: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "Apply" @@ -40,13 +60,13 @@ msgstr "Creado en" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_date_end -msgid "Date end" +msgid "Date End" msgstr "Fecha final" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_date_start -msgid "Date start" -msgstr "Fecha inicial" +msgid "Date Start" +msgstr "Fecha inicio" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_display_name @@ -63,11 +83,21 @@ msgstr "Duplicar elemento" msgid "Fixed Price" msgstr "Precio fijo" +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Group By" +msgstr "Agrupado por" + #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_id msgid "ID" msgstr "ID (identificación)" +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Item" +msgstr "Elemento" + #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard___last_update msgid "Last Modified on" @@ -88,17 +118,52 @@ msgstr "Última actualización en" msgid "Previous Item" msgstr "Elemento previo" +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Pricelist" +msgstr "Tarifa" + #. module: product_pricelist_revision #: model:ir.actions.act_window,name:product_pricelist_revision.product_pricelist_item_action #: model:ir.ui.menu,name:product_pricelist_revision.menu_product_pricelist_item_action msgid "Pricelist Items" msgstr "Elementos de tarifa" +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Pricelist Items Search" +msgstr "Buscar elementos de tarifa" + #. module: product_pricelist_revision #: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item msgid "Pricelist item" msgstr "Elemento de la tarifa" +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Product" +msgstr "Producto" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Product Category" +msgstr "Categoría" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Product Template" +msgstr "Plantilla de producto" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Product Variant" +msgstr "Variantes de producto" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Products" +msgstr "Productos" + #. module: product_pricelist_revision #: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item_previous_item_id msgid "Relation with previous item when duplicate line" @@ -108,13 +173,15 @@ msgstr "Relacion con elemento previo cuando se duplica la linea" #: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "" "Set new start date and variation percent to duplicate.\n" -" This process set start date previous day as end date of\n" +" This process set start date previous day as end date " +"of\n" " origin record.\n" "
\n" "
" msgstr "" "Establece fecha inicio y porcentage de variación para duplicar.\n" -" Este proceso establecerá como fecha final el día previo a la fecha final en\n" +" Este proceso establecerá como fecha final el día previo " +"a la fecha final en\n" " el registro original.\n" "
\n" "
" diff --git a/product_pricelist_revision/i18n/product_pricelist_revision.pot b/product_pricelist_revision/i18n/product_pricelist_revision.pot new file mode 100644 index 00000000000..74794963b83 --- /dev/null +++ b/product_pricelist_revision/i18n/product_pricelist_revision.pot @@ -0,0 +1,193 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_pricelist_revision +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-02-08 08:47+0000\n" +"PO-Revision-Date: 2019-02-08 08:47+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: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Applied on categories" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Applied on global" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Applied on products" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Applied on variants" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +msgid "Apply" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +msgid "Cancel" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_create_uid +msgid "Created by" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_create_date +msgid "Created on" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_date_end +msgid "Date End" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_date_start +msgid "Date Start" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_display_name +msgid "Display Name" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.actions.act_window,name:product_pricelist_revision.pricelist_item_duplicate_wizard_action +msgid "Duplicate Item" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_previous_price +msgid "Fixed Price" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Group By" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_id +msgid "ID" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Item" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard___last_update +msgid "Last Modified on" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_write_date +msgid "Last Updated on" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_previous_item_id +msgid "Previous Item" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Pricelist" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.actions.act_window,name:product_pricelist_revision.product_pricelist_item_action +#: model:ir.ui.menu,name:product_pricelist_revision.menu_product_pricelist_item_action +msgid "Pricelist Items" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Pricelist Items Search" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item +msgid "Pricelist item" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Product" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Product Category" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Product Template" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Product Variant" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Products" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item_previous_item_id +msgid "Relation with previous item when duplicate line" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +msgid "Set new start date and variation percent to duplicate.\n" +" This process set start date previous day as end date of\n" +" origin record.\n" +"
\n" +"
" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_variation_percent +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_variation_percent +msgid "Variation %" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +msgid "or" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item_duplicate_wizard +msgid "product.pricelist.item.duplicate.wizard" +msgstr "" + From 9855a4009475a48613e247ff02b968b7e97edee2 Mon Sep 17 00:00:00 2001 From: ernesto Date: Tue, 5 Nov 2019 10:16:52 -0500 Subject: [PATCH 03/31] [MIG] product_pricelist_revision: Migration to 12.0 [UPD] Update product_pricelist_revision.pot [UPD] README.rst Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: product-attribute-12.0/product-attribute-12.0-product_pricelist_revision Translate-URL: https://translation.odoo-community.org/projects/product-attribute-12-0/product-attribute-12-0-product_pricelist_revision/ --- product_pricelist_revision/README.rst | 95 +++- product_pricelist_revision/__manifest__.py | 6 +- product_pricelist_revision/i18n/es.po | 104 ++-- .../i18n/product_pricelist_revision.pot | 94 ++-- .../models/pricelist.py | 9 +- .../readme/CONFIGURE.rst | 5 + .../readme/CONTRIBUTORS.rst | 4 + .../readme/DESCRIPTION.rst | 3 + product_pricelist_revision/readme/USAGE.rst | 13 + .../static/description/index.html | 453 ++++++++++++++++++ product_pricelist_revision/tests/__init__.py | 3 + .../tests/test_product_pricelist_revision.py | 91 ++++ .../views/pricelist_view.xml | 4 +- .../wizards/pricelist_duplicate_wizard.py | 4 +- 14 files changed, 768 insertions(+), 120 deletions(-) create mode 100644 product_pricelist_revision/readme/CONFIGURE.rst create mode 100644 product_pricelist_revision/readme/CONTRIBUTORS.rst create mode 100644 product_pricelist_revision/readme/DESCRIPTION.rst create mode 100644 product_pricelist_revision/readme/USAGE.rst create mode 100644 product_pricelist_revision/static/description/index.html create mode 100644 product_pricelist_revision/tests/__init__.py create mode 100644 product_pricelist_revision/tests/test_product_pricelist_revision.py diff --git a/product_pricelist_revision/README.rst b/product_pricelist_revision/README.rst index c4faa10a163..ef69640189f 100644 --- a/product_pricelist_revision/README.rst +++ b/product_pricelist_revision/README.rst @@ -1,57 +1,104 @@ -.. 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 - ========================== Product Pricelist Revision ========================== -This module allow create revisions of pricelist prices. +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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%2Fproduct--attribute-lightgray.png?logo=github + :target: https://github.com/OCA/product-attribute/tree/12.0/product_pricelist_revision + :alt: OCA/product-attribute +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/product-attribute-12-0/product-attribute-12-0-product_pricelist_revision + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/135/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module adds a 'Pricelist items' tree view that allows to select several +elements to version them and also to see the percentage 'fixed price' +variation between a version and the previous one. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To configure this module, you need to: + +#. Go to *Sales > Configuration > Settings* and check + "Multiple Sales Prices per Product" option and + "Prices computed from formulas" after that. Usage ===== To use this module, you need to: -#. Go to... - - -.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas - :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/135/11.0 +#. Go to *Sales > Products > Pricelists* and create a new Price List. +#. Add a Pricelist Items to that Price List. Set 'Fix Price' value on the field + 'Compute Price' and set a fixed price. +#. Go to the new menu *Sales > Products > Pricelist Items*, select the + previously created item and click on *Action > Duplicate Item*. +#. In the wizard set 'Date Start', set 'Date End' and set 'Variation %' to + a value different from 100. +#. Click on 'Apply' and you will see a new Price List Item that is a copy of + the previous item. In that new Item the value of the 'Fixed Price' field + will be the previous price plus that price multiplied by the variation + percentage and the value of the 'Variation %' will contain that value. 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 `_. +* Tecnativa Contributors ------------- +~~~~~~~~~~~~ * `Tecnativa `_: * Carlos Dauden + * Ernesto Tejeda +Maintainers +~~~~~~~~~~~ -Maintainer ----------- +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/product-attribute `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/product_pricelist_revision/__manifest__.py b/product_pricelist_revision/__manifest__.py index aa1cc5afaf3..d2410012df0 100644 --- a/product_pricelist_revision/__manifest__.py +++ b/product_pricelist_revision/__manifest__.py @@ -4,10 +4,10 @@ { "name": "Product Pricelist Revision", "summary": "Product Pricelist Revision", - "version": "11.0.1.0.0", + "version": "12.0.1.0.0", "category": "Product", - "website": "http://www.tecnativa.com", - "author": "Tecnativa S.L.", + "website": "https://www.github.com/OCA/product-attribute", + "author": "Tecnativa, Odoo Community Association (OCA)", "license": "AGPL-3", "installable": True, "depends": [ diff --git a/product_pricelist_revision/i18n/es.po b/product_pricelist_revision/i18n/es.po index 2c781c4485f..cf50c1d7cd5 100644 --- a/product_pricelist_revision/i18n/es.po +++ b/product_pricelist_revision/i18n/es.po @@ -19,57 +19,57 @@ msgstr "" "X-Poedit-SourceCharset: UTF-8\n" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Applied on categories" msgstr "Aplicado a categorías" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Applied on global" msgstr "Aplicado a todo" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Applied on products" msgstr "Aplicado a plantilla de prouctos" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Applied on variants" msgstr "Aplicado a variantes" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "Apply" msgstr "Aplicar" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "Cancel" msgstr "Cancelar" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_create_uid +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__create_uid msgid "Created by" msgstr "Creado por" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_create_date +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__create_date msgid "Created on" msgstr "Creado en" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_date_end +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__date_end msgid "Date End" msgstr "Fecha final" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_date_start +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__date_start msgid "Date Start" msgstr "Fecha inicio" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_display_name +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__display_name msgid "Display Name" msgstr "Nombre mostrado" @@ -79,50 +79,69 @@ msgid "Duplicate Item" msgstr "Duplicar elemento" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_previous_price -msgid "Fixed Price" -msgstr "Precio fijo" +#: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item__name +msgid "Explicit rule name for this pricelist line." +msgstr "" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Group By" msgstr "Agrupado por" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_id +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__id msgid "ID" msgstr "ID (identificación)" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Item" msgstr "Elemento" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard___last_update +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard____last_update msgid "Last Modified on" msgstr "Última modificación en" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_write_uid +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__write_uid msgid "Last Updated by" msgstr "Última actualización de" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_write_date +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__write_date msgid "Last Updated on" msgstr "Última actualización en" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_previous_item_id +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__name +msgid "Name" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__previous_price +#, fuzzy +#| msgid "Fixed Price" +msgid "Previous Fixed Price" +msgstr "Precio fijo" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__previous_item_id msgid "Previous Item" msgstr "Elemento previo" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Pricelist" msgstr "Tarifa" +#. module: product_pricelist_revision +#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item +#, fuzzy +#| msgid "Pricelist Items" +msgid "Pricelist Item" +msgstr "Elementos de tarifa" + #. module: product_pricelist_revision #: model:ir.actions.act_window,name:product_pricelist_revision.product_pricelist_item_action #: model:ir.ui.menu,name:product_pricelist_revision.menu_product_pricelist_item_action @@ -130,51 +149,45 @@ msgid "Pricelist Items" msgstr "Elementos de tarifa" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Pricelist Items Search" msgstr "Buscar elementos de tarifa" #. module: product_pricelist_revision -#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item -msgid "Pricelist item" -msgstr "Elemento de la tarifa" - -#. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Product" msgstr "Producto" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Product Category" msgstr "Categoría" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Product Template" msgstr "Plantilla de producto" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Product Variant" msgstr "Variantes de producto" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Products" msgstr "Productos" #. module: product_pricelist_revision -#: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item_previous_item_id +#: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item__previous_item_id msgid "Relation with previous item when duplicate line" msgstr "Relacion con elemento previo cuando se duplica la linea" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "" "Set new start date and variation percent to duplicate.\n" -" This process set start date previous day as end date " -"of\n" +" This process set start date previous day as end date of\n" " origin record.\n" "
\n" "
" @@ -187,17 +200,20 @@ msgstr "" "
" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_variation_percent -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_variation_percent +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__variation_percent +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__variation_percent msgid "Variation %" msgstr "Variación %" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item_duplicate_wizard +msgid "Wizard Product Pricelist Item Duplicate" +msgstr "" + +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "or" msgstr "o" -#. module: product_pricelist_revision -#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item_duplicate_wizard -msgid "product.pricelist.item.duplicate.wizard" -msgstr "" +#~ msgid "Pricelist item" +#~ msgstr "Elemento de la tarifa" diff --git a/product_pricelist_revision/i18n/product_pricelist_revision.pot b/product_pricelist_revision/i18n/product_pricelist_revision.pot index 74794963b83..09c314f69e8 100644 --- a/product_pricelist_revision/i18n/product_pricelist_revision.pot +++ b/product_pricelist_revision/i18n/product_pricelist_revision.pot @@ -4,10 +4,8 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 11.0\n" +"Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-02-08 08:47+0000\n" -"PO-Revision-Date: 2019-02-08 08:47+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -16,57 +14,57 @@ msgstr "" "Plural-Forms: \n" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Applied on categories" msgstr "" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Applied on global" msgstr "" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Applied on products" msgstr "" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Applied on variants" msgstr "" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "Apply" msgstr "" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "Cancel" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_create_uid +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__create_uid msgid "Created by" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_create_date +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__create_date msgid "Created on" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_date_end +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__date_end msgid "Date End" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_date_start +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__date_start msgid "Date Start" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_display_name +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__display_name msgid "Display Name" msgstr "" @@ -76,50 +74,65 @@ msgid "Duplicate Item" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_previous_price -msgid "Fixed Price" +#: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item__name +msgid "Explicit rule name for this pricelist line." msgstr "" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Group By" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_id +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__id msgid "ID" msgstr "" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Item" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard___last_update +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard____last_update msgid "Last Modified on" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_write_uid +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__write_uid msgid "Last Updated by" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_write_date +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__write_date msgid "Last Updated on" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_previous_item_id +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__name +msgid "Name" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__previous_price +msgid "Previous Fixed Price" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__previous_item_id msgid "Previous Item" msgstr "" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Pricelist" msgstr "" +#. module: product_pricelist_revision +#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item +msgid "Pricelist Item" +msgstr "" + #. module: product_pricelist_revision #: model:ir.actions.act_window,name:product_pricelist_revision.product_pricelist_item_action #: model:ir.ui.menu,name:product_pricelist_revision.menu_product_pricelist_item_action @@ -127,47 +140,42 @@ msgid "Pricelist Items" msgstr "" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Pricelist Items Search" msgstr "" #. module: product_pricelist_revision -#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item -msgid "Pricelist item" -msgstr "" - -#. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Product" msgstr "" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Product Category" msgstr "" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Product Template" msgstr "" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Product Variant" msgstr "" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Products" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item_previous_item_id +#: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item__previous_item_id msgid "Relation with previous item when duplicate line" msgstr "" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "Set new start date and variation percent to duplicate.\n" " This process set start date previous day as end date of\n" " origin record.\n" @@ -176,18 +184,18 @@ msgid "Set new start date and variation percent to duplicate.\n" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard_variation_percent -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_variation_percent +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__variation_percent +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__variation_percent msgid "Variation %" msgstr "" #. module: product_pricelist_revision -#: model:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view -msgid "or" +#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item_duplicate_wizard +msgid "Wizard Product Pricelist Item Duplicate" msgstr "" #. module: product_pricelist_revision -#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item_duplicate_wizard -msgid "product.pricelist.item.duplicate.wizard" +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +msgid "or" msgstr "" diff --git a/product_pricelist_revision/models/pricelist.py b/product_pricelist_revision/models/pricelist.py index 93ea4fe3936..bb2b11516e8 100644 --- a/product_pricelist_revision/models/pricelist.py +++ b/product_pricelist_revision/models/pricelist.py @@ -17,6 +17,7 @@ class ProductPricelistItem(models.Model): ) previous_price = fields.Float( related='previous_item_id.fixed_price', + string='Previous Fixed Price', readonly=True, ) variation_percent = fields.Float( @@ -28,8 +29,12 @@ class ProductPricelistItem(models.Model): @api.model def _search_name(self, operator, value): - domain = [] - return [('applied_on', '=', '3_global'),] + return [ + '|', '|', + ('categ_id', operator, value), + ('product_tmpl_id', operator, value), + ('product_id', operator, value), + ] @api.multi @api.depends('fixed_price', 'previous_item_id.fixed_price') diff --git a/product_pricelist_revision/readme/CONFIGURE.rst b/product_pricelist_revision/readme/CONFIGURE.rst new file mode 100644 index 00000000000..d17c2e4e7a5 --- /dev/null +++ b/product_pricelist_revision/readme/CONFIGURE.rst @@ -0,0 +1,5 @@ +To configure this module, you need to: + +#. Go to *Sales > Configuration > Settings* and check + "Multiple Sales Prices per Product" option and + "Prices computed from formulas" after that. diff --git a/product_pricelist_revision/readme/CONTRIBUTORS.rst b/product_pricelist_revision/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..0b072f0d593 --- /dev/null +++ b/product_pricelist_revision/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* `Tecnativa `_: + + * Carlos Dauden + * Ernesto Tejeda diff --git a/product_pricelist_revision/readme/DESCRIPTION.rst b/product_pricelist_revision/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..22b4f48eaff --- /dev/null +++ b/product_pricelist_revision/readme/DESCRIPTION.rst @@ -0,0 +1,3 @@ +This module adds a 'Pricelist items' tree view that allows to select several +elements to version them and also to see the percentage 'fixed price' +variation between a version and the previous one. diff --git a/product_pricelist_revision/readme/USAGE.rst b/product_pricelist_revision/readme/USAGE.rst new file mode 100644 index 00000000000..3d6d7abd63a --- /dev/null +++ b/product_pricelist_revision/readme/USAGE.rst @@ -0,0 +1,13 @@ +To use this module, you need to: + +#. Go to *Sales > Products > Pricelists* and create a new Price List. +#. Add a Pricelist Items to that Price List. Set 'Fix Price' value on the field + 'Compute Price' and set a fixed price. +#. Go to the new menu *Sales > Products > Pricelist Items*, select the + previously created item and click on *Action > Duplicate Item*. +#. In the wizard set 'Date Start', set 'Date End' and set 'Variation %' to + a value different from 100. +#. Click on 'Apply' and you will see a new Price List Item that is a copy of + the previous item. In that new Item the value of the 'Fixed Price' field + will be the previous price plus that price multiplied by the variation + percentage and the value of the 'Variation %' will contain that value. diff --git a/product_pricelist_revision/static/description/index.html b/product_pricelist_revision/static/description/index.html new file mode 100644 index 00000000000..0466325b8ac --- /dev/null +++ b/product_pricelist_revision/static/description/index.html @@ -0,0 +1,453 @@ + + + + + + +Product Pricelist Revision + + + +
+

Product Pricelist Revision

+ + +

Beta License: AGPL-3 OCA/product-attribute Translate me on Weblate Try me on Runbot

+

This module adds a ‘Pricelist items’ tree view that allows to select several +elements to version them and also to see the percentage ‘fixed price’ +variation between a version and the previous one.

+

Table of contents

+ +
+

Configuration

+

To configure this module, you need to:

+
    +
  1. Go to Sales > Configuration > Settings and check +“Multiple Sales Prices per Product” option and +“Prices computed from formulas” after that.
  2. +
+
+
+

Usage

+

To use this module, you need to:

+
    +
  1. Go to Sales > Products > Pricelists and create a new Price List.
  2. +
  3. Add a Pricelist Items to that Price List. Set ‘Fix Price’ value on the field +‘Compute Price’ and set a fixed price.
  4. +
  5. Go to the new menu Sales > Products > Pricelist Items, select the +previously created item and click on Action > Duplicate Item.
  6. +
  7. In the wizard set ‘Date Start’, set ‘Date End’ and set ‘Variation %’ to +a value different from 100.
  8. +
  9. Click on ‘Apply’ and you will see a new Price List Item that is a copy of +the previous item. In that new Item the value of the ‘Fixed Price’ field +will be the previous price plus that price multiplied by the variation +percentage and the value of the ‘Variation %’ will contain that value.
  10. +
+
+
+

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

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+
    +
  • Tecnativa:
      +
    • Carlos Dauden
    • +
    • Ernesto Tejeda
    • +
    +
  • +
+
+
+

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/product-attribute project on GitHub.

+

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

+
+
+
+ + diff --git a/product_pricelist_revision/tests/__init__.py b/product_pricelist_revision/tests/__init__.py new file mode 100644 index 00000000000..346230b9a49 --- /dev/null +++ b/product_pricelist_revision/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import test_product_pricelist_revision diff --git a/product_pricelist_revision/tests/test_product_pricelist_revision.py b/product_pricelist_revision/tests/test_product_pricelist_revision.py new file mode 100644 index 00000000000..3dd45774e8c --- /dev/null +++ b/product_pricelist_revision/tests/test_product_pricelist_revision.py @@ -0,0 +1,91 @@ +# Copyright 2019 Tecnativa - Ernesto Tejeda +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from datetime import date +from odoo.tests.common import SavepointCase + + +class TestProductPricelistRevision(SavepointCase): + + @classmethod + def setUpClass(cls): + super(TestProductPricelistRevision, cls).setUpClass() + cls.pricelist_obj = cls.env['product.pricelist'] + cls.pricelist_item_obj = cls.env['product.pricelist.item'] + cls.product_category_obj = cls.env['product.category'] + cls.product_template_obj = cls.env['product.template'] + cls.product_product_obj = cls.env['product.product'] + # Create a price list, a product category, a product template and + # a product variant + cls.pricelist = cls.pricelist_obj.create( + {'name': 'Pricelist', 'item_ids': False}) + cls.product_category = cls.product_category_obj.create( + {'name': 'Product Category'}) + cls.product_template = cls.product_template_obj.create( + {'name': 'Product Template', 'categ_id': cls.product_category.id}) + cls.product_product = cls.product_product_obj.create( + {'name': 'Product Variant', 'categ_id': cls.product_category.id}) + # Create pricelist items + cls.pricelist_item_global = cls.pricelist_item_obj.create({ + 'pricelist_id': cls.pricelist.id, + 'compute_price': 'formula', + 'price_discount': 15, + }) + cls.pricelist_item_product_category = cls.pricelist_item_obj.create({ + 'pricelist_id': cls.pricelist.id, + 'applied_on': '2_product_category', + 'categ_id': cls.product_category.id, + 'compute_price': 'formula', + 'price_discount': 10, + }) + cls.pricelist_item_product_template = cls.pricelist_item_obj.create({ + 'pricelist_id': cls.pricelist.id, + 'applied_on': '1_product', + 'product_tmpl_id': cls.product_template.id, + 'compute_price': 'percentage', + 'percent_price': 5, + }) + cls.pricelist_item_product_product = cls.pricelist_item_obj.create({ + 'pricelist_id': cls.pricelist.id, + 'applied_on': '0_product_variant', + 'product_id': cls.product_product.id, + 'compute_price': 'fixed', + 'fixed_price': 100, + }) + + def test_search_name(self): + item_obj = self.pricelist_item_obj + result = item_obj.search([('name', 'ilike', 'product')]) + expected = self.pricelist_item_product_category + expected |= self.pricelist_item_product_template + expected |= self.pricelist_item_product_product + self.assertEquals(result, expected) + result = item_obj.search([('name', 'ilike', 'product category')]) + self.assertEquals(result, self.pricelist_item_product_category) + result = item_obj.search([('name', 'ilike', 'product template')]) + self.assertEquals(result, self.pricelist_item_product_template) + result = item_obj.search([('name', 'ilike', 'product variant')]) + self.assertEquals(result, self.pricelist_item_product_product) + result = item_obj.search([('name', 'ilike', 'all')]) + self.assertEquals(len(result), 0) + + def test_wizard_action_apply_and_compute_variation_percent(self): + wizard_obj = self.env['product.pricelist.item.duplicate.wizard'] + # Before duplicate there are 4 items + self.assertEquals(len(self.pricelist.item_ids), 4) + items_before_wizard = self.pricelist.item_ids + # Create wizard from pricelist_item_product_product and aply + active_ids = self.pricelist_item_product_product.ids + wizard = wizard_obj.with_context(active_ids=active_ids).create({ + 'date_start': date.today(), + 'date_end': date.today(), + 'variation_percent': 50, + }) + wizard.action_apply() + # There will be one more item in self.pricelist + self.assertEquals(len(self.pricelist.item_ids), 5) + new_item = self.pricelist.item_ids - items_before_wizard + self.assertEquals(new_item.previous_item_id.id, active_ids[0]) + self.assertEquals(new_item.previous_price, 100) + self.assertEquals(new_item.fixed_price, 150) + self.assertEquals(new_item.variation_percent, 50) diff --git a/product_pricelist_revision/views/pricelist_view.xml b/product_pricelist_revision/views/pricelist_view.xml index 0899d0fd562..526456dbf89 100644 --- a/product_pricelist_revision/views/pricelist_view.xml +++ b/product_pricelist_revision/views/pricelist_view.xml @@ -49,8 +49,8 @@ - - + + diff --git a/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py b/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py index 685fec85df5..35933d08aa1 100644 --- a/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py +++ b/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py @@ -9,6 +9,7 @@ class ProductPricelistItemDuplicateWizard(models.TransientModel): _name = 'product.pricelist.item.duplicate.wizard' + _description = 'Wizard Product Pricelist Item Duplicate' date_start = fields.Date(required=True) date_end = fields.Date() @@ -29,8 +30,7 @@ def action_apply(self): 'fixed_price': item.fixed_price * ( 1.0 + self.variation_percent / 100.0), }) - item.date_end = (fields.Date.from_string(self.date_start) - - relativedelta(days=1)) + item.date_end = self.date_start - relativedelta(days=1) action = self.env.ref( 'product_pricelist_revision.product_pricelist_item_action' From 3849973f4cc3945888d6edba2a28d01e6a35d401 Mon Sep 17 00:00:00 2001 From: Sergio Teruel Date: Mon, 3 Feb 2020 19:19:49 +0100 Subject: [PATCH 04/31] [IMP] product_pricelist_revision: black, isort --- product_pricelist_revision/__manifest__.py | 9 +- .../models/pricelist.py | 35 +++--- .../tests/test_product_pricelist_revision.py | 108 ++++++++++-------- .../wizards/pricelist_duplicate_wizard.py | 34 +++--- 4 files changed, 99 insertions(+), 87 deletions(-) diff --git a/product_pricelist_revision/__manifest__.py b/product_pricelist_revision/__manifest__.py index d2410012df0..82d8d8b4b44 100644 --- a/product_pricelist_revision/__manifest__.py +++ b/product_pricelist_revision/__manifest__.py @@ -10,11 +10,6 @@ "author": "Tecnativa, Odoo Community Association (OCA)", "license": "AGPL-3", "installable": True, - "depends": [ - "sale_management", - ], - "data": [ - "views/pricelist_view.xml", - "wizards/pricelist_duplicate_wizard_view.xml", - ], + "depends": ["sale_management"], + "data": ["views/pricelist_view.xml", "wizards/pricelist_duplicate_wizard_view.xml"], } diff --git a/product_pricelist_revision/models/pricelist.py b/product_pricelist_revision/models/pricelist.py index bb2b11516e8..258e86bf1f9 100644 --- a/product_pricelist_revision/models/pricelist.py +++ b/product_pricelist_revision/models/pricelist.py @@ -2,45 +2,46 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from odoo import api, fields, models + from odoo.addons import decimal_precision as dp class ProductPricelistItem(models.Model): - _inherit = 'product.pricelist.item' + _inherit = "product.pricelist.item" - name = fields.Char(search='_search_name') + name = fields.Char(search="_search_name") previous_item_id = fields.Many2one( - comodel_name='product.pricelist.item', - string='Previous Item', - help='Relation with previous item when duplicate line', + comodel_name="product.pricelist.item", + string="Previous Item", + help="Relation with previous item when duplicate line", ) previous_price = fields.Float( - related='previous_item_id.fixed_price', - string='Previous Fixed Price', + related="previous_item_id.fixed_price", + string="Previous Fixed Price", readonly=True, ) variation_percent = fields.Float( - compute='_compute_variation_percent', + compute="_compute_variation_percent", store=True, - digits=dp.get_precision('Product Price'), - string='Variation %', + digits=dp.get_precision("Product Price"), + string="Variation %", ) @api.model def _search_name(self, operator, value): return [ - '|', '|', - ('categ_id', operator, value), - ('product_tmpl_id', operator, value), - ('product_id', operator, value), + "|", + "|", + ("categ_id", operator, value), + ("product_tmpl_id", operator, value), + ("product_id", operator, value), ] @api.multi - @api.depends('fixed_price', 'previous_item_id.fixed_price') + @api.depends("fixed_price", "previous_item_id.fixed_price") def _compute_variation_percent(self): for line in self: if not (line.fixed_price and line.previous_price): continue - line.variation_percent = ( - (line.fixed_price / line.previous_price - 1) * 100) + line.variation_percent = (line.fixed_price / line.previous_price - 1) * 100 diff --git a/product_pricelist_revision/tests/test_product_pricelist_revision.py b/product_pricelist_revision/tests/test_product_pricelist_revision.py index 3dd45774e8c..a392bfe6a3e 100644 --- a/product_pricelist_revision/tests/test_product_pricelist_revision.py +++ b/product_pricelist_revision/tests/test_product_pricelist_revision.py @@ -2,85 +2,99 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from datetime import date + from odoo.tests.common import SavepointCase class TestProductPricelistRevision(SavepointCase): - @classmethod def setUpClass(cls): super(TestProductPricelistRevision, cls).setUpClass() - cls.pricelist_obj = cls.env['product.pricelist'] - cls.pricelist_item_obj = cls.env['product.pricelist.item'] - cls.product_category_obj = cls.env['product.category'] - cls.product_template_obj = cls.env['product.template'] - cls.product_product_obj = cls.env['product.product'] + cls.pricelist_obj = cls.env["product.pricelist"] + cls.pricelist_item_obj = cls.env["product.pricelist.item"] + cls.product_category_obj = cls.env["product.category"] + cls.product_template_obj = cls.env["product.template"] + cls.product_product_obj = cls.env["product.product"] # Create a price list, a product category, a product template and # a product variant cls.pricelist = cls.pricelist_obj.create( - {'name': 'Pricelist', 'item_ids': False}) + {"name": "Pricelist", "item_ids": False} + ) cls.product_category = cls.product_category_obj.create( - {'name': 'Product Category'}) + {"name": "Product Category"} + ) cls.product_template = cls.product_template_obj.create( - {'name': 'Product Template', 'categ_id': cls.product_category.id}) + {"name": "Product Template", "categ_id": cls.product_category.id} + ) cls.product_product = cls.product_product_obj.create( - {'name': 'Product Variant', 'categ_id': cls.product_category.id}) + {"name": "Product Variant", "categ_id": cls.product_category.id} + ) # Create pricelist items - cls.pricelist_item_global = cls.pricelist_item_obj.create({ - 'pricelist_id': cls.pricelist.id, - 'compute_price': 'formula', - 'price_discount': 15, - }) - cls.pricelist_item_product_category = cls.pricelist_item_obj.create({ - 'pricelist_id': cls.pricelist.id, - 'applied_on': '2_product_category', - 'categ_id': cls.product_category.id, - 'compute_price': 'formula', - 'price_discount': 10, - }) - cls.pricelist_item_product_template = cls.pricelist_item_obj.create({ - 'pricelist_id': cls.pricelist.id, - 'applied_on': '1_product', - 'product_tmpl_id': cls.product_template.id, - 'compute_price': 'percentage', - 'percent_price': 5, - }) - cls.pricelist_item_product_product = cls.pricelist_item_obj.create({ - 'pricelist_id': cls.pricelist.id, - 'applied_on': '0_product_variant', - 'product_id': cls.product_product.id, - 'compute_price': 'fixed', - 'fixed_price': 100, - }) + cls.pricelist_item_global = cls.pricelist_item_obj.create( + { + "pricelist_id": cls.pricelist.id, + "compute_price": "formula", + "price_discount": 15, + } + ) + cls.pricelist_item_product_category = cls.pricelist_item_obj.create( + { + "pricelist_id": cls.pricelist.id, + "applied_on": "2_product_category", + "categ_id": cls.product_category.id, + "compute_price": "formula", + "price_discount": 10, + } + ) + cls.pricelist_item_product_template = cls.pricelist_item_obj.create( + { + "pricelist_id": cls.pricelist.id, + "applied_on": "1_product", + "product_tmpl_id": cls.product_template.id, + "compute_price": "percentage", + "percent_price": 5, + } + ) + cls.pricelist_item_product_product = cls.pricelist_item_obj.create( + { + "pricelist_id": cls.pricelist.id, + "applied_on": "0_product_variant", + "product_id": cls.product_product.id, + "compute_price": "fixed", + "fixed_price": 100, + } + ) def test_search_name(self): item_obj = self.pricelist_item_obj - result = item_obj.search([('name', 'ilike', 'product')]) + result = item_obj.search([("name", "ilike", "product")]) expected = self.pricelist_item_product_category expected |= self.pricelist_item_product_template expected |= self.pricelist_item_product_product self.assertEquals(result, expected) - result = item_obj.search([('name', 'ilike', 'product category')]) + result = item_obj.search([("name", "ilike", "product category")]) self.assertEquals(result, self.pricelist_item_product_category) - result = item_obj.search([('name', 'ilike', 'product template')]) + result = item_obj.search([("name", "ilike", "product template")]) self.assertEquals(result, self.pricelist_item_product_template) - result = item_obj.search([('name', 'ilike', 'product variant')]) + result = item_obj.search([("name", "ilike", "product variant")]) self.assertEquals(result, self.pricelist_item_product_product) - result = item_obj.search([('name', 'ilike', 'all')]) + result = item_obj.search([("name", "ilike", "all")]) self.assertEquals(len(result), 0) def test_wizard_action_apply_and_compute_variation_percent(self): - wizard_obj = self.env['product.pricelist.item.duplicate.wizard'] + wizard_obj = self.env["product.pricelist.item.duplicate.wizard"] # Before duplicate there are 4 items self.assertEquals(len(self.pricelist.item_ids), 4) items_before_wizard = self.pricelist.item_ids # Create wizard from pricelist_item_product_product and aply active_ids = self.pricelist_item_product_product.ids - wizard = wizard_obj.with_context(active_ids=active_ids).create({ - 'date_start': date.today(), - 'date_end': date.today(), - 'variation_percent': 50, - }) + wizard = wizard_obj.with_context(active_ids=active_ids).create( + { + "date_start": date.today(), + "date_end": date.today(), + "variation_percent": 50, + } + ) wizard.action_apply() # There will be one more item in self.pricelist self.assertEquals(len(self.pricelist.item_ids), 5) diff --git a/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py b/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py index 35933d08aa1..3b397c59708 100644 --- a/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py +++ b/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py @@ -4,39 +4,41 @@ from dateutil.relativedelta import relativedelta from odoo import api, fields, models + from odoo.addons import decimal_precision as dp class ProductPricelistItemDuplicateWizard(models.TransientModel): - _name = 'product.pricelist.item.duplicate.wizard' - _description = 'Wizard Product Pricelist Item Duplicate' + _name = "product.pricelist.item.duplicate.wizard" + _description = "Wizard Product Pricelist Item Duplicate" date_start = fields.Date(required=True) date_end = fields.Date() variation_percent = fields.Float( - digits=dp.get_precision('Product Price'), - string='Variation %', + digits=dp.get_precision("Product Price"), string="Variation %" ) @api.multi def action_apply(self): - PricelistItem = self.env['product.pricelist.item'] + PricelistItem = self.env["product.pricelist.item"] new_items = PricelistItem - for item in PricelistItem.browse(self.env.context['active_ids']): - new_items |= item.copy({ - 'date_start': self.date_start, - 'date_end': self.date_end, - 'previous_item_id': item.id, - 'fixed_price': item.fixed_price * ( - 1.0 + self.variation_percent / 100.0), - }) + for item in PricelistItem.browse(self.env.context["active_ids"]): + new_items |= item.copy( + { + "date_start": self.date_start, + "date_end": self.date_end, + "previous_item_id": item.id, + "fixed_price": item.fixed_price + * (1.0 + self.variation_percent / 100.0), + } + ) item.date_end = self.date_start - relativedelta(days=1) action = self.env.ref( - 'product_pricelist_revision.product_pricelist_item_action' + "product_pricelist_revision.product_pricelist_item_action" ).read()[0] if len(new_items) > 0: - action['domain'] = [('id', 'in', new_items.ids)] + action["domain"] = [("id", "in", new_items.ids)] else: - action = {'type': 'ir.actions.act_window_close'} + action = {"type": "ir.actions.act_window_close"} return action From cfa47908b69f3a9725882f463080979e0cd526e2 Mon Sep 17 00:00:00 2001 From: Sergio Teruel Date: Mon, 3 Feb 2020 19:19:49 +0100 Subject: [PATCH 05/31] [MIG] product_pricelist_revision: Migration to v13.0 --- product_pricelist_revision/README.rst | 10 +- product_pricelist_revision/__manifest__.py | 2 +- .../models/pricelist.py | 16 ++-- .../static/description/index.html | 6 +- .../views/pricelist_view.xml | 92 +++++++++++-------- .../wizards/pricelist_duplicate_wizard.py | 3 +- .../pricelist_duplicate_wizard_view.xml | 33 ++++--- 7 files changed, 89 insertions(+), 73 deletions(-) diff --git a/product_pricelist_revision/README.rst b/product_pricelist_revision/README.rst index ef69640189f..bf0fcd60bca 100644 --- a/product_pricelist_revision/README.rst +++ b/product_pricelist_revision/README.rst @@ -14,13 +14,13 @@ Product Pricelist Revision :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fproduct--attribute-lightgray.png?logo=github - :target: https://github.com/OCA/product-attribute/tree/12.0/product_pricelist_revision + :target: https://github.com/OCA/product-attribute/tree/13.0/product_pricelist_revision :alt: OCA/product-attribute .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/product-attribute-12-0/product-attribute-12-0-product_pricelist_revision + :target: https://translation.odoo-community.org/projects/product-attribute-13-0/product-attribute-13-0-product_pricelist_revision :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/135/12.0 + :target: https://runbot.odoo-community.org/runbot/135/13.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -66,7 +66,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. @@ -99,6 +99,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/product-attribute `_ project on GitHub. +This module is part of the `OCA/product-attribute `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/product_pricelist_revision/__manifest__.py b/product_pricelist_revision/__manifest__.py index 82d8d8b4b44..8d78df34bc7 100644 --- a/product_pricelist_revision/__manifest__.py +++ b/product_pricelist_revision/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Product Pricelist Revision", "summary": "Product Pricelist Revision", - "version": "12.0.1.0.0", + "version": "13.0.1.0.0", "category": "Product", "website": "https://www.github.com/OCA/product-attribute", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/product_pricelist_revision/models/pricelist.py b/product_pricelist_revision/models/pricelist.py index 258e86bf1f9..17efea7fdb7 100644 --- a/product_pricelist_revision/models/pricelist.py +++ b/product_pricelist_revision/models/pricelist.py @@ -3,8 +3,6 @@ from odoo import api, fields, models -from odoo.addons import decimal_precision as dp - class ProductPricelistItem(models.Model): _inherit = "product.pricelist.item" @@ -17,14 +15,12 @@ class ProductPricelistItem(models.Model): help="Relation with previous item when duplicate line", ) previous_price = fields.Float( - related="previous_item_id.fixed_price", - string="Previous Fixed Price", - readonly=True, + related="previous_item_id.fixed_price", string="Previous Fixed Price" ) variation_percent = fields.Float( compute="_compute_variation_percent", store=True, - digits=dp.get_precision("Product Price"), + digits="Product Price", string="Variation %", ) @@ -38,10 +34,12 @@ def _search_name(self, operator, value): ("product_id", operator, value), ] - @api.multi @api.depends("fixed_price", "previous_item_id.fixed_price") def _compute_variation_percent(self): for line in self: if not (line.fixed_price and line.previous_price): - continue - line.variation_percent = (line.fixed_price / line.previous_price - 1) * 100 + line.variation_percent = 0.0 + else: + line.variation_percent = ( + line.fixed_price / line.previous_price - 1 + ) * 100 diff --git a/product_pricelist_revision/static/description/index.html b/product_pricelist_revision/static/description/index.html index 0466325b8ac..985b70b5841 100644 --- a/product_pricelist_revision/static/description/index.html +++ b/product_pricelist_revision/static/description/index.html @@ -367,7 +367,7 @@

Product Pricelist Revision

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

Beta License: AGPL-3 OCA/product-attribute Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/product-attribute Translate me on Weblate Try me on Runbot

This module adds a ‘Pricelist items’ tree view that allows to select several elements to version them and also to see the percentage ‘fixed price’ variation between a version and the previous one.

@@ -416,7 +416,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.

@@ -444,7 +444,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/product-attribute project on GitHub.

+

This module is part of the OCA/product-attribute project on GitHub.

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

diff --git a/product_pricelist_revision/views/pricelist_view.xml b/product_pricelist_revision/views/pricelist_view.xml index 526456dbf89..7d87d9c3b85 100644 --- a/product_pricelist_revision/views/pricelist_view.xml +++ b/product_pricelist_revision/views/pricelist_view.xml @@ -1,11 +1,10 @@ - + - product.pricelist.item - + primary @@ -13,61 +12,78 @@ false - - - - - 1 - - - 1 - - - 1 + + - - - + + + - product.pricelist.item.search product.pricelist.item - - - - - - - - - - + + + + + + + + + + - - + + - - Pricelist Items ir.actions.act_window product.pricelist.item - form tree,form - + - - + action="product_pricelist_item_action" + id="menu_product_pricelist_item_action" + parent="sale.product_menu_catalog" + sequence="4" + groups="product.group_sale_pricelist" + /> diff --git a/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py b/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py index 3b397c59708..aeb9e71e655 100644 --- a/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py +++ b/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py @@ -3,7 +3,7 @@ from dateutil.relativedelta import relativedelta -from odoo import api, fields, models +from odoo import fields, models from odoo.addons import decimal_precision as dp @@ -18,7 +18,6 @@ class ProductPricelistItemDuplicateWizard(models.TransientModel): digits=dp.get_precision("Product Price"), string="Variation %" ) - @api.multi def action_apply(self): PricelistItem = self.env["product.pricelist.item"] new_items = PricelistItem diff --git a/product_pricelist_revision/wizards/pricelist_duplicate_wizard_view.xml b/product_pricelist_revision/wizards/pricelist_duplicate_wizard_view.xml index e386d7893c0..45773d2e7d6 100644 --- a/product_pricelist_revision/wizards/pricelist_duplicate_wizard_view.xml +++ b/product_pricelist_revision/wizards/pricelist_duplicate_wizard_view.xml @@ -1,4 +1,4 @@ - + @@ -11,32 +11,35 @@ Set new start date and variation percent to duplicate. This process set start date previous day as end date of origin record. -
-
+
+
- - - + + +
-
- - -
From e2310872fe7bbf41206cdea23a6e53bd447bb919 Mon Sep 17 00:00:00 2001 From: Carlos Dauden Date: Wed, 10 Feb 2021 21:26:07 +0100 Subject: [PATCH 06/31] [IMP] product_pricelist_revision: Add percent price column and current filter TT28144 [UPD] Update product_pricelist_revision.pot --- product_pricelist_revision/i18n/es.po | 100 ++++++------------ .../i18n/product_pricelist_revision.pot | 82 +++++--------- .../views/pricelist_view.xml | 94 ++++++++-------- 3 files changed, 112 insertions(+), 164 deletions(-) diff --git a/product_pricelist_revision/i18n/es.po b/product_pricelist_revision/i18n/es.po index cf50c1d7cd5..ef9369d7526 100644 --- a/product_pricelist_revision/i18n/es.po +++ b/product_pricelist_revision/i18n/es.po @@ -6,38 +6,18 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-02-08 08:47+0000\n" -"PO-Revision-Date: 2019-02-08 10:28+0100\n" +"POT-Creation-Date: 2021-02-11 21:33+0000\n" +"PO-Revision-Date: 2021-02-11 22:40+0100\n" "Last-Translator: Carlos Dauden \n" "Language-Team: carlos.dauden@tecnativa.com\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.6\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Poedit 2.3\n" "X-Poedit-SourceCharset: UTF-8\n" -#. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Applied on categories" -msgstr "Aplicado a categorías" - -#. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Applied on global" -msgstr "Aplicado a todo" - -#. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Applied on products" -msgstr "Aplicado a plantilla de prouctos" - -#. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Applied on variants" -msgstr "Aplicado a variantes" - #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "Apply" @@ -48,6 +28,11 @@ msgstr "Aplicar" msgid "Cancel" msgstr "Cancelar" +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Category Rule" +msgstr "Regla de categoría" + #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__create_uid msgid "Created by" @@ -58,6 +43,11 @@ msgstr "Creado por" msgid "Created on" msgstr "Creado en" +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Current" +msgstr "Vigente" + #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__date_end msgid "Date End" @@ -81,23 +71,18 @@ msgstr "Duplicar elemento" #. module: product_pricelist_revision #: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item__name msgid "Explicit rule name for this pricelist line." -msgstr "" +msgstr "Nombre de regla explícito para esta línea de lista de precios." #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Group By" -msgstr "Agrupado por" +msgid "Global Rule" +msgstr "Regla global" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__id msgid "ID" msgstr "ID (identificación)" -#. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Item" -msgstr "Elemento" - #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard____last_update msgid "Last Modified on" @@ -116,32 +101,23 @@ msgstr "Última actualización en" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__name msgid "Name" -msgstr "" +msgstr "Nombre" + +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_revision_tree_view +msgid "Percent" +msgstr "Porcentaje" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__previous_price -#, fuzzy -#| msgid "Fixed Price" msgid "Previous Fixed Price" -msgstr "Precio fijo" +msgstr "Precio fijo anterior" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__previous_item_id msgid "Previous Item" msgstr "Elemento previo" -#. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Pricelist" -msgstr "Tarifa" - -#. module: product_pricelist_revision -#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item -#, fuzzy -#| msgid "Pricelist Items" -msgid "Pricelist Item" -msgstr "Elementos de tarifa" - #. module: product_pricelist_revision #: model:ir.actions.act_window,name:product_pricelist_revision.product_pricelist_item_action #: model:ir.ui.menu,name:product_pricelist_revision.menu_product_pricelist_item_action @@ -149,19 +125,14 @@ msgid "Pricelist Items" msgstr "Elementos de tarifa" #. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Pricelist Items Search" -msgstr "Buscar elementos de tarifa" - -#. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Product" -msgstr "Producto" +#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item +msgid "Pricelist Rule" +msgstr "Regla de tarifa" #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Product Category" -msgstr "Categoría" +msgstr "Categoría de producto" #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search @@ -173,11 +144,6 @@ msgstr "Plantilla de producto" msgid "Product Variant" msgstr "Variantes de producto" -#. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Products" -msgstr "Productos" - #. module: product_pricelist_revision #: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item__previous_item_id msgid "Relation with previous item when duplicate line" @@ -187,12 +153,13 @@ msgstr "Relacion con elemento previo cuando se duplica la linea" #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "" "Set new start date and variation percent to duplicate.\n" -" This process set start date previous day as end date of\n" +" This process set start date previous day as end date " +"of\n" " origin record.\n" "
\n" "
" msgstr "" -"Establece fecha inicio y porcentage de variación para duplicar.\n" +"Establece nueva fecha de inicio y porcentaje de variación para duplicar.\n" " Este proceso establecerá como fecha final el día previo " "a la fecha final en\n" " el registro original.\n" @@ -208,12 +175,9 @@ msgstr "Variación %" #. module: product_pricelist_revision #: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item_duplicate_wizard msgid "Wizard Product Pricelist Item Duplicate" -msgstr "" +msgstr "Asistente para duplicar elementos de tarifa" #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "or" msgstr "o" - -#~ msgid "Pricelist item" -#~ msgstr "Elemento de la tarifa" diff --git a/product_pricelist_revision/i18n/product_pricelist_revision.pot b/product_pricelist_revision/i18n/product_pricelist_revision.pot index 09c314f69e8..f5522c3fa59 100644 --- a/product_pricelist_revision/i18n/product_pricelist_revision.pot +++ b/product_pricelist_revision/i18n/product_pricelist_revision.pot @@ -1,38 +1,18 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * product_pricelist_revision +# * product_pricelist_revision # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 13.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" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" -#. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Applied on categories" -msgstr "" - -#. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Applied on global" -msgstr "" - -#. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Applied on products" -msgstr "" - -#. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Applied on variants" -msgstr "" - #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "Apply" @@ -43,6 +23,11 @@ msgstr "" msgid "Cancel" msgstr "" +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Category Rule" +msgstr "" + #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__create_uid msgid "Created by" @@ -53,6 +38,11 @@ msgstr "" msgid "Created on" msgstr "" +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Current" +msgstr "" + #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__date_end msgid "Date End" @@ -74,13 +64,14 @@ msgid "Duplicate Item" msgstr "" #. module: product_pricelist_revision +#: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_assortment_item__name #: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item__name msgid "Explicit rule name for this pricelist line." msgstr "" #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Group By" +msgid "Global Rule" msgstr "" #. module: product_pricelist_revision @@ -88,11 +79,6 @@ msgstr "" msgid "ID" msgstr "" -#. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Item" -msgstr "" - #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard____last_update msgid "Last Modified on" @@ -109,30 +95,28 @@ msgid "Last Updated on" msgstr "" #. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_assortment_item__name #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__name msgid "Name" msgstr "" #. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_revision_tree_view +msgid "Percent" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_assortment_item__previous_price #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__previous_price msgid "Previous Fixed Price" msgstr "" #. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_assortment_item__previous_item_id #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__previous_item_id msgid "Previous Item" msgstr "" -#. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Pricelist" -msgstr "" - -#. module: product_pricelist_revision -#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item -msgid "Pricelist Item" -msgstr "" - #. module: product_pricelist_revision #: model:ir.actions.act_window,name:product_pricelist_revision.product_pricelist_item_action #: model:ir.ui.menu,name:product_pricelist_revision.menu_product_pricelist_item_action @@ -140,13 +124,8 @@ msgid "Pricelist Items" msgstr "" #. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Pricelist Items Search" -msgstr "" - -#. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Product" +#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item +msgid "Pricelist Rule" msgstr "" #. module: product_pricelist_revision @@ -165,18 +144,15 @@ msgid "Product Variant" msgstr "" #. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search -msgid "Products" -msgstr "" - -#. module: product_pricelist_revision +#: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_assortment_item__previous_item_id #: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item__previous_item_id msgid "Relation with previous item when duplicate line" msgstr "" #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view -msgid "Set new start date and variation percent to duplicate.\n" +msgid "" +"Set new start date and variation percent to duplicate.\n" " This process set start date previous day as end date of\n" " origin record.\n" "
\n" @@ -184,6 +160,7 @@ msgid "Set new start date and variation percent to duplicate.\n" msgstr "" #. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_assortment_item__variation_percent #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__variation_percent #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__variation_percent msgid "Variation %" @@ -198,4 +175,3 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "or" msgstr "" - diff --git a/product_pricelist_revision/views/pricelist_view.xml b/product_pricelist_revision/views/pricelist_view.xml index 7d87d9c3b85..fde0f937a43 100644 --- a/product_pricelist_revision/views/pricelist_view.xml +++ b/product_pricelist_revision/views/pricelist_view.xml @@ -1,5 +1,5 @@ - @@ -11,65 +11,73 @@ bottom false - - - + + show + + + show + + + show + + + show - - - + + + + - product.pricelist.item.search product.pricelist.item + - - - - - - + + - - + + + - - - - - + + @@ -77,7 +85,7 @@ ir.actions.act_window product.pricelist.item tree,form - + {'search_default_current_date':1} Date: Thu, 25 Feb 2021 11:52:05 +0000 Subject: [PATCH 07/31] Added translation using Weblate (Catalan) --- product_pricelist_revision/i18n/ca.po | 178 ++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 product_pricelist_revision/i18n/ca.po diff --git a/product_pricelist_revision/i18n/ca.po b/product_pricelist_revision/i18n/ca.po new file mode 100644 index 00000000000..64a270dc307 --- /dev/null +++ b/product_pricelist_revision/i18n/ca.po @@ -0,0 +1,178 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_pricelist_revision +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ca\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" + +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +msgid "Apply" +msgstr "" + +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +msgid "Cancel" +msgstr "" + +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Category Rule" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__create_uid +msgid "Created by" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__create_date +msgid "Created on" +msgstr "" + +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Current" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__date_end +msgid "Date End" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__date_start +msgid "Date Start" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__display_name +msgid "Display Name" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.actions.act_window,name:product_pricelist_revision.pricelist_item_duplicate_wizard_action +msgid "Duplicate Item" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_assortment_item__name +#: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item__name +msgid "Explicit rule name for this pricelist line." +msgstr "" + +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Global Rule" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__id +msgid "ID" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard____last_update +msgid "Last Modified on" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__write_date +msgid "Last Updated on" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_assortment_item__name +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__name +msgid "Name" +msgstr "" + +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_revision_tree_view +msgid "Percent" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_assortment_item__previous_price +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__previous_price +msgid "Previous Fixed Price" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_assortment_item__previous_item_id +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__previous_item_id +msgid "Previous Item" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.actions.act_window,name:product_pricelist_revision.product_pricelist_item_action +#: model:ir.ui.menu,name:product_pricelist_revision.menu_product_pricelist_item_action +msgid "Pricelist Items" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item +msgid "Pricelist Rule" +msgstr "" + +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Product Category" +msgstr "" + +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Product Template" +msgstr "" + +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search +msgid "Product Variant" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_assortment_item__previous_item_id +#: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item__previous_item_id +msgid "Relation with previous item when duplicate line" +msgstr "" + +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +msgid "" +"Set new start date and variation percent to duplicate.\n" +" This process set start date previous day as end date of\n" +" origin record.\n" +"
\n" +"
" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_assortment_item__variation_percent +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__variation_percent +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__variation_percent +msgid "Variation %" +msgstr "" + +#. module: product_pricelist_revision +#: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item_duplicate_wizard +msgid "Wizard Product Pricelist Item Duplicate" +msgstr "" + +#. module: product_pricelist_revision +#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view +msgid "or" +msgstr "" From 2dd494436b7dbb84869967c920713cd7b10d9c85 Mon Sep 17 00:00:00 2001 From: claudiagn Date: Thu, 25 Feb 2021 11:54:55 +0000 Subject: [PATCH 08/31] Translated using Weblate (Catalan) Currently translated at 100.0% (30 of 30 strings) Translation: product-attribute-13.0/product-attribute-13.0-product_pricelist_revision Translate-URL: https://translation.odoo-community.org/projects/product-attribute-13-0/product-attribute-13-0-product_pricelist_revision/ca/ --- product_pricelist_revision/i18n/ca.po | 68 +++++++++++++++------------ 1 file changed, 38 insertions(+), 30 deletions(-) diff --git a/product_pricelist_revision/i18n/ca.po b/product_pricelist_revision/i18n/ca.po index 64a270dc307..f163de90ae7 100644 --- a/product_pricelist_revision/i18n/ca.po +++ b/product_pricelist_revision/i18n/ca.po @@ -6,149 +6,151 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2021-02-25 12:45+0000\n" +"Last-Translator: claudiagn \n" "Language-Team: none\n" "Language: ca\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.3.2\n" #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "Apply" -msgstr "" +msgstr "Aplicar" #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "Cancel" -msgstr "" +msgstr "Cancelar" #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Category Rule" -msgstr "" +msgstr "Regla de categoria" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__create_uid msgid "Created by" -msgstr "" +msgstr "Creat per" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__create_date msgid "Created on" -msgstr "" +msgstr "Creat el" #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Current" -msgstr "" +msgstr "Actual" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__date_end msgid "Date End" -msgstr "" +msgstr "Data final" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__date_start msgid "Date Start" -msgstr "" +msgstr "Data d'inici" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__display_name msgid "Display Name" -msgstr "" +msgstr "Nom visible" #. module: product_pricelist_revision #: model:ir.actions.act_window,name:product_pricelist_revision.pricelist_item_duplicate_wizard_action msgid "Duplicate Item" -msgstr "" +msgstr "Duplicar article" #. module: product_pricelist_revision #: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_assortment_item__name #: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item__name msgid "Explicit rule name for this pricelist line." -msgstr "" +msgstr "Nom de la regla explícita per a aquesta línia de preus." #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Global Rule" -msgstr "" +msgstr "Regla global" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__id msgid "ID" -msgstr "" +msgstr "ID" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard____last_update msgid "Last Modified on" -msgstr "" +msgstr "Darrera modificació el" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__write_uid msgid "Last Updated by" -msgstr "" +msgstr "Darrera actualització per" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__write_date msgid "Last Updated on" -msgstr "" +msgstr "Darrera actualització el" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_assortment_item__name #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__name msgid "Name" -msgstr "" +msgstr "Nom" #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_revision_tree_view msgid "Percent" -msgstr "" +msgstr "Per cent" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_assortment_item__previous_price #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__previous_price msgid "Previous Fixed Price" -msgstr "" +msgstr "Preu fixe anterior" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_assortment_item__previous_item_id #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__previous_item_id msgid "Previous Item" -msgstr "" +msgstr "Article anterior" #. module: product_pricelist_revision #: model:ir.actions.act_window,name:product_pricelist_revision.product_pricelist_item_action #: model:ir.ui.menu,name:product_pricelist_revision.menu_product_pricelist_item_action msgid "Pricelist Items" -msgstr "" +msgstr "Articles de tarifa" #. module: product_pricelist_revision #: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item msgid "Pricelist Rule" -msgstr "" +msgstr "Regla de tarifa" #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Product Category" -msgstr "" +msgstr "Categoria de producte" #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Product Template" -msgstr "" +msgstr "Plantilla de producte" #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.product_pricelist_item_view_search msgid "Product Variant" -msgstr "" +msgstr "Variant de producte" #. module: product_pricelist_revision #: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_assortment_item__previous_item_id #: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item__previous_item_id msgid "Relation with previous item when duplicate line" -msgstr "" +msgstr "Relació amb l'element anterior quan es duplica la línia" #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view @@ -159,20 +161,26 @@ msgid "" "
\n" "
" msgstr "" +"Definiu la nova data d'inici i el percentatge de variació per duplicar.\n" +" Aquest procés estableix la data d'inici del dia anterior " +"com a data de finalització de\n" +" registre d’origen.\n" +"
\n" +"
" #. module: product_pricelist_revision #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_assortment_item__variation_percent #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__variation_percent #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__variation_percent msgid "Variation %" -msgstr "" +msgstr "Variació %" #. module: product_pricelist_revision #: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item_duplicate_wizard msgid "Wizard Product Pricelist Item Duplicate" -msgstr "" +msgstr "Assistent duplicat de l'element de llista de preus del producte" #. module: product_pricelist_revision #: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view msgid "or" -msgstr "" +msgstr "o" From b43a168ebb92fc0dc9182f13e6d6685cec2d8a39 Mon Sep 17 00:00:00 2001 From: Carlos Roca Date: Thu, 4 Mar 2021 09:11:14 +0100 Subject: [PATCH 09/31] [FIX] product_pricelist_revision: Applied the new way for digits Before this change on runbot we caught a Warning about deprecated call to decimal_precision.get_precision() [UPD] README.rst product_pricelist_revision 13.0.1.1.0 --- product_pricelist_revision/README.rst | 4 ++-- product_pricelist_revision/__manifest__.py | 2 +- product_pricelist_revision/readme/CONFIGURE.rst | 3 +-- product_pricelist_revision/readme/CONTRIBUTORS.rst | 1 + product_pricelist_revision/static/description/index.html | 4 ++-- .../wizards/pricelist_duplicate_wizard.py | 6 +----- 6 files changed, 8 insertions(+), 12 deletions(-) diff --git a/product_pricelist_revision/README.rst b/product_pricelist_revision/README.rst index bf0fcd60bca..b9a3c7d528d 100644 --- a/product_pricelist_revision/README.rst +++ b/product_pricelist_revision/README.rst @@ -40,8 +40,7 @@ Configuration To configure this module, you need to: #. Go to *Sales > Configuration > Settings* and check - "Multiple Sales Prices per Product" option and - "Prices computed from formulas" after that. + "Pricelists" option and "Advanced price rules" after that. Usage ===== @@ -85,6 +84,7 @@ Contributors * Carlos Dauden * Ernesto Tejeda + * Carlos Roca Maintainers ~~~~~~~~~~~ diff --git a/product_pricelist_revision/__manifest__.py b/product_pricelist_revision/__manifest__.py index 8d78df34bc7..e83648c0640 100644 --- a/product_pricelist_revision/__manifest__.py +++ b/product_pricelist_revision/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Product Pricelist Revision", "summary": "Product Pricelist Revision", - "version": "13.0.1.0.0", + "version": "13.0.1.1.0", "category": "Product", "website": "https://www.github.com/OCA/product-attribute", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/product_pricelist_revision/readme/CONFIGURE.rst b/product_pricelist_revision/readme/CONFIGURE.rst index d17c2e4e7a5..2c4e6a19227 100644 --- a/product_pricelist_revision/readme/CONFIGURE.rst +++ b/product_pricelist_revision/readme/CONFIGURE.rst @@ -1,5 +1,4 @@ To configure this module, you need to: #. Go to *Sales > Configuration > Settings* and check - "Multiple Sales Prices per Product" option and - "Prices computed from formulas" after that. + "Pricelists" option and "Advanced price rules" after that. diff --git a/product_pricelist_revision/readme/CONTRIBUTORS.rst b/product_pricelist_revision/readme/CONTRIBUTORS.rst index 0b072f0d593..02efd7fa5d5 100644 --- a/product_pricelist_revision/readme/CONTRIBUTORS.rst +++ b/product_pricelist_revision/readme/CONTRIBUTORS.rst @@ -2,3 +2,4 @@ * Carlos Dauden * Ernesto Tejeda + * Carlos Roca diff --git a/product_pricelist_revision/static/description/index.html b/product_pricelist_revision/static/description/index.html index 985b70b5841..4b5a62bb216 100644 --- a/product_pricelist_revision/static/description/index.html +++ b/product_pricelist_revision/static/description/index.html @@ -390,8 +390,7 @@

Configuration

To configure this module, you need to:

  1. Go to Sales > Configuration > Settings and check -“Multiple Sales Prices per Product” option and -“Prices computed from formulas” after that.
  2. +“Pricelists” option and “Advanced price rules” after that.
@@ -433,6 +432,7 @@

Contributors

  • Tecnativa:
    • Carlos Dauden
    • Ernesto Tejeda
    • +
    • Carlos Roca
  • diff --git a/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py b/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py index aeb9e71e655..24e34e58028 100644 --- a/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py +++ b/product_pricelist_revision/wizards/pricelist_duplicate_wizard.py @@ -5,8 +5,6 @@ from odoo import fields, models -from odoo.addons import decimal_precision as dp - class ProductPricelistItemDuplicateWizard(models.TransientModel): _name = "product.pricelist.item.duplicate.wizard" @@ -14,9 +12,7 @@ class ProductPricelistItemDuplicateWizard(models.TransientModel): date_start = fields.Date(required=True) date_end = fields.Date() - variation_percent = fields.Float( - digits=dp.get_precision("Product Price"), string="Variation %" - ) + variation_percent = fields.Float(digits="Product Price", string="Variation %") def action_apply(self): PricelistItem = self.env["product.pricelist.item"] From 60f59c72a6ba5c1e7a304905c00b2f236ff8a121 Mon Sep 17 00:00:00 2001 From: Carlos Dauden Date: Mon, 29 Mar 2021 13:03:00 +0200 Subject: [PATCH 10/31] [IMP] product_pricelist_revision: Allow create pricelist item TT27524 --- product_pricelist_revision/__manifest__.py | 2 +- product_pricelist_revision/views/pricelist_view.xml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/product_pricelist_revision/__manifest__.py b/product_pricelist_revision/__manifest__.py index e83648c0640..c249f86bf30 100644 --- a/product_pricelist_revision/__manifest__.py +++ b/product_pricelist_revision/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Product Pricelist Revision", "summary": "Product Pricelist Revision", - "version": "13.0.1.1.0", + "version": "13.0.1.2.0", "category": "Product", "website": "https://www.github.com/OCA/product-attribute", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/product_pricelist_revision/views/pricelist_view.xml b/product_pricelist_revision/views/pricelist_view.xml index fde0f937a43..452f21d30d9 100644 --- a/product_pricelist_revision/views/pricelist_view.xml +++ b/product_pricelist_revision/views/pricelist_view.xml @@ -9,10 +9,12 @@ bottom - false show + {'readonly': [('pricelist_id', '!=', False)]} show From 6d9511eff6ebeb7365f1e56db17e1ab2c7e48f74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Marques?= Date: Thu, 5 Aug 2021 09:35:11 +0100 Subject: [PATCH 11/31] [IMP] *: pre-commit execution Fix website key in the manifests --- product_pricelist_revision/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_pricelist_revision/__manifest__.py b/product_pricelist_revision/__manifest__.py index c249f86bf30..a58c151d160 100644 --- a/product_pricelist_revision/__manifest__.py +++ b/product_pricelist_revision/__manifest__.py @@ -6,7 +6,7 @@ "summary": "Product Pricelist Revision", "version": "13.0.1.2.0", "category": "Product", - "website": "https://www.github.com/OCA/product-attribute", + "website": "https://github.com/OCA/product-attribute", "author": "Tecnativa, Odoo Community Association (OCA)", "license": "AGPL-3", "installable": True, From e98bb1052d3d6be69d729cbcb9f8fe1d6c49d012 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Wed, 10 Nov 2021 13:26:00 +0100 Subject: [PATCH 12/31] [MIG] product_pricelist_revision: Migration to 14.0 TT31815 --- product_pricelist_revision/README.rst | 10 ++++---- product_pricelist_revision/__manifest__.py | 8 +++++-- .../i18n/product_pricelist_revision.pot | 16 ++++--------- .../security/ir.model.access.csv | 2 ++ .../static/description/index.html | 6 ++--- .../tests/test_product_pricelist_revision.py | 24 +++++++++---------- .../pricelist_duplicate_wizard_view.xml | 18 +++++++------- 7 files changed, 40 insertions(+), 44 deletions(-) create mode 100644 product_pricelist_revision/security/ir.model.access.csv diff --git a/product_pricelist_revision/README.rst b/product_pricelist_revision/README.rst index b9a3c7d528d..b739a19171b 100644 --- a/product_pricelist_revision/README.rst +++ b/product_pricelist_revision/README.rst @@ -14,13 +14,13 @@ Product Pricelist Revision :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fproduct--attribute-lightgray.png?logo=github - :target: https://github.com/OCA/product-attribute/tree/13.0/product_pricelist_revision + :target: https://github.com/OCA/product-attribute/tree/14.0/product_pricelist_revision :alt: OCA/product-attribute .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/product-attribute-13-0/product-attribute-13-0-product_pricelist_revision + :target: https://translation.odoo-community.org/projects/product-attribute-14-0/product-attribute-14-0-product_pricelist_revision :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/135/13.0 + :target: https://runbot.odoo-community.org/runbot/135/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -65,7 +65,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. @@ -99,6 +99,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/product-attribute `_ project on GitHub. +This module is part of the `OCA/product-attribute `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/product_pricelist_revision/__manifest__.py b/product_pricelist_revision/__manifest__.py index a58c151d160..4d1e5cf7828 100644 --- a/product_pricelist_revision/__manifest__.py +++ b/product_pricelist_revision/__manifest__.py @@ -4,12 +4,16 @@ { "name": "Product Pricelist Revision", "summary": "Product Pricelist Revision", - "version": "13.0.1.2.0", + "version": "14.0.1.0.0", "category": "Product", "website": "https://github.com/OCA/product-attribute", "author": "Tecnativa, Odoo Community Association (OCA)", "license": "AGPL-3", "installable": True, "depends": ["sale_management"], - "data": ["views/pricelist_view.xml", "wizards/pricelist_duplicate_wizard_view.xml"], + "data": [ + "security/ir.model.access.csv", + "views/pricelist_view.xml", + "wizards/pricelist_duplicate_wizard_view.xml", + ], } diff --git a/product_pricelist_revision/i18n/product_pricelist_revision.pot b/product_pricelist_revision/i18n/product_pricelist_revision.pot index f5522c3fa59..6ba6f38bdba 100644 --- a/product_pricelist_revision/i18n/product_pricelist_revision.pot +++ b/product_pricelist_revision/i18n/product_pricelist_revision.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -54,6 +54,7 @@ msgid "Date Start" msgstr "" #. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__display_name #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__display_name msgid "Display Name" msgstr "" @@ -64,7 +65,6 @@ msgid "Duplicate Item" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_assortment_item__name #: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item__name msgid "Explicit rule name for this pricelist line." msgstr "" @@ -75,11 +75,13 @@ msgid "Global Rule" msgstr "" #. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__id #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__id msgid "ID" msgstr "" #. module: product_pricelist_revision +#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item____last_update #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard____last_update msgid "Last Modified on" msgstr "" @@ -95,7 +97,6 @@ msgid "Last Updated on" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_assortment_item__name #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__name msgid "Name" msgstr "" @@ -106,13 +107,11 @@ msgid "Percent" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_assortment_item__previous_price #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__previous_price msgid "Previous Fixed Price" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_assortment_item__previous_item_id #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__previous_item_id msgid "Previous Item" msgstr "" @@ -144,7 +143,6 @@ msgid "Product Variant" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_assortment_item__previous_item_id #: model:ir.model.fields,help:product_pricelist_revision.field_product_pricelist_item__previous_item_id msgid "Relation with previous item when duplicate line" msgstr "" @@ -160,7 +158,6 @@ msgid "" msgstr "" #. module: product_pricelist_revision -#: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_assortment_item__variation_percent #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item__variation_percent #: model:ir.model.fields,field_description:product_pricelist_revision.field_product_pricelist_item_duplicate_wizard__variation_percent msgid "Variation %" @@ -170,8 +167,3 @@ msgstr "" #: model:ir.model,name:product_pricelist_revision.model_product_pricelist_item_duplicate_wizard msgid "Wizard Product Pricelist Item Duplicate" msgstr "" - -#. module: product_pricelist_revision -#: model_terms:ir.ui.view,arch_db:product_pricelist_revision.pricelist_item_duplicate_wizard_view -msgid "or" -msgstr "" diff --git a/product_pricelist_revision/security/ir.model.access.csv b/product_pricelist_revision/security/ir.model.access.csv new file mode 100644 index 00000000000..6ca839c0823 --- /dev/null +++ b/product_pricelist_revision/security/ir.model.access.csv @@ -0,0 +1,2 @@ +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_product_pricelist_item_duplicate_wizard","access_product_pricelist_item_duplicate_wizard","model_product_pricelist_item_duplicate_wizard","product.group_sale_pricelist",1,1,1,1 diff --git a/product_pricelist_revision/static/description/index.html b/product_pricelist_revision/static/description/index.html index 4b5a62bb216..1e6bdd48e63 100644 --- a/product_pricelist_revision/static/description/index.html +++ b/product_pricelist_revision/static/description/index.html @@ -367,7 +367,7 @@

    Product Pricelist Revision

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

    Beta License: AGPL-3 OCA/product-attribute Translate me on Weblate Try me on Runbot

    +

    Beta License: AGPL-3 OCA/product-attribute Translate me on Weblate Try me on Runbot

    This module adds a ‘Pricelist items’ tree view that allows to select several elements to version them and also to see the percentage ‘fixed price’ variation between a version and the previous one.

    @@ -415,7 +415,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.

    @@ -444,7 +444,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/product-attribute project on GitHub.

    +

    This module is part of the OCA/product-attribute project on GitHub.

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

    diff --git a/product_pricelist_revision/tests/test_product_pricelist_revision.py b/product_pricelist_revision/tests/test_product_pricelist_revision.py index a392bfe6a3e..9bdf8f37d7d 100644 --- a/product_pricelist_revision/tests/test_product_pricelist_revision.py +++ b/product_pricelist_revision/tests/test_product_pricelist_revision.py @@ -9,7 +9,7 @@ class TestProductPricelistRevision(SavepointCase): @classmethod def setUpClass(cls): - super(TestProductPricelistRevision, cls).setUpClass() + super().setUpClass() cls.pricelist_obj = cls.env["product.pricelist"] cls.pricelist_item_obj = cls.env["product.pricelist.item"] cls.product_category_obj = cls.env["product.category"] @@ -71,20 +71,20 @@ def test_search_name(self): expected = self.pricelist_item_product_category expected |= self.pricelist_item_product_template expected |= self.pricelist_item_product_product - self.assertEquals(result, expected) + self.assertEqual(result, expected) result = item_obj.search([("name", "ilike", "product category")]) - self.assertEquals(result, self.pricelist_item_product_category) + self.assertEqual(result, self.pricelist_item_product_category) result = item_obj.search([("name", "ilike", "product template")]) - self.assertEquals(result, self.pricelist_item_product_template) + self.assertEqual(result, self.pricelist_item_product_template) result = item_obj.search([("name", "ilike", "product variant")]) - self.assertEquals(result, self.pricelist_item_product_product) + self.assertEqual(result, self.pricelist_item_product_product) result = item_obj.search([("name", "ilike", "all")]) - self.assertEquals(len(result), 0) + self.assertEqual(len(result), 0) def test_wizard_action_apply_and_compute_variation_percent(self): wizard_obj = self.env["product.pricelist.item.duplicate.wizard"] # Before duplicate there are 4 items - self.assertEquals(len(self.pricelist.item_ids), 4) + self.assertEqual(len(self.pricelist.item_ids), 4) items_before_wizard = self.pricelist.item_ids # Create wizard from pricelist_item_product_product and aply active_ids = self.pricelist_item_product_product.ids @@ -97,9 +97,9 @@ def test_wizard_action_apply_and_compute_variation_percent(self): ) wizard.action_apply() # There will be one more item in self.pricelist - self.assertEquals(len(self.pricelist.item_ids), 5) + self.assertEqual(len(self.pricelist.item_ids), 5) new_item = self.pricelist.item_ids - items_before_wizard - self.assertEquals(new_item.previous_item_id.id, active_ids[0]) - self.assertEquals(new_item.previous_price, 100) - self.assertEquals(new_item.fixed_price, 150) - self.assertEquals(new_item.variation_percent, 50) + self.assertEqual(new_item.previous_item_id.id, active_ids[0]) + self.assertEqual(new_item.previous_price, 100) + self.assertEqual(new_item.fixed_price, 150) + self.assertEqual(new_item.variation_percent, 50) diff --git a/product_pricelist_revision/wizards/pricelist_duplicate_wizard_view.xml b/product_pricelist_revision/wizards/pricelist_duplicate_wizard_view.xml index 45773d2e7d6..e732d53bbee 100644 --- a/product_pricelist_revision/wizards/pricelist_duplicate_wizard_view.xml +++ b/product_pricelist_revision/wizards/pricelist_duplicate_wizard_view.xml @@ -1,5 +1,5 @@ - @@ -28,18 +28,16 @@ type="object" class="oe_highlight" /> - or