Use declarative index definition for ModelSQL

issue5757
This commit is contained in:
Raimon Esteve 2022-11-08 19:33:32 +01:00
parent 92f86f4b7b
commit c9f4d8ebc2
4 changed files with 18 additions and 20 deletions

View File

@ -51,7 +51,7 @@ class Template(metaclass=PoolMeta):
('clarified-wine', 'Clarified Wine'), ('clarified-wine', 'Clarified Wine'),
('wine', "Wine"), ('wine', "Wine"),
('bottled-wine', "Bottled Wine"), ('bottled-wine', "Bottled Wine"),
], "Agronomic Type", select=True) ], "Agronomic Type")
container = fields.Many2One('agronomics.container', 'Container', container = fields.Many2One('agronomics.container', 'Container',
states={ states={
'invisible': Eval('agronomic_type') != 'bottled-wine', 'invisible': Eval('agronomic_type') != 'bottled-wine',
@ -174,27 +174,27 @@ class ProductCrop(ModelSQL):
"Product - Crop" "Product - Crop"
__name__ = 'product.product-agronomics.crop' __name__ = 'product.product-agronomics.crop'
product = fields.Many2One('product.product', 'Product', product = fields.Many2One('product.product', 'Product',
ondelete='CASCADE', select=True, required=True) ondelete='CASCADE', required=True)
crop = fields.Many2One('agronomics.crop', 'Crop', crop = fields.Many2One('agronomics.crop', 'Crop',
ondelete='CASCADE', select=True, required=True) ondelete='CASCADE', required=True)
class ProductDO(ModelSQL): class ProductDO(ModelSQL):
"Product - DO" "Product - DO"
__name__ = 'product.product-agronomics.denomination_of_origin' __name__ = 'product.product-agronomics.denomination_of_origin'
product = fields.Many2One('product.product', 'Product', product = fields.Many2One('product.product', 'Product',
ondelete='CASCADE', select=True, required=True) ondelete='CASCADE', required=True)
do = fields.Many2One('agronomics.denomination_of_origin', 'DO', do = fields.Many2One('agronomics.denomination_of_origin', 'DO',
ondelete='CASCADE', select=True, required=True) ondelete='CASCADE', required=True)
class ProductEcological(ModelSQL): class ProductEcological(ModelSQL):
"Product - Ecological" "Product - Ecological"
__name__ = 'product.product-agronomics.ecological' __name__ = 'product.product-agronomics.ecological'
product = fields.Many2One('product.product', 'Product', product = fields.Many2One('product.product', 'Product',
ondelete='CASCADE', select=True, required=True) ondelete='CASCADE', required=True)
ecological = fields.Many2One('agronomics.ecological', 'Ecological', ecological = fields.Many2One('agronomics.ecological', 'Ecological',
ondelete='CASCADE', select=True, required=True) ondelete='CASCADE', required=True)
class ProductPriceListType(ModelSQL, ModelView): class ProductPriceListType(ModelSQL, ModelView):

View File

@ -102,18 +102,18 @@ class ProductionTemplateInputsProductTemplate(ModelSQL):
'Production Template Inputs- Product Template' 'Production Template Inputs- Product Template'
__name__ = 'production.template.inputs-product.template' __name__ = 'production.template.inputs-product.template'
production_template = fields.Many2One('production.template', production_template = fields.Many2One('production.template',
'Production Template', ondelete='CASCADE', required=True, select=True) 'Production Template', ondelete='CASCADE', required=True)
template = fields.Many2One('product.template', 'Template', template = fields.Many2One('product.template', 'Template',
ondelete='CASCADE', required=True, select=True) ondelete='CASCADE', required=True)
class ProductionTemplateOutputsProductTemplate(ModelSQL): class ProductionTemplateOutputsProductTemplate(ModelSQL):
'Production Template Inputs- Product Template' 'Production Template Inputs- Product Template'
__name__ = 'production.template.outputs-product.template' __name__ = 'production.template.outputs-product.template'
production_template = fields.Many2One('production.template', production_template = fields.Many2One('production.template',
'Production Template', ondelete='CASCADE', required=True, select=True) 'Production Template', ondelete='CASCADE', required=True)
template = fields.Many2One('product.template', 'Product', template = fields.Many2One('product.template', 'Product',
ondelete='CASCADE', required=True, select=True) ondelete='CASCADE', required=True)
class ProductionTemplateLine(ModelSQL, ModelView): class ProductionTemplateLine(ModelSQL, ModelView):
@ -683,8 +683,7 @@ class OutputDistribution(ModelSQL, ModelView):
class ProductionEnologyProduct(ModelSQL, ModelView): class ProductionEnologyProduct(ModelSQL, ModelView):
'Production Enology Product' 'Production Enology Product'
__name__ = 'production.enology.product' __name__ = 'production.enology.product'
production = fields.Many2One('production', 'Production', production = fields.Many2One('production', 'Production')
select=True)
product = fields.Many2One('product.product', 'Product', required=True) product = fields.Many2One('product.product', 'Product', required=True)
uom = fields.Many2One('product.uom', 'Uom') uom = fields.Many2One('product.uom', 'Uom')
unit_digits = fields.Function(fields.Integer('Unit Digits'), unit_digits = fields.Function(fields.Integer('Unit Digits'),

View File

@ -68,7 +68,7 @@ class QualitySample(ModelSQL, ModelView):
'Quality Sample' 'Quality Sample'
__name__ = 'quality.sample' __name__ = 'quality.sample'
code = fields.Char('Code', select=True, readonly=True) code = fields.Char('Code', readonly=True)
reference = fields.Char('Reference') reference = fields.Char('Reference')
products = fields.Many2Many('product.product-quality.sample', 'sample', products = fields.Many2Many('product.product-quality.sample', 'sample',
'product', "Products", 'product', "Products",
@ -77,8 +77,7 @@ class QualitySample(ModelSQL, ModelView):
}, },
depends=['company']) depends=['company'])
collection_date = fields.DateTime('Collection Date', required=True) collection_date = fields.DateTime('Collection Date', required=True)
company = fields.Many2One('company.company', 'Company', required=True, company = fields.Many2One('company.company', 'Company', required=True)
select=True)
@staticmethod @staticmethod
def default_company(): def default_company():
@ -113,9 +112,9 @@ class ProductQualitySample(ModelSQL):
__name__ = 'product.product-quality.sample' __name__ = 'product.product-quality.sample'
product = fields.Many2One('product.product', 'Product', required=True, product = fields.Many2One('product.product', 'Product', required=True,
ondelete='CASCADE', select=True) ondelete='CASCADE')
sample = fields.Many2One('quality.sample', 'Sample', ondelete='CASCADE', sample = fields.Many2One('quality.sample', 'Sample', ondelete='CASCADE',
required=True, select=True) required=True)
class QualityTest(metaclass=PoolMeta): class QualityTest(metaclass=PoolMeta):
@ -177,7 +176,7 @@ class QualityTest(metaclass=PoolMeta):
class TestLineMixin(Model): class TestLineMixin(Model):
__slots__ = () __slots__ = ()
product = fields.Function(fields.Many2One('product.product', 'Product', select=True), product = fields.Function(fields.Many2One('product.product', 'Product'),
'get_product', searcher='search_product') 'get_product', searcher='search_product')
def get_product(self, name): def get_product(self, name):

View File

@ -30,7 +30,7 @@ class Weighing(Workflow, ModelSQL, ModelView):
__name__ = 'agronomics.weighing' __name__ = 'agronomics.weighing'
_rec_name = 'number' _rec_name = 'number'
number = fields.Char('Number', readonly=True, select=True) number = fields.Char('Number', readonly=True)
weighing_date = fields.Date('Date', states={ weighing_date = fields.Date('Date', states={
'readonly': Eval('state').in_(READONLY), 'readonly': Eval('state').in_(READONLY),
'required': True 'required': True