Update to 4.7

This commit is contained in:
C?dric Krier 2018-02-01 16:32:41 +01:00
parent 997741055d
commit 5b891e4ca2
39 changed files with 138 additions and 236 deletions

49
.drone.yml Normal file
View File

@ -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

View File

@ -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')

View File

@ -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)

View File

@ -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)

View File

@ -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>

View File

@ -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',

View File

@ -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>

View File

@ -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',
],
)

View File

@ -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']

View File

@ -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()

View File

@ -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
View File

@ -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}

View File

@ -1,5 +1,5 @@
[tryton]
version=4.1.0
version=4.7.0
depends:
company
currency

View File

@ -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>

View File

@ -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>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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"/>