[tryton-debian-vcs] tryton-modules-production branch debian updated. debian/3.4.1-1-2-gb809790
Mathias Behrle
tryton-debian-vcs at alioth.debian.org
Thu Apr 23 16:04:55 UTC 2015
The following commit has been merged in the debian branch:
https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi/?p=tryton/tryton-modules-production.git;a=commitdiff;h=debian/3.4.1-1-2-gb809790
commit b809790dab36fbbea510cb1f0c90d32d6c630768
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Thu Apr 23 17:00:01 2015 +0200
Merging upstream version 3.6.0.
diff --git a/CHANGELOG b/CHANGELOG
index 3c86c2e..7bf4160 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,6 @@
-Version 3.4.1 - 2015-02-22
+Version 3.6.0 - 2015-04-20
* Bug fixes (see mercurial logs for details)
-
+* Add support for PyPy
Version 3.4.0 - 2014-10-20
* Bug fixes (see mercurial logs for details)
diff --git a/PKG-INFO b/PKG-INFO
index d28253f..da93ca4 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: trytond_production
-Version: 3.4.1
+Version: 3.6.0
Summary: Tryton module for production
Home-page: http://www.tryton.org/
Author: Tryton
Author-email: issue_tracker at tryton.org
License: GPL-3
-Download-URL: http://downloads.tryton.org/3.4/
+Download-URL: http://downloads.tryton.org/3.6/
Description: trytond_production
==================
@@ -65,4 +65,6 @@ Classifier: Natural Language :: Slovenian
Classifier: Natural Language :: Spanish
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Office/Business
diff --git a/__init__.py b/__init__.py
index 7e10c20..0540b43 100644
--- a/__init__.py
+++ b/__init__.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from trytond.pool import Pool
from .configuration import *
diff --git a/bom.py b/bom.py
index 7ce8a29..45e421a 100644
--- a/bom.py
+++ b/bom.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from trytond.model import ModelView, ModelSQL, fields
from trytond.wizard import Wizard, StateView, Button
from trytond.transaction import Transaction
@@ -87,18 +87,14 @@ class BOMInput(ModelSQL, ModelView):
@fields.depends('product', 'uom')
def on_change_product(self):
- res = {}
if self.product:
uoms = self.product.default_uom.category.uoms
if (not self.uom or self.uom not in uoms):
- res['uom'] = self.product.default_uom.id
- res['uom.rec_name'] = self.product.default_uom.rec_name
- res['unit_digits'] = self.product.default_uom.digits
+ self.uom = self.product.default_uom
+ self.unit_digits = self.product.default_uom.digits
else:
- res['uom'] = None
- res['uom.rec_name'] = ''
- res['unit_digits'] = 2
- return res
+ self.uom = None
+ self.unit_digits = 2
@fields.depends('product')
def on_change_with_uom_category(self, name=None):
@@ -227,7 +223,7 @@ class OpenBOMTree(Wizard):
start = StateView('production.bom.tree.open.start',
'production.bom_tree_open_start_view_form', [
Button('Cancel', 'end', 'tryton-cancel'),
- Button('Ok', 'tree', 'tryton-ok', True),
+ Button('OK', 'tree', 'tryton-ok', True),
])
tree = StateView('production.bom.tree.open.tree',
'production.bom_tree_open_tree_view_form', [
diff --git a/configuration.py b/configuration.py
index eb35e63..ac0588e 100644
--- a/configuration.py
+++ b/configuration.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from trytond.model import ModelView, ModelSQL, ModelSingleton, fields
from trytond.pyson import Eval
diff --git a/locale/bg_BG.po b/locale/bg_BG.po
index 6719634..0b26dd3 100644
--- a/locale/bg_BG.po
+++ b/locale/bg_BG.po
@@ -690,7 +690,7 @@ msgid "Wait"
msgstr "Очаквано"
msgctxt "wizard_button:production.assign,failed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "Добре"
msgctxt "wizard_button:production.assign,failed,force:"
@@ -702,7 +702,7 @@ msgid "Cancel"
msgstr "Отказ"
msgctxt "wizard_button:production.bom.tree.open,start,tree:"
-msgid "Ok"
+msgid "OK"
msgstr "Добре"
msgctxt "wizard_button:production.bom.tree.open,tree,end:"
diff --git a/locale/ca_ES.po b/locale/ca_ES.po
index eeaecd2..22c3ed9 100644
--- a/locale/ca_ES.po
+++ b/locale/ca_ES.po
@@ -453,12 +453,12 @@ msgstr "Arbre de la llista de materials"
msgctxt ""
"model:ir.action.act_window.domain,name:act_production_list_domain_all"
msgid "All"
-msgstr "Tot"
+msgstr "Totes"
msgctxt ""
"model:ir.action.act_window.domain,name:act_production_list_domain_assigned"
msgid "Assigned"
-msgstr "Reservat"
+msgstr "Reservada"
msgctxt ""
"model:ir.action.act_window.domain,name:act_production_list_domain_draft"
@@ -574,7 +574,7 @@ msgstr "Cancel·lada"
msgctxt "selection:production,state:"
msgid "Done"
-msgstr "Realitzada"
+msgstr "Finalitzada"
msgctxt "selection:production,state:"
msgid "Draft"
@@ -654,7 +654,7 @@ msgstr "Cancel·la"
msgctxt "view:production:"
msgid "Done"
-msgstr "Realitzat"
+msgstr "Finalitza"
msgctxt "view:production:"
msgid "Draft"
@@ -677,6 +677,10 @@ msgid "Productions"
msgstr "Produccions"
msgctxt "view:production:"
+msgid "Reset to BOM"
+msgstr "Reestableix amb la LdM"
+
+msgctxt "view:production:"
msgid "Run"
msgstr "Executa"
@@ -685,7 +689,7 @@ msgid "Wait"
msgstr "En espera"
msgctxt "wizard_button:production.assign,failed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "Accepta"
msgctxt "wizard_button:production.assign,failed,force:"
@@ -697,7 +701,7 @@ msgid "Cancel"
msgstr "Cancel·la"
msgctxt "wizard_button:production.bom.tree.open,start,tree:"
-msgid "Ok"
+msgid "OK"
msgstr "Accepta"
msgctxt "wizard_button:production.bom.tree.open,tree,end:"
diff --git a/locale/cs_CZ.po b/locale/cs_CZ.po
index 7e96a5c..0f39587 100644
--- a/locale/cs_CZ.po
+++ b/locale/cs_CZ.po
@@ -681,7 +681,7 @@ msgid "Wait"
msgstr ""
msgctxt "wizard_button:production.assign,failed,end:"
-msgid "Ok"
+msgid "OK"
msgstr ""
msgctxt "wizard_button:production.assign,failed,force:"
@@ -693,7 +693,7 @@ msgid "Cancel"
msgstr ""
msgctxt "wizard_button:production.bom.tree.open,start,tree:"
-msgid "Ok"
+msgid "OK"
msgstr ""
msgctxt "wizard_button:production.bom.tree.open,tree,end:"
diff --git a/locale/de_DE.po b/locale/de_DE.po
index 540021a..03428c9 100644
--- a/locale/de_DE.po
+++ b/locale/de_DE.po
@@ -676,6 +676,10 @@ msgid "Productions"
msgstr "Produktionen"
msgctxt "view:production:"
+msgid "Reset to BOM"
+msgstr "Auf Stückliste zurücksetzen"
+
+msgctxt "view:production:"
msgid "Run"
msgstr "Ausführen"
@@ -684,7 +688,7 @@ msgid "Wait"
msgstr "Warten"
msgctxt "wizard_button:production.assign,failed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "OK"
msgctxt "wizard_button:production.assign,failed,force:"
@@ -696,7 +700,7 @@ msgid "Cancel"
msgstr "Abbrechen"
msgctxt "wizard_button:production.bom.tree.open,start,tree:"
-msgid "Ok"
+msgid "OK"
msgstr "OK"
msgctxt "wizard_button:production.bom.tree.open,tree,end:"
diff --git a/locale/es_AR.po b/locale/es_AR.po
index 0799d59..1d5143f 100644
--- a/locale/es_AR.po
+++ b/locale/es_AR.po
@@ -152,7 +152,7 @@ msgstr "Estado"
msgctxt "field:production,unit_digits:"
msgid "Unit Digits"
-msgstr "Dígitos de unidad"
+msgstr "Decimales de unidad"
msgctxt "field:production,uom:"
msgid "Uom"
@@ -164,7 +164,7 @@ msgstr "Categoría UdM"
msgctxt "field:production,warehouse:"
msgid "Warehouse"
-msgstr "Depósito"
+msgstr "Almacén"
msgctxt "field:production,write_date:"
msgid "Write Date"
@@ -256,7 +256,7 @@ msgstr "Nombre"
msgctxt "field:production.bom.input,unit_digits:"
msgid "Unit Digits"
-msgstr "Dígitos de unidad"
+msgstr "Decimales de unidad"
msgctxt "field:production.bom.input,uom:"
msgid "Uom"
@@ -304,7 +304,7 @@ msgstr "Nombre"
msgctxt "field:production.bom.output,unit_digits:"
msgid "Unit Digits"
-msgstr "Dígitos de unidad"
+msgstr "Decimales de unidad"
msgctxt "field:production.bom.output,uom:"
msgid "Uom"
@@ -340,7 +340,7 @@ msgstr "Cantidad"
msgctxt "field:production.bom.tree,unit_digits:"
msgid "Unit Digits"
-msgstr "Dígitos de unidad"
+msgstr "Decimales de unidad"
msgctxt "field:production.bom.tree,uom:"
msgid "Uom"
@@ -368,7 +368,7 @@ msgstr "Cantidad"
msgctxt "field:production.bom.tree.open.start,unit_digits:"
msgid "Unit Digits"
-msgstr "Dígitos de unidad"
+msgstr "Decimales de unidad"
msgctxt "field:production.bom.tree.open.start,uom:"
msgid "Unit"
@@ -424,11 +424,11 @@ msgstr "Salida de producción"
msgctxt "model:ir.action,name:act_bom_form"
msgid "BOM"
-msgstr "LdM"
+msgstr "Lista de material"
msgctxt "model:ir.action,name:act_bom_list"
msgid "BOMs"
-msgstr "LdMs"
+msgstr "Lista de materiales"
msgctxt "model:ir.action,name:act_production_calendar"
msgid "Productions"
@@ -490,7 +490,7 @@ msgstr "Producción"
msgctxt "model:ir.ui.menu,name:menu_bom_list"
msgid "BOMs"
-msgstr "LdMs"
+msgstr "Lista de materiales"
msgctxt "model:ir.ui.menu,name:menu_configuration"
msgid "Configuration"
@@ -594,11 +594,11 @@ msgstr "En espera"
msgctxt "view:product.product-production.bom:"
msgid "Product - BOM"
-msgstr "Producto - LdM"
+msgstr "Producto - Lista de material"
msgctxt "view:product.product-production.bom:"
msgid "Product - BOMs"
-msgstr "Producto - LdMs"
+msgstr "Producto - Lista de materiales"
msgctxt "view:production.assign.failed:"
msgid "Unable to Assign"
@@ -610,31 +610,31 @@ msgstr "No se puede asignar estos productos:"
msgctxt "view:production.bom.input:"
msgid "BOM Inputs"
-msgstr "Entradas LdM"
+msgstr "Entradas lista de material"
msgctxt "view:production.bom.output:"
msgid "BOM Outputs"
-msgstr "Salidas LdM"
+msgstr "Salidas lista de material"
msgctxt "view:production.bom.tree.open.start:"
msgid "BOM Tree"
-msgstr "Árbol LdM"
+msgstr "Árbol lista de materiales"
msgctxt "view:production.bom.tree.open.tree:"
msgid "BOM Tree"
-msgstr "Árbol LdM"
+msgstr "Árbol lista de materiales"
msgctxt "view:production.bom.tree:"
msgid "BOM Tree"
-msgstr "Árbol LdM"
+msgstr "Árbol lista de materiales"
msgctxt "view:production.bom:"
msgid "BOM"
-msgstr "LdM"
+msgstr "Lista de material"
msgctxt "view:production.bom:"
msgid "BOMs"
-msgstr "LdMs"
+msgstr "Lista de materiales"
msgctxt "view:production.bom:"
msgid "Lines"
@@ -677,6 +677,10 @@ msgid "Productions"
msgstr "Producciones"
msgctxt "view:production:"
+msgid "Reset to BOM"
+msgstr "Restablecer a LdM"
+
+msgctxt "view:production:"
msgid "Run"
msgstr "Ejecutar"
@@ -685,7 +689,7 @@ msgid "Wait"
msgstr "Espera"
msgctxt "wizard_button:production.assign,failed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
msgctxt "wizard_button:production.assign,failed,force:"
@@ -697,7 +701,7 @@ msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:production.bom.tree.open,start,tree:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
msgctxt "wizard_button:production.bom.tree.open,tree,end:"
diff --git a/locale/es_CO.po b/locale/es_CO.po
index 6f8dc82..befa86f 100644
--- a/locale/es_CO.po
+++ b/locale/es_CO.po
@@ -677,6 +677,10 @@ msgid "Productions"
msgstr "Producciones"
msgctxt "view:production:"
+msgid "Reset to BOM"
+msgstr ""
+
+msgctxt "view:production:"
msgid "Run"
msgstr "Ejecutar"
@@ -685,7 +689,7 @@ msgid "Wait"
msgstr "Espera"
msgctxt "wizard_button:production.assign,failed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
msgctxt "wizard_button:production.assign,failed,force:"
@@ -697,7 +701,7 @@ msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:production.bom.tree.open,start,tree:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
msgctxt "wizard_button:production.bom.tree.open,tree,end:"
diff --git a/locale/es_EC.po b/locale/es_EC.po
index 93ff511..e46b929 100644
--- a/locale/es_EC.po
+++ b/locale/es_EC.po
@@ -7,8 +7,8 @@ msgid ""
"You are trying to create a recursive BOM with product \"%s\" which is not "
"allowed."
msgstr ""
-"Está intentando crear una LDM recursiva con el producto \"%s\" que no está "
-"permitido."
+"Está intentando crear una LDM recursiva con el producto \"%s\" lo cual no "
+"está permitido."
msgctxt "error:production.bom.input:"
msgid "Product must be unique per BOM."
@@ -28,7 +28,7 @@ msgstr "El producto debe ser único por LDM."
msgctxt "error:production.bom.output:"
msgid "You can not create recursive BOMs."
-msgstr "No puede crear LDMs recursivas!"
+msgstr "No puede crear LDMs recursivas."
msgctxt "error:production.bom.output:"
msgid "product_bom_uniq"
@@ -52,11 +52,11 @@ msgstr "LDM"
msgctxt "field:product.product-production.bom,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:product.product-production.bom,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:product.product-production.bom,id:"
msgid "ID"
@@ -76,11 +76,11 @@ msgstr "Secuencia"
msgctxt "field:product.product-production.bom,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:product.product-production.bom,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:production,bom:"
msgid "BOM"
@@ -100,11 +100,11 @@ msgstr "Costo"
msgctxt "field:production,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:production,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:production,effective_date:"
msgid "Effective Date"
@@ -160,19 +160,19 @@ msgstr "UdM"
msgctxt "field:production,uom_category:"
msgid "Uom Category"
-msgstr "Categoría UdM"
+msgstr "Categoría de UdM"
msgctxt "field:production,warehouse:"
msgid "Warehouse"
-msgstr "Depósito"
+msgstr "Almacén"
msgctxt "field:production,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:production,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:production.assign.failed,id:"
msgid "ID"
@@ -188,11 +188,11 @@ msgstr "Activo"
msgctxt "field:production.bom,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:production.bom,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:production.bom,id:"
msgid "ID"
@@ -220,11 +220,11 @@ msgstr "Nombre"
msgctxt "field:production.bom,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:production.bom,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:production.bom.input,bom:"
msgid "BOM"
@@ -232,11 +232,11 @@ msgstr "LDM"
msgctxt "field:production.bom.input,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:production.bom.input,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:production.bom.input,id:"
msgid "ID"
@@ -264,15 +264,15 @@ msgstr "UdM"
msgctxt "field:production.bom.input,uom_category:"
msgid "Uom Category"
-msgstr "Categoría UdM"
+msgstr "Categoría de UdM"
msgctxt "field:production.bom.input,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:production.bom.input,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:production.bom.output,bom:"
msgid "BOM"
@@ -280,11 +280,11 @@ msgstr "LDM"
msgctxt "field:production.bom.output,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:production.bom.output,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:production.bom.output,id:"
msgid "ID"
@@ -312,15 +312,15 @@ msgstr "UdM"
msgctxt "field:production.bom.output,uom_category:"
msgid "Uom Category"
-msgstr "Categoría UdM"
+msgstr "Categoría de UdM"
msgctxt "field:production.bom.output,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:production.bom.output,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:production.bom.tree,childs:"
msgid "Childs"
@@ -376,7 +376,7 @@ msgstr "Unidad"
msgctxt "field:production.bom.tree.open.tree,bom_tree:"
msgid "BOM Tree"
-msgstr "Árbol LDM"
+msgstr "Árbol de LDM"
msgctxt "field:production.bom.tree.open.tree,id:"
msgid "ID"
@@ -384,11 +384,11 @@ msgstr "ID"
msgctxt "field:production.configuration,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:production.configuration,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:production.configuration,id:"
msgid "ID"
@@ -404,11 +404,11 @@ msgstr "Nombre"
msgctxt "field:production.configuration,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:production.configuration,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:stock.location,production_location:"
msgid "Production"
@@ -448,7 +448,7 @@ msgstr "Asignar Producción"
msgctxt "model:ir.action,name:wizard_bom_tree_open"
msgid "BOM Tree"
-msgstr "Árbol LDM"
+msgstr "Árbol de LDM"
msgctxt ""
"model:ir.action.act_window.domain,name:act_production_list_domain_all"
@@ -458,7 +458,7 @@ msgstr "Todo"
msgctxt ""
"model:ir.action.act_window.domain,name:act_production_list_domain_assigned"
msgid "Assigned"
-msgstr "Asignado"
+msgstr "Asignada"
msgctxt ""
"model:ir.action.act_window.domain,name:act_production_list_domain_draft"
@@ -490,7 +490,7 @@ msgstr "Producción"
msgctxt "model:ir.ui.menu,name:menu_bom_list"
msgid "BOMs"
-msgstr "Listas de Materiales"
+msgstr "LDMs"
msgctxt "model:ir.ui.menu,name:menu_configuration"
msgid "Configuration"
@@ -538,7 +538,7 @@ msgstr "Salida de Lista de Materiales"
msgctxt "model:production.bom.tree,name:"
msgid "BOM Tree"
-msgstr "Árbol LDM"
+msgstr "Árbol de LDM"
msgctxt "model:production.bom.tree.open.start,name:"
msgid "Open BOM Tree"
@@ -560,13 +560,14 @@ msgctxt "model:res.group,name:group_production_admin"
msgid "Production Administration"
msgstr "Administración de Producción"
+#, fuzzy
msgctxt "model:stock.location,name:location_production"
msgid "Production"
msgstr "Producción"
msgctxt "selection:production,state:"
msgid "Assigned"
-msgstr "Asignado"
+msgstr "Asignada"
msgctxt "selection:production,state:"
msgid "Canceled"
@@ -582,7 +583,7 @@ msgstr "Borrador"
msgctxt "selection:production,state:"
msgid "Request"
-msgstr "Solicitud"
+msgstr "Solicitada"
msgctxt "selection:production,state:"
msgid "Running"
@@ -610,23 +611,23 @@ msgstr "No se pueden asignar estos productos:"
msgctxt "view:production.bom.input:"
msgid "BOM Inputs"
-msgstr "Entradas LDM"
+msgstr "Entradas de LDM"
msgctxt "view:production.bom.output:"
msgid "BOM Outputs"
-msgstr "Salidas LDM"
+msgstr "Salidas de LDM"
msgctxt "view:production.bom.tree.open.start:"
msgid "BOM Tree"
-msgstr "Árbol LDM"
+msgstr "Árbol de LDM"
msgctxt "view:production.bom.tree.open.tree:"
msgid "BOM Tree"
-msgstr "Árbol LDM"
+msgstr "Árbol de LDM"
msgctxt "view:production.bom.tree:"
msgid "BOM Tree"
-msgstr "Árbol LDM"
+msgstr "Árbol de LDM"
msgctxt "view:production.bom:"
msgid "BOM"
@@ -654,7 +655,7 @@ msgstr "Cancelar"
msgctxt "view:production:"
msgid "Done"
-msgstr "Realizado"
+msgstr "Realizada"
msgctxt "view:production:"
msgid "Draft"
@@ -677,15 +678,19 @@ msgid "Productions"
msgstr "Producciones"
msgctxt "view:production:"
+msgid "Reset to BOM"
+msgstr "Restablecer a LDM"
+
+msgctxt "view:production:"
msgid "Run"
msgstr "Ejecutar"
msgctxt "view:production:"
msgid "Wait"
-msgstr "Espera"
+msgstr "En Espera"
msgctxt "wizard_button:production.assign,failed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
msgctxt "wizard_button:production.assign,failed,force:"
@@ -697,7 +702,7 @@ msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:production.bom.tree.open,start,tree:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
msgctxt "wizard_button:production.bom.tree.open,tree,end:"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index 17a49c1..c78006d 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -458,7 +458,7 @@ msgstr "Todo"
msgctxt ""
"model:ir.action.act_window.domain,name:act_production_list_domain_assigned"
msgid "Assigned"
-msgstr "Reservado"
+msgstr "Reservada"
msgctxt ""
"model:ir.action.act_window.domain,name:act_production_list_domain_draft"
@@ -574,7 +574,7 @@ msgstr "Cancelada"
msgctxt "selection:production,state:"
msgid "Done"
-msgstr "Realizada"
+msgstr "Finalizada"
msgctxt "selection:production,state:"
msgid "Draft"
@@ -654,7 +654,7 @@ msgstr "Cancelar"
msgctxt "view:production:"
msgid "Done"
-msgstr "Realizado"
+msgstr "Finalizar"
msgctxt "view:production:"
msgid "Draft"
@@ -677,6 +677,10 @@ msgid "Productions"
msgstr "Producciones"
msgctxt "view:production:"
+msgid "Reset to BOM"
+msgstr "Reestrablecer con la LdM"
+
+msgctxt "view:production:"
msgid "Run"
msgstr "Ejecutar"
@@ -685,7 +689,7 @@ msgid "Wait"
msgstr "En espera"
msgctxt "wizard_button:production.assign,failed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
msgctxt "wizard_button:production.assign,failed,force:"
@@ -697,7 +701,7 @@ msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:production.bom.tree.open,start,tree:"
-msgid "Ok"
+msgid "OK"
msgstr "Aceptar"
msgctxt "wizard_button:production.bom.tree.open,tree,end:"
diff --git a/locale/fr_FR.po b/locale/fr_FR.po
index 8c88e27..608aed8 100644
--- a/locale/fr_FR.po
+++ b/locale/fr_FR.po
@@ -677,6 +677,10 @@ msgid "Productions"
msgstr "Productions"
msgctxt "view:production:"
+msgid "Reset to BOM"
+msgstr "Réinitialiser à la nomenclature"
+
+msgctxt "view:production:"
msgid "Run"
msgstr "Lancer"
@@ -685,8 +689,8 @@ msgid "Wait"
msgstr "Attendre"
msgctxt "wizard_button:production.assign,failed,end:"
-msgid "Ok"
-msgstr "Ok"
+msgid "OK"
+msgstr "OK"
msgctxt "wizard_button:production.assign,failed,force:"
msgid "Force Assign"
@@ -697,8 +701,8 @@ msgid "Cancel"
msgstr "Annuler"
msgctxt "wizard_button:production.bom.tree.open,start,tree:"
-msgid "Ok"
-msgstr "Ok"
+msgid "OK"
+msgstr "OK"
msgctxt "wizard_button:production.bom.tree.open,tree,end:"
msgid "Close"
diff --git a/locale/nl_NL.po b/locale/nl_NL.po
index de6fb5a..65543bf 100644
--- a/locale/nl_NL.po
+++ b/locale/nl_NL.po
@@ -729,7 +729,7 @@ msgstr ""
#, fuzzy
msgctxt "wizard_button:production.assign,failed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "Oké"
msgctxt "wizard_button:production.assign,failed,force:"
@@ -743,7 +743,7 @@ msgstr "Annuleren"
#, fuzzy
msgctxt "wizard_button:production.bom.tree.open,start,tree:"
-msgid "Ok"
+msgid "OK"
msgstr "Oké"
#, fuzzy
diff --git a/locale/ru_RU.po b/locale/ru_RU.po
index a1df564..2e2fab2 100644
--- a/locale/ru_RU.po
+++ b/locale/ru_RU.po
@@ -683,7 +683,7 @@ msgid "Wait"
msgstr "Ожидают"
msgctxt "wizard_button:production.assign,failed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "Ок"
msgctxt "wizard_button:production.assign,failed,force:"
@@ -695,7 +695,7 @@ msgid "Cancel"
msgstr "Отменить"
msgctxt "wizard_button:production.bom.tree.open,start,tree:"
-msgid "Ok"
+msgid "OK"
msgstr "Ок"
msgctxt "wizard_button:production.bom.tree.open,tree,end:"
diff --git a/locale/sl_SI.po b/locale/sl_SI.po
index 61440a1..6698994 100644
--- a/locale/sl_SI.po
+++ b/locale/sl_SI.po
@@ -675,6 +675,10 @@ msgid "Productions"
msgstr "Proizvodni nalogi"
msgctxt "view:production:"
+msgid "Reset to BOM"
+msgstr "Ponastavi na kosovnico"
+
+msgctxt "view:production:"
msgid "Run"
msgstr "Izvajanje"
@@ -683,7 +687,7 @@ msgid "Wait"
msgstr "Čakanje"
msgctxt "wizard_button:production.assign,failed,end:"
-msgid "Ok"
+msgid "OK"
msgstr "V redu"
msgctxt "wizard_button:production.assign,failed,force:"
@@ -695,7 +699,7 @@ msgid "Cancel"
msgstr "Prekliči"
msgctxt "wizard_button:production.bom.tree.open,start,tree:"
-msgid "Ok"
+msgid "OK"
msgstr "V redu"
msgctxt "wizard_button:production.bom.tree.open,tree,end:"
diff --git a/product.py b/product.py
index a0ad739..33bcb88 100644
--- a/product.py
+++ b/product.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from trytond.model import ModelView, ModelSQL, fields
from trytond.pyson import Eval, Get, If, Bool
from trytond.pool import PoolMeta
diff --git a/production.py b/production.py
index 2abade3..f8ca336 100644
--- a/production.py
+++ b/production.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from decimal import Decimal
from trytond.model import ModelView, ModelSQL, Workflow, fields
@@ -8,6 +8,8 @@ from trytond.pyson import Eval, Bool, If, Id
from trytond.pool import Pool
from trytond.transaction import Transaction
+from trytond.modules.product import price_digits
+
__all__ = ['Production', 'AssignFailed', 'Assign']
BOM_CHANGES = ['bom', 'product', 'quantity', 'uom', 'warehouse', 'location',
@@ -98,28 +100,30 @@ class Production(Workflow, ModelSQL, ModelView):
'invisible': ~Eval('product'),
},
depends=['unit_digits'])
- cost = fields.Function(fields.Numeric('Cost', digits=(16, 4),
+ cost = fields.Function(fields.Numeric('Cost', digits=price_digits,
readonly=True), 'get_cost')
inputs = fields.One2Many('stock.move', 'production_input', 'Inputs',
domain=[
('from_location', 'child_of', [Eval('warehouse')], 'parent'),
('to_location', '=', Eval('location')),
+ ('company', '=', Eval('company', -1)),
],
states={
'readonly': (~Eval('state').in_(['request', 'draft', 'waiting'])
| ~Eval('warehouse') | ~Eval('location')),
},
- depends=['warehouse', 'location'])
+ depends=['warehouse', 'location', 'company'])
outputs = fields.One2Many('stock.move', 'production_output', 'Outputs',
domain=[
('from_location', '=', Eval('location')),
('to_location', 'child_of', [Eval('warehouse')], 'parent'),
+ ('company', '=', Eval('company', -1)),
],
states={
'readonly': (Eval('state').in_(['done', 'cancel'])
| ~Eval('warehouse') | ~Eval('location')),
},
- depends=['warehouse', 'location'])
+ depends=['warehouse', 'location', 'company'])
state = fields.Selection([
('request', 'Request'),
('draft', 'Draft'),
@@ -168,6 +172,10 @@ class Production(Workflow, ModelSQL, ModelView):
'tryton-go-next',
'tryton-go-previous')),
},
+ 'reset_bom': {
+ 'invisible': (~Eval('bom')
+ | ~Eval('state').in_(['request', 'draft', 'waiting'])),
+ },
'wait': {
'invisible': ~Eval('state').in_(['draft', 'assigned',
'waiting', 'running']),
@@ -232,26 +240,12 @@ class Production(Workflow, ModelSQL, ModelView):
def _explode_move_values(self, from_location, to_location, company,
bom_io, quantity):
- pool = Pool()
- Move = pool.get('stock.move')
-
move = self._move(from_location, to_location, company,
bom_io.product, bom_io.uom, quantity)
move.from_location = from_location.id if from_location else None
move.to_location = to_location.id if to_location else None
move.unit_price_required = move.on_change_with_unit_price_required()
- values = {}
- for field_name, field in Move._fields.iteritems():
- try:
- value = getattr(move, field_name)
- except AttributeError:
- continue
- if value and field._type in ('many2one', 'one2one'):
- values[field_name] = value.id
- values[field_name + '.rec_name'] = value.rec_name
- else:
- values[field_name] = value
- return values
+ return move
def explode_bom(self):
pool = Pool()
@@ -259,20 +253,8 @@ class Production(Workflow, ModelSQL, ModelView):
Template = pool.get('product.template')
Product = pool.get('product.product')
if not (self.bom and self.product and self.uom):
- return {}
- inputs = {
- 'remove': [r.id for r in self.inputs or []],
- 'add': [],
- }
- outputs = {
- 'remove': [r.id for r in self.outputs or []],
- 'add': [],
- }
- changes = {
- 'inputs': inputs,
- 'outputs': outputs,
- 'cost': Decimal(0),
- }
+ return
+ self.cost = Decimal(0)
if self.warehouse:
storage_location = self.warehouse.storage_location
@@ -281,64 +263,55 @@ class Production(Workflow, ModelSQL, ModelView):
factor = self.bom.compute_factor(self.product, self.quantity or 0,
self.uom)
+ inputs = []
for input_ in self.bom.inputs:
quantity = input_.compute_quantity(factor)
- values = self._explode_move_values(storage_location, self.location,
+ move = self._explode_move_values(storage_location, self.location,
self.company, input_, quantity)
- if values:
- inputs['add'].append((-1, values))
+ if move:
+ inputs.append(move)
quantity = Uom.compute_qty(input_.uom, quantity,
input_.product.default_uom)
- changes['cost'] += (Decimal(str(quantity)) *
+ self.cost += (Decimal(str(quantity)) *
input_.product.cost_price)
+ self.inputs = inputs
if hasattr(Product, 'cost_price'):
digits = Product.cost_price.digits
else:
digits = Template.cost_price.digits
+ outputs = []
for output in self.bom.outputs:
quantity = output.compute_quantity(factor)
- values = self._explode_move_values(self.location, storage_location,
+ move = self._explode_move_values(self.location, storage_location,
self.company, output, quantity)
- if values:
- values['unit_price'] = Decimal(0)
- if output.product.id == values.get('product') and quantity:
- values['unit_price'] = Decimal(
- changes['cost'] / Decimal(str(quantity))
+ if move:
+ move.unit_price = Decimal(0)
+ if output.product == move.product and quantity:
+ move.unit_price = Decimal(
+ self.cost / Decimal(str(quantity))
).quantize(Decimal(str(10 ** -digits[1])))
- outputs['add'].append((-1, values))
- return changes
+ outputs.append(move)
+ self.outputs = outputs
@fields.depends('warehouse')
def on_change_warehouse(self):
- changes = {
- 'location': None,
- }
+ self.location = None
if self.warehouse:
- changes['location'] = self.warehouse.production_location.id
- return changes
+ self.location = self.warehouse.production_location
@fields.depends(*BOM_CHANGES)
def on_change_product(self):
- result = {}
if self.product:
uoms = self.product.default_uom.category.uoms
if (not self.uom or self.uom not in uoms):
- result['uom'] = self.product.default_uom.id
- result['uom.rec_name'] = self.product.default_uom.rec_name
- result['unit_digits'] = self.product.default_uom.digits
+ self.uom = self.product.default_uom
+ self.unit_digits = self.product.default_uom.digits
else:
- result['bom'] = None
- result['uom'] = None
- result['uom.rec_name'] = ''
- result['unit_digits'] = 2
-
- if 'uom' in result:
- self.uom = result['uom']
- if 'bom' in result:
- self.bom = result['bom']
- result.update(self.explode_bom())
- return result
+ self.bom = None
+ self.uom = None
+ self.unit_digits = 2
+ self.explode_bom()
@fields.depends('product')
def on_change_with_uom_category(self, name=None):
@@ -353,15 +326,19 @@ class Production(Workflow, ModelSQL, ModelView):
@fields.depends(*BOM_CHANGES)
def on_change_bom(self):
- return self.explode_bom()
+ self.explode_bom()
@fields.depends(*BOM_CHANGES)
def on_change_uom(self):
- return self.explode_bom()
+ self.explode_bom()
@fields.depends(*BOM_CHANGES)
def on_change_quantity(self):
- return self.explode_bom()
+ self.explode_bom()
+
+ @ModelView.button_change(*BOM_CHANGES)
+ def reset_bom(self):
+ self.explode_bom()
def get_cost(self, name):
cost = Decimal(0)
@@ -371,7 +348,9 @@ class Production(Workflow, ModelSQL, ModelView):
else:
cost_price = input_.product.cost_price
cost += (Decimal(str(input_.internal_quantity)) * cost_price)
- return cost
+
+ digits = self.__class__.cost.digits
+ return cost.quantize(Decimal(str(10 ** -digits[1])))
@fields.depends('inputs')
def on_change_with_cost(self):
@@ -610,7 +589,7 @@ class Assign(Wizard):
'group_stock_force_assignment').in_(
Eval('context', {}).get('groups', [])),
}),
- Button('Ok', 'end', 'tryton-ok', True),
+ Button('OK', 'end', 'tryton-ok', True),
])
force = StateTransition()
diff --git a/production.xml b/production.xml
index 62b119e..f926692 100644
--- a/production.xml
+++ b/production.xml
@@ -92,35 +92,35 @@ this repository contains the full copyright notices and license terms. -->
id="act_production_list_domain_requests">
<field name="name">Requests</field>
<field name="sequence" eval="10"/>
- <field name="domain">[('state', '=', 'request')]</field>
+ <field name="domain" eval="[('state', '=', 'request')]" pyson="1"/>
<field name="act_window" ref="act_production_list"/>
</record>
<record model="ir.action.act_window.domain"
id="act_production_list_domain_draft">
<field name="name">Draft</field>
<field name="sequence" eval="20"/>
- <field name="domain">[('state', '=', 'draft')]</field>
+ <field name="domain" eval="[('state', '=', 'draft')]" pyson="1"/>
<field name="act_window" ref="act_production_list"/>
</record>
<record model="ir.action.act_window.domain"
id="act_production_list_domain_waiting">
<field name="name">Waiting</field>
<field name="sequence" eval="30"/>
- <field name="domain">[('state', '=', 'waiting')]</field>
+ <field name="domain" eval="[('state', '=', 'waiting')]" pyson="1"/>
<field name="act_window" ref="act_production_list"/>
</record>
<record model="ir.action.act_window.domain"
id="act_production_list_domain_assigned">
<field name="name">Assigned</field>
<field name="sequence" eval="30"/>
- <field name="domain">[('state', '=', 'assigned')]</field>
+ <field name="domain" eval="[('state', '=', 'assigned')]" pyson="1"/>
<field name="act_window" ref="act_production_list"/>
</record>
<record model="ir.action.act_window.domain"
id="act_production_list_domain_running">
<field name="name">Running</field>
<field name="sequence" eval="30"/>
- <field name="domain">[('state', '=', 'running')]</field>
+ <field name="domain" eval="[('state', '=', 'running')]" pyson="1"/>
<field name="act_window" ref="act_production_list"/>
</record>
<record model="ir.action.act_window.domain"
@@ -194,7 +194,9 @@ this repository contains the full copyright notices and license terms. -->
<field name="global_p" eval="True"/>
</record>
<record model="ir.rule" id="rule_production">
- <field name="domain">[('company', '=', user.company.id if user.company else None)]</field>
+ <field name="domain"
+ eval="[('company', '=', Eval('user', {}).get('company', None))]"
+ pyson="1"/>
<field name="rule_group" ref="rule_group_production"/>
</record>
diff --git a/setup.py b/setup.py
index 6c4f259..448b01c 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from setuptools import setup
import re
@@ -92,6 +92,8 @@ setup(name=name,
'Natural Language :: Spanish',
'Operating System :: OS Independent',
'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: Implementation :: CPython',
+ 'Programming Language :: Python :: Implementation :: PyPy',
'Topic :: Office/Business',
],
license='GPL-3',
diff --git a/stock.py b/stock.py
index 0985784..71e3780 100644
--- a/stock.py
+++ b/stock.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from trytond.model import fields
from trytond.pyson import Eval
from trytond.pool import PoolMeta
diff --git a/tests/__init__.py b/tests/__init__.py
index e64267e..b968fe3 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from test_production import suite
diff --git a/tests/scenario_production.rst b/tests/scenario_production.rst
index 29fc30d..3d5eaf0 100644
--- a/tests/scenario_production.rst
+++ b/tests/scenario_production.rst
@@ -2,16 +2,15 @@
Production Scenario
===================
-=============
-General Setup
-=============
-
Imports::
>>> import datetime
>>> from dateutil.relativedelta import relativedelta
>>> from decimal import Decimal
>>> from proteus import config, Model, Wizard
+ >>> from trytond.modules.company.tests.tools import create_company, \
+ ... get_company
+ >>> from trytond.modules.production.production import BOM_CHANGES
>>> today = datetime.date.today()
>>> yesterday = today - relativedelta(days=1)
@@ -23,35 +22,14 @@ Create database::
Install production Module::
>>> Module = Model.get('ir.module.module')
- >>> modules = Module.find([('name', '=', 'production')])
- >>> Module.install([x.id for x in modules], config.context)
+ >>> module, = Module.find([('name', '=', 'production')])
+ >>> module.click('install')
>>> Wizard('ir.module.module.install_upgrade').execute('upgrade')
Create company::
- >>> Currency = Model.get('currency.currency')
- >>> CurrencyRate = Model.get('currency.currency.rate')
- >>> Company = Model.get('company.company')
- >>> Party = Model.get('party.party')
- >>> company_config = Wizard('company.company.config')
- >>> company_config.execute('company')
- >>> company = company_config.form
- >>> party = Party(name='Dunder Mifflin')
- >>> party.save()
- >>> company.party = party
- >>> currencies = Currency.find([('code', '=', 'USD')])
- >>> if not currencies:
- ... currency = Currency(name='Euro', symbol=u'$', code='USD',
- ... rounding=Decimal('0.01'), mon_grouping='[3, 3, 0]',
- ... mon_decimal_point=',')
- ... currency.save()
- ... CurrencyRate(date=today + relativedelta(month=1, day=1),
- ... rate=Decimal('1.0'), currency=currency).save()
- ... else:
- ... currency, = currencies
- >>> company.currency = currency
- >>> company_config.execute('add')
- >>> company, = Company.find()
+ >>> _ = create_company()
+ >>> company = get_company()
Reload the context::
@@ -144,8 +122,7 @@ Create an Inventory::
>>> inventory.lines.append(inventory_line2)
>>> inventory_line2.product = component2
>>> inventory_line2.quantity = 6
- >>> inventory.save()
- >>> Inventory.confirm([inventory.id], config.context)
+ >>> inventory.click('confirm')
>>> inventory.state
u'done'
@@ -163,23 +140,33 @@ Make a production::
True
>>> production.cost
Decimal('25.0')
- >>> production.save()
- >>> Production.wait([production.id], config.context)
+ >>> production.click('wait')
>>> production.state
u'waiting'
- >>> Production.assign_try([production.id], config.context)
+
+Test reset bom button::
+
+ >>> for input in production.inputs:
+ ... input.quantity += 1
+ >>> production.click('reset_bom', change=BOM_CHANGES)
+ >>> sorted([i.quantity for i in production.inputs]) == [10, 300]
+ True
+ >>> output, = production.outputs
+ >>> output.quantity == 2
+ True
+
+Do the production::
+
+ >>> production.click('assign_try')
True
- >>> production.reload()
>>> all(i.state == 'assigned' for i in production.inputs)
True
- >>> Production.run([production.id], config.context)
- >>> production.reload()
+ >>> production.click('run')
>>> all(i.state == 'done' for i in production.inputs)
True
>>> len(set(i.effective_date == today for i in production.inputs))
1
- >>> Production.done([production.id], config.context)
- >>> production.reload()
+ >>> production.click('done')
>>> output, = production.outputs
>>> output.state
u'done'
@@ -199,7 +186,7 @@ Make a production with effective date yesterday::
>>> production.bom = bom
>>> production.quantity = 2
>>> production.click('wait')
- >>> Production.assign_try([production.id], config.context)
+ >>> production.click('assign_try')
True
>>> production.click('run')
>>> production.reload()
diff --git a/tests/test_production.py b/tests/test_production.py
index 4ae51cd..6f8bc89 100644
--- a/tests/test_production.py
+++ b/tests/test_production.py
@@ -1,25 +1,15 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
import unittest
import doctest
import trytond.tests.test_tryton
-from trytond.tests.test_tryton import test_view, test_depends
+from trytond.tests.test_tryton import ModuleTestCase
from trytond.tests.test_tryton import doctest_setup, doctest_teardown
-class ProductionTestCase(unittest.TestCase):
+class ProductionTestCase(ModuleTestCase):
'Test Production module'
-
- def setUp(self):
- trytond.tests.test_tryton.install_module('production')
-
- def test0005views(self):
- 'Test views'
- test_view('production')
-
- def test0006depends(self):
- 'Test depends'
- test_depends()
+ module = 'production'
def suite():
diff --git a/tryton.cfg b/tryton.cfg
index a07c766..f859a44 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
[tryton]
-version=3.4.1
+version=3.6.0
depends:
company
ir
diff --git a/trytond_production.egg-info/PKG-INFO b/trytond_production.egg-info/PKG-INFO
index c12f269..60e2657 100644
--- a/trytond_production.egg-info/PKG-INFO
+++ b/trytond_production.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: trytond-production
-Version: 3.4.1
+Version: 3.6.0
Summary: Tryton module for production
Home-page: http://www.tryton.org/
Author: Tryton
Author-email: issue_tracker at tryton.org
License: GPL-3
-Download-URL: http://downloads.tryton.org/3.4/
+Download-URL: http://downloads.tryton.org/3.6/
Description: trytond_production
==================
@@ -65,4 +65,6 @@ Classifier: Natural Language :: Slovenian
Classifier: Natural Language :: Spanish
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Office/Business
diff --git a/trytond_production.egg-info/requires.txt b/trytond_production.egg-info/requires.txt
index e8d951f..aabd087 100644
--- a/trytond_production.egg-info/requires.txt
+++ b/trytond_production.egg-info/requires.txt
@@ -1,4 +1,4 @@
-trytond_company >= 3.4, < 3.5
-trytond_product >= 3.4, < 3.5
-trytond_stock >= 3.4, < 3.5
-trytond >= 3.4, < 3.5
\ No newline at end of file
+trytond_company >= 3.6, < 3.7
+trytond_product >= 3.6, < 3.7
+trytond_stock >= 3.6, < 3.7
+trytond >= 3.6, < 3.7
\ No newline at end of file
diff --git a/view/production_form.xml b/view/production_form.xml
index e80999b..658606d 100644
--- a/view/production_form.xml
+++ b/view/production_form.xml
@@ -38,10 +38,12 @@ this repository contains the full copyright notices and license terms. -->
<group col="4" colspan="4" id="state_buttons">
<label name="state"/>
<field name="state"/>
- <group col="6" colspan="2" id="buttons">
+ <group col="7" colspan="2" id="buttons">
<button name="cancel" string="Cancel"
icon="tryton-cancel"/>
<button name="draft" string="Draft"/>
+ <button name="reset_bom" string="Reset to BOM"
+ icon="tryton-clear"/>
<button name="wait" string="Wait"/>
<button name="assign_wizard" string="Assign"
icon="tryton-go-next"/>
--
tryton-modules-production
More information about the tryton-debian-vcs
mailing list