Update to 4.7
This commit is contained in:
parent
997741055d
commit
5b891e4ca2
|
@ -0,0 +1,49 @@
|
|||
clone:
|
||||
hg:
|
||||
image: plugins/hg
|
||||
|
||||
pipeline:
|
||||
tox:
|
||||
image: ${IMAGE}
|
||||
environment:
|
||||
- CFLAGS=-O0
|
||||
- DB_CACHE=/cache
|
||||
- TOX_TESTENV_PASSENV=CFLAGS DB_CACHE
|
||||
- POSTGRESQL_URI=postgresql://postgres@postgresql:5432/
|
||||
commands:
|
||||
- pip install tox
|
||||
- tox -e "${TOXENV}-${DATABASE}"
|
||||
|
||||
services:
|
||||
postgresql:
|
||||
image: postgres
|
||||
when:
|
||||
matrix:
|
||||
DATABASE: postgresql
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- IMAGE: python:2.7
|
||||
TOXENV: py27
|
||||
DATABASE: sqlite
|
||||
- IMAGE: python:2.7
|
||||
TOXENV: py27
|
||||
DATABASE: postgresql
|
||||
- IMAGE: python:3.4
|
||||
TOXENV: py34
|
||||
DATABASE: sqlite
|
||||
- IMAGE: python:3.4
|
||||
TOXENV: py34
|
||||
DATABASE: postgresql
|
||||
- IMAGE: python:3.5
|
||||
TOXENV: py35
|
||||
DATABASE: sqlite
|
||||
- IMAGE: python:3.5
|
||||
TOXENV: py35
|
||||
DATABASE: postgresql
|
||||
- IMAGE: python:3.6
|
||||
TOXENV: py36
|
||||
DATABASE: sqlite
|
||||
- IMAGE: python:3.6
|
||||
TOXENV: py36
|
||||
DATABASE: postgresql
|
33
__init__.py
33
__init__.py
|
@ -1,23 +1,24 @@
|
|||
# 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 *
|
||||
from .quality import *
|
||||
from . import configuration
|
||||
from . import quality
|
||||
|
||||
|
||||
def register():
|
||||
Pool.register(
|
||||
Configuration,
|
||||
ConfigurationLine,
|
||||
Proof,
|
||||
ProofMethod,
|
||||
QualitativeValue,
|
||||
Template,
|
||||
QuantitativeTemplateLine,
|
||||
QualitativeTemplateLine,
|
||||
TemplateLine,
|
||||
QualityTest,
|
||||
QualitativeTestLine,
|
||||
QuantitativeTestLine,
|
||||
TestLine,
|
||||
QualityTestQualityTemplate,
|
||||
configuration.Configuration,
|
||||
configuration.ConfigurationLine,
|
||||
quality.Proof,
|
||||
quality.ProofMethod,
|
||||
quality.QualitativeValue,
|
||||
quality.Template,
|
||||
quality.QuantitativeTemplateLine,
|
||||
quality.QualitativeTemplateLine,
|
||||
quality.TemplateLine,
|
||||
quality.QualityTest,
|
||||
quality.QualitativeTestLine,
|
||||
quality.QuantitativeTestLine,
|
||||
quality.TestLine,
|
||||
quality.QualityTestQualityTemplate,
|
||||
module='quality_control', type_='model')
|
||||
|
|
|
@ -17,7 +17,6 @@ class Configuration(ModelSingleton, ModelSQL, ModelView):
|
|||
class ConfigurationLine(ModelSQL, ModelView):
|
||||
'Quality Configuration Model'
|
||||
__name__ = 'quality.configuration.line'
|
||||
_rec_name = 'document'
|
||||
|
||||
company = fields.Many2One('company.company', 'Company', required=True,
|
||||
select=True)
|
||||
|
|
47
product.py
47
product.py
|
@ -1,47 +0,0 @@
|
|||
# The COPYRIGHT file at the top level of this repository contains the full
|
||||
# copyright notices and license terms.
|
||||
from trytond.model import ModelSQL, fields
|
||||
from trytond.pyson import Eval
|
||||
from trytond.pool import PoolMeta
|
||||
|
||||
__all__ = ['Product', 'ProductTemplate',
|
||||
'TemplateQualityTemplate', 'ProductQualityTemplate']
|
||||
|
||||
__metaclass__ = PoolMeta
|
||||
|
||||
STATES = {
|
||||
'readonly': ~Eval('active', True),
|
||||
}
|
||||
DEPENDS = ['active']
|
||||
|
||||
|
||||
class ProductTemplate:
|
||||
__name__ = "product.template"
|
||||
quality_controls = fields.Many2Many('product.template-quality.template',
|
||||
'template', 'quality', 'Quality Controls', states=STATES, depends=DEPENDS)
|
||||
|
||||
|
||||
class Product:
|
||||
__name__ = "product.product"
|
||||
quality_controls = fields.Many2Many('product.product-quality.template',
|
||||
'product', 'quality', 'Quality Controls', states=STATES, depends=DEPENDS)
|
||||
|
||||
|
||||
class TemplateQualityTemplate(ModelSQL):
|
||||
'Product Template - Quality Template'
|
||||
__name__ = 'product.template-quality.template'
|
||||
_table = 'product_template_quality_template_rel'
|
||||
template = fields.Many2One('product.template', 'Template', ondelete='CASCADE',
|
||||
required=True, select=True)
|
||||
quality = fields.Many2One('quality.template', 'Quality Template',
|
||||
ondelete='CASCADE', required=True, select=True)
|
||||
|
||||
|
||||
class ProductQualityTemplate(ModelSQL):
|
||||
'Product - Quality Template'
|
||||
__name__ = 'product.product-quality.template'
|
||||
_table = 'product_product_quality_template_rel'
|
||||
product = fields.Many2One('product.product', 'Product', ondelete='CASCADE',
|
||||
required=True, select=True)
|
||||
quality = fields.Many2One('quality.template', 'Quality Template',
|
||||
ondelete='CASCADE', required=True, select=True)
|
17
product.xml
17
product.xml
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- The COPYRIGHT file at the top level of this repository contains the full
|
||||
copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="template_view_form">
|
||||
<field name="model">product.template</field>
|
||||
<field name="inherit" ref="product.template_view_form"/>
|
||||
<field name="name">template_form</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="product_view_form">
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit" ref="product.product_view_form"/>
|
||||
<field name="name">product_form</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
89
quality.py
89
quality.py
|
@ -4,7 +4,7 @@ from collections import defaultdict
|
|||
import datetime
|
||||
from sql import Column, Literal
|
||||
from trytond.model import Workflow, ModelView, ModelSQL, fields
|
||||
from trytond.model import Unique, UnionMixin
|
||||
from trytond.model import Unique, UnionMixin, sequence_ordered
|
||||
from trytond.pyson import Bool, Equal, Eval, If, Not
|
||||
from trytond.transaction import Transaction
|
||||
from trytond.pool import Pool
|
||||
|
@ -132,12 +132,12 @@ class Template(ModelSQL, ModelView):
|
|||
def copy(cls, templates, default=None):
|
||||
if default is None:
|
||||
default = {}
|
||||
if not 'lines' in default:
|
||||
if 'lines' not in default:
|
||||
default['lines'] = None
|
||||
return super(Template, cls).copy(templates, default)
|
||||
|
||||
|
||||
class QualitativeTemplateLine(ModelSQL, ModelView):
|
||||
class QualitativeTemplateLine(sequence_ordered(), ModelSQL, ModelView):
|
||||
'Quality Qualitative Template Line'
|
||||
__name__ = 'quality.qualitative.template.line'
|
||||
|
||||
|
@ -158,17 +158,6 @@ class QualitativeTemplateLine(ModelSQL, ModelView):
|
|||
], depends=['method'])
|
||||
internal_description = fields.Text('Internal Description')
|
||||
external_description = fields.Text('External Description')
|
||||
sequence = fields.Integer('Sequence')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(QualitativeTemplateLine, cls).__setup__()
|
||||
cls._order.insert(0, ('sequence', 'ASC'))
|
||||
|
||||
@staticmethod
|
||||
def order_sequence(tables):
|
||||
table, _ = tables[None]
|
||||
return [table.sequence == None, table.sequence]
|
||||
|
||||
@staticmethod
|
||||
def default_active():
|
||||
|
@ -187,7 +176,7 @@ class QualitativeTemplateLine(ModelSQL, ModelView):
|
|||
self.valid_value = None
|
||||
|
||||
|
||||
class QuantitativeTemplateLine(ModelSQL, ModelView):
|
||||
class QuantitativeTemplateLine(sequence_ordered(), ModelSQL, ModelView):
|
||||
'Quality Quantitative Template Line'
|
||||
__name__ = 'quality.quantitative.template.line'
|
||||
|
||||
|
@ -211,17 +200,6 @@ class QuantitativeTemplateLine(ModelSQL, ModelView):
|
|||
unit = fields.Many2One('product.uom', 'Unit', required=True)
|
||||
unit_digits = fields.Function(fields.Integer('Unit Digits'),
|
||||
'on_change_with_unit_digits')
|
||||
sequence = fields.Integer('Sequence')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(QuantitativeTemplateLine, cls).__setup__()
|
||||
cls._order.insert(0, ('sequence', 'ASC'))
|
||||
|
||||
@staticmethod
|
||||
def order_sequence(tables):
|
||||
table, _ = tables[None]
|
||||
return [table.sequence == None, table.sequence]
|
||||
|
||||
@staticmethod
|
||||
def default_active():
|
||||
|
@ -239,7 +217,7 @@ class QuantitativeTemplateLine(ModelSQL, ModelView):
|
|||
self.method = None
|
||||
|
||||
|
||||
class TemplateLine(UnionMixin, ModelSQL, ModelView):
|
||||
class TemplateLine(UnionMixin, sequence_ordered(), ModelSQL, ModelView):
|
||||
'Quality Template Line'
|
||||
__name__ = 'quality.template.line'
|
||||
|
||||
|
@ -266,17 +244,6 @@ class TemplateLine(UnionMixin, ModelSQL, ModelView):
|
|||
unit = fields.Many2One('product.uom', 'Unit')
|
||||
unit_digits = fields.Function(fields.Integer('Unit Digits'),
|
||||
'on_change_with_unit_digits')
|
||||
sequence = fields.Integer('Sequence')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(TemplateLine, cls).__setup__()
|
||||
cls._order.insert(0, ('sequence', 'ASC'))
|
||||
|
||||
@staticmethod
|
||||
def order_sequence(tables):
|
||||
table, _ = tables[None]
|
||||
return [table.sequence == None, table.sequence]
|
||||
|
||||
@staticmethod
|
||||
def union_models():
|
||||
|
@ -480,7 +447,7 @@ class QualityTest(Workflow, ModelSQL, ModelView):
|
|||
for test in tests:
|
||||
doc = str(test.document).split(',')[0]
|
||||
model, = Model.search([('model', '=', doc)])
|
||||
config, = ConfigLine.search([('document', '=', model.id)])
|
||||
config = ConfigLine.search([('document', '=', model.id)])[0]
|
||||
sequence = config.quality_sequence
|
||||
test.number = Sequence.get_id(sequence.id)
|
||||
test.save()
|
||||
|
@ -541,7 +508,7 @@ class QualityTest(Workflow, ModelSQL, ModelView):
|
|||
pass
|
||||
|
||||
|
||||
class QualitativeTestLine(ModelSQL, ModelView):
|
||||
class QualitativeTestLine(sequence_ordered(), ModelSQL, ModelView):
|
||||
'Quality Qualitative Line'
|
||||
__name__ = 'quality.qualitative.test.line'
|
||||
|
||||
|
@ -578,17 +545,6 @@ class QualitativeTestLine(ModelSQL, ModelView):
|
|||
('method', '=', Eval('method')),
|
||||
], depends=['method'])
|
||||
success = fields.Function(fields.Boolean('Success'), 'get_success')
|
||||
sequence = fields.Integer('Sequence')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(QualitativeTestLine, cls).__setup__()
|
||||
cls._order.insert(0, ('sequence', 'ASC'))
|
||||
|
||||
@staticmethod
|
||||
def order_sequence(tables):
|
||||
table, _ = tables[None]
|
||||
return [table.sequence == None, table.sequence]
|
||||
|
||||
def get_success(self, name=None):
|
||||
if self.value == self.test_value:
|
||||
|
@ -609,7 +565,7 @@ class QualitativeTestLine(ModelSQL, ModelView):
|
|||
self.sequence = template_line.sequence
|
||||
|
||||
|
||||
class QuantitativeTestLine(ModelSQL, ModelView):
|
||||
class QuantitativeTestLine(sequence_ordered(), ModelSQL, ModelView):
|
||||
'Quality Quantitative Line'
|
||||
__name__ = 'quality.quantitative.test.line'
|
||||
|
||||
|
@ -656,7 +612,7 @@ class QuantitativeTestLine(ModelSQL, ModelView):
|
|||
max_value = fields.Float('Max Value',
|
||||
digits=(16, Eval('unit_range_digits', 2)), required=True,
|
||||
states={
|
||||
'readonly': Bool(Eval('template_line', 0)),
|
||||
'readonly': Bool(Eval('template_line', 0)),
|
||||
},
|
||||
depends=['unit_range_digits', 'template_line'])
|
||||
value = fields.Float('Value', digits=(16, Eval('unit_digits', 2)),
|
||||
|
@ -674,17 +630,6 @@ class QuantitativeTestLine(ModelSQL, ModelView):
|
|||
unit_digits = fields.Function(fields.Integer('Unit Digits'),
|
||||
'on_change_with_unit_digits')
|
||||
success = fields.Function(fields.Boolean('Success'), 'get_success')
|
||||
sequence = fields.Integer('Sequence')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(QuantitativeTestLine, cls).__setup__()
|
||||
cls._order.insert(0, ('sequence', 'ASC'))
|
||||
|
||||
@staticmethod
|
||||
def order_sequence(tables):
|
||||
table, _ = tables[None]
|
||||
return [table.sequence == None, table.sequence]
|
||||
|
||||
@classmethod
|
||||
def get_test_state(self, lines, name):
|
||||
|
@ -719,7 +664,8 @@ class QuantitativeTestLine(ModelSQL, ModelView):
|
|||
res[line.id] = False
|
||||
value = line.value
|
||||
value = Uom.compute_qty(line.unit, value, line.unit_range)
|
||||
if value >= line.min_value and value <= line.max_value:
|
||||
if (value is not None
|
||||
and value >= line.min_value and value <= line.max_value):
|
||||
res[line.id] = True
|
||||
return res
|
||||
|
||||
|
@ -737,7 +683,7 @@ class QuantitativeTestLine(ModelSQL, ModelView):
|
|||
self.sequence = template_line.sequence
|
||||
|
||||
|
||||
class TestLine(UnionMixin, ModelSQL, ModelView):
|
||||
class TestLine(UnionMixin, sequence_ordered(), ModelSQL, ModelView):
|
||||
'Quality Test Line'
|
||||
__name__ = 'quality.test.line'
|
||||
|
||||
|
@ -774,19 +720,8 @@ class TestLine(UnionMixin, ModelSQL, ModelView):
|
|||
unit = fields.Many2One('product.uom', 'Unit')
|
||||
unit_digits = fields.Function(fields.Integer('Unit Digits'),
|
||||
'on_change_with_unit_digits')
|
||||
sequence = fields.Integer('Sequence')
|
||||
success = fields.Function(fields.Boolean('Success'), 'get_success')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(TestLine, cls).__setup__()
|
||||
cls._order.insert(0, ('sequence', 'ASC'))
|
||||
|
||||
@staticmethod
|
||||
def order_sequence(tables):
|
||||
table, _ = tables[None]
|
||||
return [table.sequence == None, table.sequence]
|
||||
|
||||
@staticmethod
|
||||
def union_models():
|
||||
return ['quality.qualitative.test.line',
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
</record>
|
||||
<record model="ir.rule" id="rule_quality">
|
||||
<field name="domain"
|
||||
eval="[('company', 'in', Eval('user', {}).get('company', -1))]"
|
||||
eval="[('company', '=', Eval('user', {}).get('company', -1))]"
|
||||
pyson="1"/>
|
||||
<field name="rule_group" ref="rule_group_quality"/>
|
||||
</record>
|
||||
|
|
24
setup.py
24
setup.py
|
@ -10,6 +10,8 @@ try:
|
|||
except ImportError:
|
||||
from ConfigParser import ConfigParser
|
||||
|
||||
MODULE = 'quality_control'
|
||||
PREFIX = 'nantic'
|
||||
MODULE2PREFIX = {}
|
||||
|
||||
|
||||
|
@ -39,9 +41,6 @@ version = info.get('version', '0.0.1')
|
|||
major_version, minor_version, _ = version.split('.', 2)
|
||||
major_version = int(major_version)
|
||||
minor_version = int(minor_version)
|
||||
name = 'nantic_quality_control'
|
||||
download_url = ('https://bitbucket.org/nantic/'
|
||||
'trytond-quality_control')
|
||||
|
||||
requires = []
|
||||
for dep in info.get('depends', []):
|
||||
|
@ -56,22 +55,22 @@ if minor_version % 2:
|
|||
# Add development index for testing with proteus
|
||||
dependency_links.append('https://trydevpi.tryton.org/')
|
||||
|
||||
setup(name=name,
|
||||
setup(name='%s_%s' % (PREFIX, MODULE),
|
||||
version=version,
|
||||
description='Tryton Quality Control Module',
|
||||
long_description=read('README'),
|
||||
author='NaN·tic',
|
||||
author_email='info@nan-tic.com',
|
||||
url='http://www.nan-tic.com/',
|
||||
download_url=download_url,
|
||||
download_url="https://bitbucket.org/nantic/trytond-%s" % MODULE,
|
||||
keywords='',
|
||||
package_dir={'trytond.modules.quality_control': '.'},
|
||||
package_dir={'trytond.modules.%s' % MODULE: '.'},
|
||||
packages=[
|
||||
'trytond.modules.quality_control',
|
||||
'trytond.modules.quality_control.tests',
|
||||
'trytond.modules.%s' % MODULE,
|
||||
'trytond.modules.%s.tests' % MODULE,
|
||||
],
|
||||
package_data={
|
||||
'trytond.modules.quality_control': (info.get('xml', [])
|
||||
'trytond.modules.%s' % MODULE: (info.get('xml', [])
|
||||
+ ['tryton.cfg', 'view/*.xml', 'locale/*.po', '*.odt',
|
||||
'icons/*.svg', 'tests/*.rst']),
|
||||
},
|
||||
|
@ -100,12 +99,13 @@ setup(name=name,
|
|||
zip_safe=False,
|
||||
entry_points="""
|
||||
[trytond.modules]
|
||||
quality_control = trytond.modules.quality_control
|
||||
""",
|
||||
%s = trytond.modules.%s
|
||||
""" % (MODULE, MODULE),
|
||||
test_suite='tests',
|
||||
test_loader='trytond.test_loader:Loader',
|
||||
tests_require=tests_require,
|
||||
use_2to3=True,
|
||||
convert_2to3_doctests=[
|
||||
'tests/scenario_quality_control.rst'],
|
||||
'tests/scenario_quality_control.rst',
|
||||
],
|
||||
)
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
# The COPYRIGHT file at the top level of this repository contains the full
|
||||
# copyright notices and license terms.
|
||||
try:
|
||||
from trytond.modules.quality_control.tests.test_quality_control import suite
|
||||
except ImportError:
|
||||
from .test_quality_control import suite
|
||||
|
||||
from .test_quality_control import suite
|
||||
__all__ = ['suite']
|
||||
|
|
|
@ -8,33 +8,20 @@ Imports::
|
|||
>>> from decimal import Decimal
|
||||
>>> from operator import attrgetter
|
||||
>>> from proteus import config, Model, Wizard
|
||||
>>> from trytond.tests.tools import activate_modules
|
||||
>>> from trytond.modules.company.tests.tools import create_company, \
|
||||
... get_company
|
||||
>>> today = datetime.date.today()
|
||||
|
||||
Create database::
|
||||
|
||||
>>> config = config.set_trytond()
|
||||
>>> config.pool.test = True
|
||||
|
||||
Install quality_test module::
|
||||
|
||||
>>> Module = Model.get('ir.module')
|
||||
>>> quality_test_module, = Module.find(
|
||||
... [('name', '=', 'quality_control')])
|
||||
>>> Module.install([quality_test_module.id], config.context)
|
||||
>>> Wizard('ir.module.install_upgrade').execute('upgrade')
|
||||
>>> config = activate_modules('quality_control')
|
||||
|
||||
Create company::
|
||||
|
||||
>>> _ = create_company()
|
||||
>>> company = get_company()
|
||||
|
||||
Reload the context::
|
||||
|
||||
>>> User = Model.get('res.user')
|
||||
>>> config._context = User.get_preferences(True, config.context)
|
||||
|
||||
Create product::
|
||||
|
||||
>>> ProductUom = Model.get('product.uom')
|
||||
|
@ -55,17 +42,13 @@ Create product::
|
|||
Create Quality Configuration::
|
||||
|
||||
>>> Sequence = Model.get('ir.sequence')
|
||||
>>> sequence = Sequence.find([('code','=','quality.test')])[0]
|
||||
>>> Configuration = Model.get('quality.configuration')
|
||||
>>> configuration = Configuration()
|
||||
>>> configuration.name = 'Configuration'
|
||||
>>> Product = Model.get('product.product')
|
||||
>>> ConfigLine = Model.get('quality.configuration.line')
|
||||
>>> config_line = ConfigLine()
|
||||
>>> configuration.allowed_documents.append(config_line)
|
||||
>>> IrModel = Model.get('ir.model')
|
||||
>>> sequence, = Sequence.find([('code', '=', 'quality.test')])
|
||||
>>> configuration = Configuration(1)
|
||||
>>> config_line = configuration.allowed_documents.new()
|
||||
>>> config_line.quality_sequence = sequence
|
||||
>>> models = Model.get('ir.model')
|
||||
>>> allowed_doc, = models.find([('model','=','product.product')])
|
||||
>>> allowed_doc, = IrModel.find([('model','=','product.product')])
|
||||
>>> config_line.document = allowed_doc
|
||||
>>> configuration.save()
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ import unittest
|
|||
import doctest
|
||||
import trytond.tests.test_tryton
|
||||
from trytond.tests.test_tryton import ModuleTestCase
|
||||
from trytond.tests.test_tryton import doctest_setup, doctest_teardown
|
||||
from trytond.tests.test_tryton import doctest_teardown
|
||||
from trytond.tests.test_tryton import doctest_checker
|
||||
|
||||
|
||||
|
@ -19,7 +19,7 @@ def suite():
|
|||
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestCase))
|
||||
suite.addTests(doctest.DocFileSuite(
|
||||
'scenario_quality_test.rst',
|
||||
setUp=doctest_setup, tearDown=doctest_teardown, encoding='utf-8',
|
||||
tearDown=doctest_teardown, encoding='utf-8',
|
||||
checker=doctest_checker,
|
||||
optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
|
||||
return suite
|
||||
|
|
10
tox.ini
10
tox.ini
|
@ -1,14 +1,18 @@
|
|||
[tox]
|
||||
envlist = py27-{sqlite,postgresql}
|
||||
envlist = {py27,py34,py35,py36}-{sqlite,postgresql,mysql},pypy-{sqlite,postgresql}
|
||||
|
||||
[testenv]
|
||||
commands = {envpython} setup.py test
|
||||
deps =
|
||||
py27-postgresql: psycopg2 >= 2.0
|
||||
{py27,py34,py35,py36}-postgresql: psycopg2 >= 2.5
|
||||
pypy-postgresql: psycopg2cffi >= 2.5
|
||||
mysql: MySQL-python
|
||||
sqlite: sqlitebck
|
||||
setenv =
|
||||
sqlite: TRYTOND_DATABASE_URI={env:SQLITE_URI:sqlite://}
|
||||
postgresql: TRYTOND_DATABASE_URI={env:POSTGRESQL_URI:postgresql://}
|
||||
mysql: TRYTOND_DATABASE_URI={env:MYSQL_URI:mysql://}
|
||||
sqlite: DB_NAME={env:SQLITE_NAME::memory:}
|
||||
postgresql: DB_NAME={env:POSTGRESQL_NAME:test}
|
||||
install_command = pip install --pre --find-links https://trydevpi.tryton.org/ {opts} {packages}
|
||||
mysql: DB_NAME={env:MYSQL_NAME:test}
|
||||
install_command = pip install --pre --find-links https://trydevpi.tryton.org/ --process-dependency-links {opts} {packages}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[tryton]
|
||||
version=4.1.0
|
||||
version=4.7.0
|
||||
depends:
|
||||
company
|
||||
currency
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- The COPYRIGHT file at the top level of this repository contains the full
|
||||
copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="/form"
|
||||
position="inside">
|
||||
<field name="quality_controls" colspan="6"/>
|
||||
</xpath>
|
||||
</data>
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<form string="Quality Configuration">
|
||||
<form>
|
||||
<field name="allowed_documents" colspan="4"/>
|
||||
</form>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<form string="Quality Documents">
|
||||
<form>
|
||||
<label name="document"/>
|
||||
<field name="document"/>
|
||||
<label name="company"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<tree string="Quality Document">
|
||||
<tree>
|
||||
<field name="company"/>
|
||||
<field name="configuration"/>
|
||||
<field name="document"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<form string="Proof">
|
||||
<form>
|
||||
<label name="name"/>
|
||||
<field name="name"/>
|
||||
<label name="type"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<form string="Quality Proof Methods">
|
||||
<form>
|
||||
<label name="name"/>
|
||||
<field name="name"/>
|
||||
<label name="active"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<tree string="Quality Proof Methods">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="proof"/>
|
||||
<field name="active" tree_invisible="1"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<tree string="Model">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="type"/>
|
||||
<field name="company"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<form string="Qualitative Template Line">
|
||||
<form>
|
||||
<label name="template"/>
|
||||
<field name="template" colspan="3"/>
|
||||
<label name="name"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<tree string="Qualitative Template Lines">
|
||||
<tree>
|
||||
<field name="template"/>
|
||||
<field name="name"/>
|
||||
<field name="proof"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<form string="Qualitative Test Line">
|
||||
<form>
|
||||
<label name="test"/>
|
||||
<field name="test" colspan="3"/>
|
||||
<label name="name"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<tree string="Qualitative Test Lines" editable="bottom">
|
||||
<tree editable="bottom">
|
||||
<field name="test"/>
|
||||
<field name="name"/>
|
||||
<field name="proof"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<form string="Qualitative Value">
|
||||
<form>
|
||||
<label name="name"/>
|
||||
<field name="name"/>
|
||||
<label name="method"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<tree string="Qualitative Value" editable="bottom">
|
||||
<tree editable="bottom">
|
||||
<field name="method"/>
|
||||
<field name="name"/>
|
||||
<field name="active" tree_invisible="1"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<form string="Quantitative Template Line">
|
||||
<form>
|
||||
<label name="template"/>
|
||||
<field name="template" colspan="3"/>
|
||||
<label name="name"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<tree string="Quantitative Template Lines">
|
||||
<tree>
|
||||
<field name="template"/>
|
||||
<field name="name"/>
|
||||
<field name="proof"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<form string="Quantitative Test Line">
|
||||
<form>
|
||||
<label name="test"/>
|
||||
<field name="test" colspan="3"/>
|
||||
<label name="name"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<tree string="Quantitative Test Lines" editable="bottom">
|
||||
<tree editable="bottom">
|
||||
<field name="test"/>
|
||||
<field name="name"/>
|
||||
<field name="proof"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<form string="Quality Template">
|
||||
<form>
|
||||
<label name="name"/>
|
||||
<field name="name"/>
|
||||
<label name="active"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- The COPYRIGHT file at the top level of this repository contains the full
|
||||
copyright notices and license terms. -->
|
||||
<form string="Template Line">
|
||||
<form>
|
||||
<label name="type"/>
|
||||
<field name="type"/>
|
||||
<label name="template"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- The COPYRIGHT file at the top level of this repository contains the full
|
||||
copyright notices and license terms. -->
|
||||
<tree string="Template Lines" sequence="sequence">
|
||||
<tree sequence="sequence">
|
||||
<field name="template"/>
|
||||
<field name="type"/>
|
||||
<field name="name"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<tree string="Model">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="company"/>
|
||||
<field name="document"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<form string="Quality Test">
|
||||
<form>
|
||||
<group col="6" colspan="4" id="essential_data">
|
||||
<label name="number"/>
|
||||
<field name="number"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- The COPYRIGHT file at the top level of this repository contains the full
|
||||
copyright notices and license terms. -->
|
||||
<form string="Test Line">
|
||||
<form>
|
||||
<label name="type"/>
|
||||
<field name="type"/>
|
||||
<label name="test"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- The COPYRIGHT file at the top level of this repository contains the full
|
||||
copyright notices and license terms. -->
|
||||
<tree string="Test Lines" sequence="sequence">
|
||||
<tree sequence="sequence">
|
||||
<field name="test"/>
|
||||
<field name="type"/>
|
||||
<field name="name"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--The COPYRIGHT file at the top level of this repository
|
||||
contains the full copyright notices and license terms. -->
|
||||
<tree string="Quality Test">
|
||||
<tree>
|
||||
<field name="number"/>
|
||||
<field name="company"/>
|
||||
<field name="document"/>
|
||||
|
|
Loading…
Reference in New Issue