From 5c4156bfa43993b49756e0144c4f1dfed7a778ef Mon Sep 17 00:00:00 2001 From: hveficent Date: Fri, 7 Feb 2020 16:46:09 +0100 Subject: [PATCH] [IMP] stock_request_kanban: * Add Scan Kanban button on Stock Request tree view * Recompute barcode without crc validation * Add kanban cards on product cards --- stock_request_kanban/README.rst | 26 ++- stock_request_kanban/__manifest__.py | 3 + stock_request_kanban/i18n/es.po | 165 ++++++++++----- .../i18n/stock_request_kanban.pot | 165 +++++++++------ stock_request_kanban/i18n/zh_CN.po | 193 ++++++++++++------ stock_request_kanban/models/__init__.py | 1 + stock_request_kanban/models/product.py | 53 +++++ .../models/stock_request_kanban.py | 17 +- stock_request_kanban/readme/CONFIGURE.rst | 8 +- .../static/description/icon.png | Bin 7510 -> 15218 bytes .../static/description/index.html | 16 +- stock_request_kanban/views/product_views.xml | 2 +- 12 files changed, 448 insertions(+), 201 deletions(-) create mode 100644 stock_request_kanban/models/product.py diff --git a/stock_request_kanban/README.rst b/stock_request_kanban/README.rst index 1a4eb5697..960ae5774 100644 --- a/stock_request_kanban/README.rst +++ b/stock_request_kanban/README.rst @@ -10,17 +10,17 @@ Stock Request kanban .. |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 +.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstock--logistics--warehouse-lightgray.png?logo=github - :target: https://github.com/OCA/stock-logistics-warehouse/tree/12.0/stock_request_kanban + :target: https://github.com/OCA/stock-logistics-warehouse/tree/13.0/stock_request_kanban :alt: OCA/stock-logistics-warehouse .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/stock-logistics-warehouse-12-0/stock-logistics-warehouse-12-0-stock_request_kanban + :target: https://translation.odoo-community.org/projects/stock-logistics-warehouse-13-0/stock-logistics-warehouse-13-0-stock_request_kanban :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/153/12.0 + :target: https://runbot.odoo-community.org/runbot/153/13.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -42,11 +42,15 @@ It is created following the concept of lean kanban cards. Configuration ============= -If you don't need to check the CRC of the kanban card, you should: +If the barcode does not contain a CRC check digit on the kanban card, you should: * Access on Development mode * Access 'Settings / Technical / Parameters / System Parameters' -* Create a parameter with name 'stock_request_kanban.crc' and set it value to 0 +* Create a parameter with name 'stock_request_kanban.crc' and set it to value to 0 + +If the barcode contains a CRC check digit and you want to ignore it: + +* Create a paramenter with name 'stock_request_kanban.ignore_crc' and set it to value to 1 If you want to change the format of the QR, you should: @@ -93,7 +97,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. @@ -104,7 +108,7 @@ Authors ~~~~~~~ * Creu Blanca -* Eficent +* ForgeFlow Contributors ~~~~~~~~~~~~ @@ -125,6 +129,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/stock-logistics-warehouse `_ project on GitHub. +This module is part of the `OCA/stock-logistics-warehouse `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/stock_request_kanban/__manifest__.py b/stock_request_kanban/__manifest__.py index 751ef59bc..be526917b 100644 --- a/stock_request_kanban/__manifest__.py +++ b/stock_request_kanban/__manifest__.py @@ -20,9 +20,12 @@ "views/stock_request_kanban_views.xml", "views/stock_inventory_kanban_views.xml", "views/stock_request_menu.xml", + "views/stock_request_views.xml", + "views/product_views.xml", "report/stock_request_kanban_templates.xml", "security/ir.model.access.csv", ], + "qweb": ["static/src/xml/stock_request_kanban_scan.xml"], "installable": True, "application": False, } diff --git a/stock_request_kanban/i18n/es.po b/stock_request_kanban/i18n/es.po index 7819523ef..c3c3548b5 100644 --- a/stock_request_kanban/i18n/es.po +++ b/stock_request_kanban/i18n/es.po @@ -16,6 +16,13 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 3.1.1\n" +#. module: stock_request_kanban +#: model:ir.model.fields,field_description:stock_request_kanban.field_product_product__kanban_card_count +#: model:ir.model.fields,field_description:stock_request_kanban.field_product_template__kanban_card_count +#, fuzzy +msgid "# Kanban Cards" +msgstr "Tarjetas Kanban" + #. module: stock_request_kanban #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__message_needaction #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__message_needaction @@ -31,15 +38,19 @@ msgstr "Activo" #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__activity_ids #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__activity_ids #, fuzzy -#| msgid "Active" msgid "Activities" msgstr "Activo" +#. module: stock_request_kanban +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__activity_exception_decoration +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + #. module: stock_request_kanban #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__activity_state #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__activity_state #, fuzzy -#| msgid "Status State" msgid "Activity State" msgstr "Estado del Status" @@ -53,7 +64,7 @@ msgid "Add Kanban" msgstr "Añadir Kanban" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_kanban.py:23 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_kanban.py:0 #, python-format msgid "Added kanban %s for product %s" msgstr "Se ha añadido el kanban %s para el product %s" @@ -75,7 +86,7 @@ msgid "Attachment Count" msgstr "" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_kanban_abstract.py:29 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_kanban_abstract.py:0 #, python-format msgid "" "Barcode %s does not correspond to any Kanban. Try with another barcode or " @@ -85,19 +96,19 @@ msgstr "" "barras o haz click en Cerrar para acabar de escanear." #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_inventory_kanban.py:34 +#: code:addons/stock_request_kanban/wizard/wizard_stock_inventory_kanban.py:0 #, fuzzy, python-format msgid "Barcode %s is already scanned" msgstr "El código %s ya está en la petición" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_inventory_kanban.py:28 +#: code:addons/stock_request_kanban/wizard/wizard_stock_inventory_kanban.py:0 #, fuzzy, python-format msgid "Barcode %s is not in the inventory" msgstr "El código %s ya está en la petición" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:23 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Barcode %s is on the order" msgstr "El código %s ya está en la petición" @@ -112,7 +123,7 @@ msgid "Barcode Scanned" msgstr "El código %s ya está en la petición" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/models/stock_request_kanban.py:39 +#: code:addons/stock_request_kanban/models/stock_request_kanban.py:0 #, python-format msgid "CRC is not valid" msgstr "El CRC no es válido" @@ -123,7 +134,7 @@ msgid "Cancel" msgstr "" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,state:0 +#: model:ir.model.fields.selection,name:stock_request_kanban.selection__stock_inventory_kanban__state__cancelled msgid "Cancelled" msgstr "" @@ -146,7 +157,7 @@ msgid "Close" msgstr "Cerrar" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,state:0 +#: model:ir.model.fields.selection,name:stock_request_kanban.selection__stock_inventory_kanban__state__closed #, fuzzy msgid "Closed" msgstr "Cerrar" @@ -157,7 +168,7 @@ msgid "Company" msgstr "" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:32 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Company must be the same" msgstr "La Compañía debe ser la misma" @@ -191,7 +202,7 @@ msgid "Display Name" msgstr "Nombre mostrado" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,state:0 +#: model:ir.model.fields.selection,name:stock_request_kanban.selection__stock_inventory_kanban__state__draft msgid "Draft" msgstr "" @@ -201,7 +212,7 @@ msgid "Finish" msgstr "" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,state:0 +#: model:ir.model.fields.selection,name:stock_request_kanban.selection__stock_inventory_kanban__state__finished msgid "Finished" msgstr "" @@ -239,25 +250,35 @@ msgid "ID" msgstr "ID" #. module: stock_request_kanban -#: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__message_unread -#: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__message_unread -msgid "If checked new messages require your attention." +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__activity_exception_icon +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: stock_request_kanban +#: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__activity_exception_icon +#: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__activity_exception_icon +msgid "Icon to indicate an exception activity." msgstr "" #. module: stock_request_kanban #: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__message_needaction +#: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__message_unread #: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__message_needaction +#: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__message_unread msgid "If checked, new messages require your attention." msgstr "" #. module: stock_request_kanban #: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__message_has_error +#: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__message_has_sms_error #: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__message_has_error +#: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__message_has_sms_error msgid "If checked, some messages have a delivery error." msgstr "" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,state:0 +#: model:ir.model.fields.selection,name:stock_request_kanban.selection__stock_inventory_kanban__state__in_progress msgid "In progress" msgstr "" @@ -294,10 +315,16 @@ msgstr "" msgid "Kanban" msgstr "Kanban" +#. module: stock_request_kanban +#: model_terms:ir.ui.view,arch_db:stock_request_kanban.product_product_form_view_kanban_card_button +#: model_terms:ir.ui.view,arch_db:stock_request_kanban.product_template_form_view_bom_button +#, fuzzy +msgid "Kanban Cards" +msgstr "Tarjetas Kanban" + #. module: stock_request_kanban #: model_terms:ir.ui.view,arch_db:stock_request_kanban.stock_request_kanban_kanban_view #, fuzzy -#| msgid "Kanban cards" msgid "Kanban Image" msgstr "Tarjetas Kanban" @@ -335,7 +362,7 @@ msgid "Last Updated on" msgstr "Actualizado por última vez el" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:27 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Lines only can be added on orders with draft state" msgstr "Sólo se pueden añadir líneas en ordenes en estado borrador" @@ -348,7 +375,7 @@ msgid "Location" msgstr "Localización" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:40 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Location must be the same" msgstr "La localización debe coincidir" @@ -428,7 +455,7 @@ msgstr "" #. module: stock_request_kanban #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__message_has_error_counter #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__message_has_error_counter -msgid "Number of error" +msgid "Number of errors" msgstr "" #. module: stock_request_kanban @@ -454,19 +481,6 @@ msgstr "" msgid "Order" msgstr "Pedido" -#. module: stock_request_kanban -#: selection:stock.inventory.kanban,activity_state:0 -#: selection:stock.request.kanban,activity_state:0 -msgid "Overdue" -msgstr "" - -#. module: stock_request_kanban -#: selection:stock.inventory.kanban,activity_state:0 -#: selection:stock.request.kanban,activity_state:0 -#, fuzzy -msgid "Planned" -msgstr "Escanear" - #. module: stock_request_kanban #: model:ir.actions.report,name:stock_request_kanban.action_report_kanban msgid "Print kanban" @@ -480,21 +494,27 @@ msgstr "" #. module: stock_request_kanban #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__procurement_group_id #, fuzzy -#| msgid "Procurement group must be the same" msgid "Procurement Group" msgstr "El grupo de reestablecimiento debe coincidir" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:38 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Procurement group must be the same" msgstr "El grupo de reestablecimiento debe coincidir" #. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_product_product #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__product_id msgid "Product" msgstr "" +#. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_product_template +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__product_template_id +msgid "Product Template" +msgstr "" + #. module: stock_request_kanban #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__product_uom_id msgid "Product Unit of Measure" @@ -546,12 +566,25 @@ msgstr "" msgid "Routes" msgstr "" +#. module: stock_request_kanban +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__message_has_sms_error +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__message_has_sms_error +msgid "SMS Delivery error" +msgstr "" + #. module: stock_request_kanban #: model_terms:ir.ui.view,arch_db:stock_request_kanban.stock_request_order_form #: model_terms:ir.ui.view,arch_db:stock_request_kanban.view_stock_inventory_kanban_form msgid "Scan" msgstr "Escanear" +#. module: stock_request_kanban +#. openerp-web +#: code:addons/stock_request_kanban/static/src/xml/stock_request_kanban_scan.xml:0 +#, fuzzy, python-format +msgid "Scan Kanban" +msgstr "Añadir Kanban" + #. module: stock_request_kanban #: model_terms:ir.ui.view,arch_db:stock_request_kanban.view_stock_inventory_kanban_form #, fuzzy @@ -613,6 +646,12 @@ msgstr "" msgid "Stock Inventories" msgstr "Solicitud de existencias" +#. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_wizard_stock_inventory_kanban +#, fuzzy +msgid "Stock Inventory Kanban Wizard" +msgstr "Kanbans de Solicitud de Existencias" + #. module: stock_request_kanban #: model:ir.actions.act_window,name:stock_request_kanban.stock_inventory_kanban_action #, fuzzy @@ -632,11 +671,29 @@ msgstr "Solicitud de existencias" msgid "Stock Request Kanban" msgstr "Kanban de Solicitud de Existencias" +#. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_kanban_abstract +#, fuzzy +msgid "Stock Request Kanban Abstract Wizard" +msgstr "Kanbans de Solicitud de Existencias" + +#. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_kanban +#, fuzzy +msgid "Stock Request Kanban Wizard" +msgstr "Kanban de Solicitud de Existencias" + #. module: stock_request_kanban #: model:ir.actions.act_window,name:stock_request_kanban.stock_request_kanban_action msgid "Stock Request Kanbans" msgstr "Kanbans de Solicitud de Existencias" +#. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_order_kanban +#, fuzzy +msgid "Stock Request Order Kanban Wizard" +msgstr "Kanban de Solicitud de Existencias" + #. module: stock_request_kanban #: model_terms:ir.ui.view,arch_db:stock_request_kanban.view_stock_request_kanban_form #: model_terms:ir.ui.view,arch_db:stock_request_kanban.view_stock_request_kanban_tree @@ -649,9 +706,9 @@ msgid "Stock Requests Kanban" msgstr "Kanban de Solicitudes de Existencias" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,activity_state:0 -#: selection:stock.request.kanban,activity_state:0 -msgid "Today" +#: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__activity_exception_decoration +#: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__activity_exception_decoration +msgid "Type of the exception activity on record." msgstr "" #. module: stock_request_kanban @@ -682,7 +739,7 @@ msgid "Warehouse" msgstr "Almacén" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:42 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Warehouse must be the same" msgstr "El almacén debe coincidir" @@ -699,23 +756,19 @@ msgstr "" msgid "Website communication history" msgstr "" -#. module: stock_request_kanban -#: model:ir.model,name:stock_request_kanban.model_wizard_stock_inventory_kanban #, fuzzy -msgid "wizard.stock.inventory.kanban" -msgstr "wizard.stock.request.kanban" +#~ msgid "Planned" +#~ msgstr "Escanear" -#. module: stock_request_kanban -#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_kanban -msgid "wizard.stock.request.kanban" -msgstr "wizard.stock.request.kanban" +#, fuzzy +#~ msgid "wizard.stock.inventory.kanban" +#~ msgstr "wizard.stock.request.kanban" -#. module: stock_request_kanban -#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_kanban_abstract -msgid "wizard.stock.request.kanban.abstract" -msgstr "wizard.stock.request.kanban.abstract" +#~ msgid "wizard.stock.request.kanban" +#~ msgstr "wizard.stock.request.kanban" -#. module: stock_request_kanban -#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_order_kanban -msgid "wizard.stock.request.order.kanban" -msgstr "wizard.stock.request.order.kanban" +#~ msgid "wizard.stock.request.kanban.abstract" +#~ msgstr "wizard.stock.request.kanban.abstract" + +#~ msgid "wizard.stock.request.order.kanban" +#~ msgstr "wizard.stock.request.order.kanban" diff --git a/stock_request_kanban/i18n/stock_request_kanban.pot b/stock_request_kanban/i18n/stock_request_kanban.pot index 4c716bffa..afe35b89f 100644 --- a/stock_request_kanban/i18n/stock_request_kanban.pot +++ b/stock_request_kanban/i18n/stock_request_kanban.pot @@ -1,18 +1,24 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * stock_request_kanban +# * stock_request_kanban # 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: stock_request_kanban +#: model:ir.model.fields,field_description:stock_request_kanban.field_product_product__kanban_card_count +#: model:ir.model.fields,field_description:stock_request_kanban.field_product_template__kanban_card_count +msgid "# Kanban Cards" +msgstr "" + #. module: stock_request_kanban #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__message_needaction #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__message_needaction @@ -30,6 +36,12 @@ msgstr "" msgid "Activities" msgstr "" +#. module: stock_request_kanban +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__activity_exception_decoration +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + #. module: stock_request_kanban #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__activity_state #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__activity_state @@ -46,7 +58,7 @@ msgid "Add Kanban" msgstr "" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_kanban.py:23 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_kanban.py:0 #, python-format msgid "Added kanban %s for product %s" msgstr "" @@ -68,25 +80,27 @@ msgid "Attachment Count" msgstr "" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_kanban_abstract.py:29 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_kanban_abstract.py:0 #, python-format -msgid "Barcode %s does not correspond to any Kanban. Try with another barcode or press Close to finish scanning." +msgid "" +"Barcode %s does not correspond to any Kanban. Try with another barcode or " +"press Close to finish scanning." msgstr "" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_inventory_kanban.py:34 +#: code:addons/stock_request_kanban/wizard/wizard_stock_inventory_kanban.py:0 #, python-format msgid "Barcode %s is already scanned" msgstr "" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_inventory_kanban.py:28 +#: code:addons/stock_request_kanban/wizard/wizard_stock_inventory_kanban.py:0 #, python-format msgid "Barcode %s is not in the inventory" msgstr "" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:23 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Barcode %s is on the order" msgstr "" @@ -100,7 +114,7 @@ msgid "Barcode Scanned" msgstr "" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/models/stock_request_kanban.py:39 +#: code:addons/stock_request_kanban/models/stock_request_kanban.py:0 #, python-format msgid "CRC is not valid" msgstr "" @@ -111,7 +125,7 @@ msgid "Cancel" msgstr "" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,state:0 +#: model:ir.model.fields.selection,name:stock_request_kanban.selection__stock_inventory_kanban__state__cancelled msgid "Cancelled" msgstr "" @@ -133,7 +147,7 @@ msgid "Close" msgstr "" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,state:0 +#: model:ir.model.fields.selection,name:stock_request_kanban.selection__stock_inventory_kanban__state__closed msgid "Closed" msgstr "" @@ -143,7 +157,7 @@ msgid "Company" msgstr "" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:32 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Company must be the same" msgstr "" @@ -177,7 +191,7 @@ msgid "Display Name" msgstr "" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,state:0 +#: model:ir.model.fields.selection,name:stock_request_kanban.selection__stock_inventory_kanban__state__draft msgid "Draft" msgstr "" @@ -187,7 +201,7 @@ msgid "Finish" msgstr "" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,state:0 +#: model:ir.model.fields.selection,name:stock_request_kanban.selection__stock_inventory_kanban__state__finished msgid "Finished" msgstr "" @@ -225,25 +239,35 @@ msgid "ID" msgstr "" #. module: stock_request_kanban -#: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__message_unread -#: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__message_unread -msgid "If checked new messages require your attention." +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__activity_exception_icon +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: stock_request_kanban +#: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__activity_exception_icon +#: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__activity_exception_icon +msgid "Icon to indicate an exception activity." msgstr "" #. module: stock_request_kanban #: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__message_needaction +#: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__message_unread #: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__message_needaction +#: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__message_unread msgid "If checked, new messages require your attention." msgstr "" #. module: stock_request_kanban #: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__message_has_error +#: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__message_has_sms_error #: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__message_has_error +#: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__message_has_sms_error msgid "If checked, some messages have a delivery error." msgstr "" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,state:0 +#: model:ir.model.fields.selection,name:stock_request_kanban.selection__stock_inventory_kanban__state__in_progress msgid "In progress" msgstr "" @@ -280,6 +304,12 @@ msgstr "" msgid "Kanban" msgstr "" +#. module: stock_request_kanban +#: model_terms:ir.ui.view,arch_db:stock_request_kanban.product_product_form_view_kanban_card_button +#: model_terms:ir.ui.view,arch_db:stock_request_kanban.product_template_form_view_bom_button +msgid "Kanban Cards" +msgstr "" + #. module: stock_request_kanban #: model_terms:ir.ui.view,arch_db:stock_request_kanban.stock_request_kanban_kanban_view msgid "Kanban Image" @@ -319,7 +349,7 @@ msgid "Last Updated on" msgstr "" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:27 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Lines only can be added on orders with draft state" msgstr "" @@ -332,7 +362,7 @@ msgid "Location" msgstr "" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:40 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Location must be the same" msgstr "" @@ -372,7 +402,10 @@ msgstr "" #. module: stock_request_kanban #: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__procurement_group_id -msgid "Moves created through this stock request will be put in this procurement group. If none is given, the moves generated by procurement rules will be grouped into one big picking." +msgid "" +"Moves created through this stock request will be put in this procurement " +"group. If none is given, the moves generated by procurement rules will be " +"grouped into one big picking." msgstr "" #. module: stock_request_kanban @@ -408,7 +441,7 @@ msgstr "" #. module: stock_request_kanban #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__message_has_error_counter #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__message_has_error_counter -msgid "Number of error" +msgid "Number of errors" msgstr "" #. module: stock_request_kanban @@ -434,18 +467,6 @@ msgstr "" msgid "Order" msgstr "" -#. module: stock_request_kanban -#: selection:stock.inventory.kanban,activity_state:0 -#: selection:stock.request.kanban,activity_state:0 -msgid "Overdue" -msgstr "" - -#. module: stock_request_kanban -#: selection:stock.inventory.kanban,activity_state:0 -#: selection:stock.request.kanban,activity_state:0 -msgid "Planned" -msgstr "" - #. module: stock_request_kanban #: model:ir.actions.report,name:stock_request_kanban.action_report_kanban msgid "Print kanban" @@ -462,16 +483,23 @@ msgid "Procurement Group" msgstr "" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:38 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Procurement group must be the same" msgstr "" #. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_product_product #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__product_id msgid "Product" msgstr "" +#. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_product_template +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__product_template_id +msgid "Product Template" +msgstr "" + #. module: stock_request_kanban #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__product_uom_id msgid "Product Unit of Measure" @@ -523,12 +551,25 @@ msgstr "" msgid "Routes" msgstr "" +#. module: stock_request_kanban +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__message_has_sms_error +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__message_has_sms_error +msgid "SMS Delivery error" +msgstr "" + #. module: stock_request_kanban #: model_terms:ir.ui.view,arch_db:stock_request_kanban.stock_request_order_form #: model_terms:ir.ui.view,arch_db:stock_request_kanban.view_stock_inventory_kanban_form msgid "Scan" msgstr "" +#. module: stock_request_kanban +#. openerp-web +#: code:addons/stock_request_kanban/static/src/xml/stock_request_kanban_scan.xml:0 +#, python-format +msgid "Scan Kanban" +msgstr "" + #. module: stock_request_kanban #: model_terms:ir.ui.view,arch_db:stock_request_kanban.view_stock_inventory_kanban_form msgid "Scanned" @@ -573,7 +614,8 @@ msgstr "" #. module: stock_request_kanban #: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__activity_state #: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__activity_state -msgid "Status based on activities\n" +msgid "" +"Status based on activities\n" "Overdue: Due date is already passed\n" "Today: Activity date is today\n" "Planned: Future activities." @@ -585,6 +627,11 @@ msgstr "" msgid "Stock Inventories" msgstr "" +#. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_wizard_stock_inventory_kanban +msgid "Stock Inventory Kanban Wizard" +msgstr "" + #. module: stock_request_kanban #: model:ir.actions.act_window,name:stock_request_kanban.stock_inventory_kanban_action msgid "Stock Inventory Kanbans" @@ -603,11 +650,26 @@ msgstr "" msgid "Stock Request Kanban" msgstr "" +#. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_kanban_abstract +msgid "Stock Request Kanban Abstract Wizard" +msgstr "" + +#. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_kanban +msgid "Stock Request Kanban Wizard" +msgstr "" + #. module: stock_request_kanban #: model:ir.actions.act_window,name:stock_request_kanban.stock_request_kanban_action msgid "Stock Request Kanbans" msgstr "" +#. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_order_kanban +msgid "Stock Request Order Kanban Wizard" +msgstr "" + #. module: stock_request_kanban #: model_terms:ir.ui.view,arch_db:stock_request_kanban.view_stock_request_kanban_form #: model_terms:ir.ui.view,arch_db:stock_request_kanban.view_stock_request_kanban_tree @@ -620,9 +682,9 @@ msgid "Stock Requests Kanban" msgstr "" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,activity_state:0 -#: selection:stock.request.kanban,activity_state:0 -msgid "Today" +#: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__activity_exception_decoration +#: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__activity_exception_decoration +msgid "Type of the exception activity on record." msgstr "" #. module: stock_request_kanban @@ -653,7 +715,7 @@ msgid "Warehouse" msgstr "" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:42 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Warehouse must be the same" msgstr "" @@ -669,24 +731,3 @@ msgstr "" #: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__website_message_ids msgid "Website communication history" msgstr "" - -#. module: stock_request_kanban -#: model:ir.model,name:stock_request_kanban.model_wizard_stock_inventory_kanban -msgid "wizard.stock.inventory.kanban" -msgstr "" - -#. module: stock_request_kanban -#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_kanban -msgid "wizard.stock.request.kanban" -msgstr "" - -#. module: stock_request_kanban -#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_kanban_abstract -msgid "wizard.stock.request.kanban.abstract" -msgstr "" - -#. module: stock_request_kanban -#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_order_kanban -msgid "wizard.stock.request.order.kanban" -msgstr "" - diff --git a/stock_request_kanban/i18n/zh_CN.po b/stock_request_kanban/i18n/zh_CN.po index b31fdf9a6..83e5f908c 100644 --- a/stock_request_kanban/i18n/zh_CN.po +++ b/stock_request_kanban/i18n/zh_CN.po @@ -1,6 +1,6 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * stock_request_kanban +# * stock_request_kanban # msgid "" msgstr "" @@ -16,6 +16,13 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 3.8\n" +#. module: stock_request_kanban +#: model:ir.model.fields,field_description:stock_request_kanban.field_product_product__kanban_card_count +#: model:ir.model.fields,field_description:stock_request_kanban.field_product_template__kanban_card_count +#, fuzzy +msgid "# Kanban Cards" +msgstr "看板卡" + #. module: stock_request_kanban #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__message_needaction #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__message_needaction @@ -33,6 +40,12 @@ msgstr "有效" msgid "Activities" msgstr "活动" +#. module: stock_request_kanban +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__activity_exception_decoration +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + #. module: stock_request_kanban #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__activity_state #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__activity_state @@ -49,7 +62,7 @@ msgid "Add Kanban" msgstr "添加看板" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_kanban.py:23 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_kanban.py:0 #, python-format msgid "Added kanban %s for product %s" msgstr "为产品%s添加了看板%s" @@ -71,25 +84,27 @@ msgid "Attachment Count" msgstr "附件数量" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_kanban_abstract.py:29 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_kanban_abstract.py:0 #, python-format -msgid "Barcode %s does not correspond to any Kanban. Try with another barcode or press Close to finish scanning." +msgid "" +"Barcode %s does not correspond to any Kanban. Try with another barcode or " +"press Close to finish scanning." msgstr "条形码%s与任何看板都不对应。尝试使用其他条形码或按“关闭”完成扫描。" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_inventory_kanban.py:34 +#: code:addons/stock_request_kanban/wizard/wizard_stock_inventory_kanban.py:0 #, python-format msgid "Barcode %s is already scanned" msgstr "条码%s已被扫描" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_inventory_kanban.py:28 +#: code:addons/stock_request_kanban/wizard/wizard_stock_inventory_kanban.py:0 #, python-format msgid "Barcode %s is not in the inventory" msgstr "条码%s不在库存中" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:23 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Barcode %s is on the order" msgstr "条码%s在订单上" @@ -103,7 +118,7 @@ msgid "Barcode Scanned" msgstr "条码扫描" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/models/stock_request_kanban.py:39 +#: code:addons/stock_request_kanban/models/stock_request_kanban.py:0 #, python-format msgid "CRC is not valid" msgstr "CRC无效" @@ -114,7 +129,7 @@ msgid "Cancel" msgstr "取消" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,state:0 +#: model:ir.model.fields.selection,name:stock_request_kanban.selection__stock_inventory_kanban__state__cancelled msgid "Cancelled" msgstr "已取消" @@ -136,7 +151,7 @@ msgid "Close" msgstr "关闭" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,state:0 +#: model:ir.model.fields.selection,name:stock_request_kanban.selection__stock_inventory_kanban__state__closed msgid "Closed" msgstr "已关闭" @@ -146,7 +161,7 @@ msgid "Company" msgstr "公司" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:32 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Company must be the same" msgstr "公司必须相同" @@ -180,7 +195,7 @@ msgid "Display Name" msgstr "显示名称" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,state:0 +#: model:ir.model.fields.selection,name:stock_request_kanban.selection__stock_inventory_kanban__state__draft msgid "Draft" msgstr "草稿" @@ -190,7 +205,7 @@ msgid "Finish" msgstr "完成" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,state:0 +#: model:ir.model.fields.selection,name:stock_request_kanban.selection__stock_inventory_kanban__state__finished msgid "Finished" msgstr "已完成" @@ -228,25 +243,35 @@ msgid "ID" msgstr "ID" #. module: stock_request_kanban -#: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__message_unread -#: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__message_unread -msgid "If checked new messages require your attention." -msgstr ".如果勾选此项,将会收到新消息提醒。" +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__activity_exception_icon +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: stock_request_kanban +#: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__activity_exception_icon +#: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" #. module: stock_request_kanban #: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__message_needaction +#: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__message_unread #: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__message_needaction +#: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__message_unread msgid "If checked, new messages require your attention." msgstr "如果勾选此项,将会收到新消息提醒。" #. module: stock_request_kanban #: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__message_has_error +#: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__message_has_sms_error #: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__message_has_error +#: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__message_has_sms_error msgid "If checked, some messages have a delivery error." msgstr "如果勾选此项, 某些信息将会产生传递错误。" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,state:0 +#: model:ir.model.fields.selection,name:stock_request_kanban.selection__stock_inventory_kanban__state__in_progress msgid "In progress" msgstr "进行中" @@ -283,6 +308,13 @@ msgstr "是关注者" msgid "Kanban" msgstr "看板" +#. module: stock_request_kanban +#: model_terms:ir.ui.view,arch_db:stock_request_kanban.product_product_form_view_kanban_card_button +#: model_terms:ir.ui.view,arch_db:stock_request_kanban.product_template_form_view_bom_button +#, fuzzy +msgid "Kanban Cards" +msgstr "看板卡" + #. module: stock_request_kanban #: model_terms:ir.ui.view,arch_db:stock_request_kanban.stock_request_kanban_kanban_view msgid "Kanban Image" @@ -322,7 +354,7 @@ msgid "Last Updated on" msgstr "最后更新时间" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:27 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Lines only can be added on orders with draft state" msgstr "只有处于草稿状态的订单才能添加行" @@ -335,7 +367,7 @@ msgid "Location" msgstr "位置" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:40 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Location must be the same" msgstr "位置必须相同" @@ -375,8 +407,13 @@ msgstr "看板缺失" #. module: stock_request_kanban #: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__procurement_group_id -msgid "Moves created through this stock request will be put in this procurement group. If none is given, the moves generated by procurement rules will be grouped into one big picking." -msgstr "通过此库存请求创建的移动将放入此采购组。如果没有给出,则由采购规则生成的移动将被分组为一个大拣货。" +msgid "" +"Moves created through this stock request will be put in this procurement " +"group. If none is given, the moves generated by procurement rules will be " +"grouped into one big picking." +msgstr "" +"通过此库存请求创建的移动将放入此采购组。如果没有给出,则由采购规则生成的移动" +"将被分组为一个大拣货。" #. module: stock_request_kanban #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__name @@ -411,7 +448,8 @@ msgstr "操作次数" #. module: stock_request_kanban #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__message_has_error_counter #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__message_has_error_counter -msgid "Number of error" +#, fuzzy +msgid "Number of errors" msgstr "错误数" #. module: stock_request_kanban @@ -437,18 +475,6 @@ msgstr "未读消息的数量" msgid "Order" msgstr "订单" -#. module: stock_request_kanban -#: selection:stock.inventory.kanban,activity_state:0 -#: selection:stock.request.kanban,activity_state:0 -msgid "Overdue" -msgstr "逾期" - -#. module: stock_request_kanban -#: selection:stock.inventory.kanban,activity_state:0 -#: selection:stock.request.kanban,activity_state:0 -msgid "Planned" -msgstr "计划" - #. module: stock_request_kanban #: model:ir.actions.report,name:stock_request_kanban.action_report_kanban msgid "Print kanban" @@ -465,16 +491,24 @@ msgid "Procurement Group" msgstr "补货组" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:38 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Procurement group must be the same" msgstr "补货组必须相同" #. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_product_product #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__product_id msgid "Product" msgstr "产品" +#. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_product_template +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__product_template_id +#, fuzzy +msgid "Product Template" +msgstr "产品" + #. module: stock_request_kanban #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__product_uom_id msgid "Product Unit of Measure" @@ -526,12 +560,26 @@ msgstr "路线" msgid "Routes" msgstr "路线" +#. module: stock_request_kanban +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__message_has_sms_error +#: model:ir.model.fields,field_description:stock_request_kanban.field_stock_request_kanban__message_has_sms_error +#, fuzzy +msgid "SMS Delivery error" +msgstr "消息递送错误" + #. module: stock_request_kanban #: model_terms:ir.ui.view,arch_db:stock_request_kanban.stock_request_order_form #: model_terms:ir.ui.view,arch_db:stock_request_kanban.view_stock_inventory_kanban_form msgid "Scan" msgstr "扫描" +#. module: stock_request_kanban +#. openerp-web +#: code:addons/stock_request_kanban/static/src/xml/stock_request_kanban_scan.xml:0 +#, fuzzy, python-format +msgid "Scan Kanban" +msgstr "已扫描看板" + #. module: stock_request_kanban #: model_terms:ir.ui.view,arch_db:stock_request_kanban.view_stock_inventory_kanban_form msgid "Scanned" @@ -576,7 +624,8 @@ msgstr "状态" #. module: stock_request_kanban #: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__activity_state #: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__activity_state -msgid "Status based on activities\n" +msgid "" +"Status based on activities\n" "Overdue: Due date is already passed\n" "Today: Activity date is today\n" "Planned: Future activities." @@ -592,6 +641,12 @@ msgstr "" msgid "Stock Inventories" msgstr "库存存货" +#. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_wizard_stock_inventory_kanban +#, fuzzy +msgid "Stock Inventory Kanban Wizard" +msgstr "库存存货看板" + #. module: stock_request_kanban #: model:ir.actions.act_window,name:stock_request_kanban.stock_inventory_kanban_action msgid "Stock Inventory Kanbans" @@ -610,11 +665,29 @@ msgstr "库存请求" msgid "Stock Request Kanban" msgstr "库存请求看板" +#. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_kanban_abstract +#, fuzzy +msgid "Stock Request Kanban Abstract Wizard" +msgstr "库存请求看板" + +#. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_kanban +#, fuzzy +msgid "Stock Request Kanban Wizard" +msgstr "库存请求看板" + #. module: stock_request_kanban #: model:ir.actions.act_window,name:stock_request_kanban.stock_request_kanban_action msgid "Stock Request Kanbans" msgstr "库存请求看板" +#. module: stock_request_kanban +#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_order_kanban +#, fuzzy +msgid "Stock Request Order Kanban Wizard" +msgstr "库存请求看板" + #. module: stock_request_kanban #: model_terms:ir.ui.view,arch_db:stock_request_kanban.view_stock_request_kanban_form #: model_terms:ir.ui.view,arch_db:stock_request_kanban.view_stock_request_kanban_tree @@ -627,10 +700,10 @@ msgid "Stock Requests Kanban" msgstr "库存请求看板" #. module: stock_request_kanban -#: selection:stock.inventory.kanban,activity_state:0 -#: selection:stock.request.kanban,activity_state:0 -msgid "Today" -msgstr "今天" +#: model:ir.model.fields,help:stock_request_kanban.field_stock_inventory_kanban__activity_exception_decoration +#: model:ir.model.fields,help:stock_request_kanban.field_stock_request_kanban__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" #. module: stock_request_kanban #: model:ir.model.fields,field_description:stock_request_kanban.field_stock_inventory_kanban__message_unread @@ -660,7 +733,7 @@ msgid "Warehouse" msgstr "仓库" #. module: stock_request_kanban -#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:42 +#: code:addons/stock_request_kanban/wizard/wizard_stock_request_order_kanban.py:0 #, python-format msgid "Warehouse must be the same" msgstr "仓库必须相同" @@ -677,22 +750,26 @@ msgstr "网站消息" msgid "Website communication history" msgstr "网站沟通记录" -#. module: stock_request_kanban -#: model:ir.model,name:stock_request_kanban.model_wizard_stock_inventory_kanban -msgid "wizard.stock.inventory.kanban" -msgstr "wizard.stock.inventory.kanban" +#~ msgid "If checked new messages require your attention." +#~ msgstr ".如果勾选此项,将会收到新消息提醒。" -#. module: stock_request_kanban -#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_kanban -msgid "wizard.stock.request.kanban" -msgstr "wizard.stock.request.kanban" +#~ msgid "Overdue" +#~ msgstr "逾期" -#. module: stock_request_kanban -#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_kanban_abstract -msgid "wizard.stock.request.kanban.abstract" -msgstr "wizard.stock.request.kanban.abstract" +#~ msgid "Planned" +#~ msgstr "计划" -#. module: stock_request_kanban -#: model:ir.model,name:stock_request_kanban.model_wizard_stock_request_order_kanban -msgid "wizard.stock.request.order.kanban" -msgstr "wizard.stock.request.order.kanban" +#~ msgid "Today" +#~ msgstr "今天" + +#~ msgid "wizard.stock.inventory.kanban" +#~ msgstr "wizard.stock.inventory.kanban" + +#~ msgid "wizard.stock.request.kanban" +#~ msgstr "wizard.stock.request.kanban" + +#~ msgid "wizard.stock.request.kanban.abstract" +#~ msgstr "wizard.stock.request.kanban.abstract" + +#~ msgid "wizard.stock.request.order.kanban" +#~ msgstr "wizard.stock.request.order.kanban" diff --git a/stock_request_kanban/models/__init__.py b/stock_request_kanban/models/__init__.py index 9fe62b7f5..86624932d 100644 --- a/stock_request_kanban/models/__init__.py +++ b/stock_request_kanban/models/__init__.py @@ -4,3 +4,4 @@ from . import stock_request from . import stock_request_kanban from . import stock_inventory_kanban +from . import product diff --git a/stock_request_kanban/models/product.py b/stock_request_kanban/models/product.py new file mode 100644 index 000000000..b757b26af --- /dev/null +++ b/stock_request_kanban/models/product.py @@ -0,0 +1,53 @@ +from odoo import fields, models + + +class ProductTemplate(models.Model): + _inherit = "product.template" + + kanban_card_count = fields.Integer( + "# Kanban Cards", compute="_compute_kanban_card_count", compute_sudo=False + ) + + def _compute_kanban_card_count(self): + for product in self: + count = 0 + for variant in product.product_variant_ids: + count += self.env["stock.request.kanban"].search_count( + [("product_id", "=", variant.id)] + ) + product.kanban_card_count = count + + def action_view_kanban_cards(self): + self.ensure_one() + action = self.env.ref( + "stock_request_kanban.stock_request_kanban_action" + ).read()[0] + action["context"] = {"default_product_id": self.product_variant_id.id} + action["domain"] = [ + ("active", "=", True), + ("product_template_id", "=", self.id), + ] + return action + + +class ProductProduct(models.Model): + _inherit = "product.product" + + kanban_card_count = fields.Integer( + "# Kanban Cards", compute="_compute_kanban_card_count", compute_sudo=False + ) + + def _compute_kanban_card_count(self): + for product in self: + product.kanban_card_count += self.env["stock.request.kanban"].search_count( + [("product_id", "=", product.id)] + ) + + def action_view_kanban_cards(self): + self.ensure_one() + action = self.env.ref( + "stock_request_kanban.stock_request_kanban_action" + ).read()[0] + action["context"] = {"default_product_id": self.id} + action["domain"] = [("active", "=", True), ("product_id", "=", self.id)] + return action diff --git a/stock_request_kanban/models/stock_request_kanban.py b/stock_request_kanban/models/stock_request_kanban.py index 754ca735b..101f93ced 100644 --- a/stock_request_kanban/models/stock_request_kanban.py +++ b/stock_request_kanban/models/stock_request_kanban.py @@ -13,6 +13,7 @@ class StockRequestKanban(models.Model): _inherit = "stock.request.abstract" active = fields.Boolean(default=True) + product_template_id = fields.Many2one(related="product_id.product_tmpl_id") @api.model def create(self, vals): @@ -37,11 +38,17 @@ class StockRequestKanban(models.Model): == "0" ): return barcode - bcc = getCodes()[self.get_barcode_format()](value=barcode[:-1]) - bcc.validate() - bcc.encode() - if bcc.encoded[1:-1] != barcode: - raise ValidationError(_("CRC is not valid")) + if ( + self.env["ir.config_parameter"] + .sudo() + .get_param("stock_request_kanban.ignore_crc", default="0") + == "0" + ): + bcc = getCodes()[self.get_barcode_format()](value=barcode[:-1]) + bcc.validate() + bcc.encode() + if bcc.encoded[1:-1] != barcode: + raise ValidationError(_("CRC is not valid")) return barcode[:-1] @api.model diff --git a/stock_request_kanban/readme/CONFIGURE.rst b/stock_request_kanban/readme/CONFIGURE.rst index e6216f228..a26fd30c3 100644 --- a/stock_request_kanban/readme/CONFIGURE.rst +++ b/stock_request_kanban/readme/CONFIGURE.rst @@ -1,8 +1,12 @@ -If you don't need to check the CRC of the kanban card, you should: +If the barcode does not contain a CRC check digit on the kanban card, you should: * Access on Development mode * Access 'Settings / Technical / Parameters / System Parameters' -* Create a parameter with name 'stock_request_kanban.crc' and set it value to 0 +* Create a parameter with name 'stock_request_kanban.crc' and set it to value to 0 + +If the barcode contains a CRC check digit and you want to ignore it: + +* Create a paramenter with name 'stock_request_kanban.ignore_crc' and set it to value to 1 If you want to change the format of the QR, you should: diff --git a/stock_request_kanban/static/description/icon.png b/stock_request_kanban/static/description/icon.png index c31ecfd9f58e3ab7e0ede0f1d56185d51074099c..d4f6a65aca34c7c1a714b1f88277d7295a992a72 100644 GIT binary patch literal 15218 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 diff --git a/stock_request_kanban/static/description/index.html b/stock_request_kanban/static/description/index.html index 4944b401d..023382aca 100644 --- a/stock_request_kanban/static/description/index.html +++ b/stock_request_kanban/static/description/index.html @@ -367,7 +367,7 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/stock-logistics-warehouse Translate me on Weblate Try me on Runbot

+

Beta License: LGPL-3 OCA/stock-logistics-warehouse Translate me on Weblate Try me on Runbot

On most companies there is products that must be purchased often but cannot be stored as a usual product because no consumption moves are made. Usually, they are stored as consumables or putaway rules are defined. @@ -396,11 +396,15 @@ products.

Configuration

-

If you don’t need to check the CRC of the kanban card, you should:

+

If the barcode does not contain a CRC check digit on the kanban card, you should:

  • Access on Development mode
  • Access ‘Settings / Technical / Parameters / System Parameters’
  • -
  • Create a parameter with name ‘stock_request_kanban.crc’ and set it value to 0
  • +
  • Create a parameter with name ‘stock_request_kanban.crc’ and set it to value to 0
  • +
+

If the barcode contains a CRC check digit and you want to ignore it:

+
    +
  • Create a paramenter with name ‘stock_request_kanban.ignore_crc’ and set it to value to 1

If you want to change the format of the QR, you should:

    @@ -448,7 +452,7 @@ for kanbans later.

    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.

@@ -457,7 +461,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome

Authors

  • Creu Blanca
  • -
  • Eficent
  • +
  • ForgeFlow
@@ -474,7 +478,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome

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/stock-logistics-warehouse project on GitHub.

+

This module is part of the OCA/stock-logistics-warehouse project on GitHub.

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

diff --git a/stock_request_kanban/views/product_views.xml b/stock_request_kanban/views/product_views.xml index fad8699d5..3956621a4 100644 --- a/stock_request_kanban/views/product_views.xml +++ b/stock_request_kanban/views/product_views.xml @@ -1,6 +1,6 @@ + License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). --> product.product.stock.request.kanban