Use CompanyValueMixin + FIX create production quality tests

#044153
This commit is contained in:
Raimon Esteve 2022-07-12 15:51:57 +02:00 committed by GitHub
parent 10cf1c8148
commit 0a3a40c489
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 22 deletions

View File

@ -8,6 +8,8 @@ from trytond.pyson import Eval
from trytond.transaction import Transaction
from trytond.exceptions import UserError
from trytond.i18n import gettext
from trytond.modules.company.model import (
CompanyMultiValueMixin, CompanyValueMixin)
class Template(metaclass=PoolMeta):
@ -18,17 +20,15 @@ class Template(metaclass=PoolMeta):
class Production(metaclass=PoolMeta):
__name__ = 'production'
quality_templates = fields.Function(fields.One2Many(
'product.template-quality.template', None, "Quality Templates"),
'product.template-quality.template', None, "Quality Templates"),
'get_quality_templates')
quality_tests = fields.One2Many('quality.test', 'document', 'Quality Tests',
quality_tests = fields.One2Many('quality.test', 'document', "Quality Tests",
context={
'default_quality_templates': Eval('quality_templates'),
},
depends=['quality_templates'])
time_since_quality_control = fields.DateTime('Time since quality control',
time_since_quality_control = fields.DateTime("Time since quality control",
readonly=True)
def get_quality_templates(self, name):
@ -66,20 +66,18 @@ class Production(metaclass=PoolMeta):
to_save = []
for production in productions:
for quality_template in production.quality_templates:
total_time_since_quality_control = (datetime.now() -
production.time_since_quality_control).seconds/60
if (total_time_since_quality_control >=
quality_template.interval):
for quality_contol in range(int(
total_time_since_quality_control/
quality_template.interval)):
total_time_since_quality_control = (datetime.now() -
production.time_since_quality_control).seconds / 60
for qt in production.quality_templates:
interval = qt.interval
if (total_time_since_quality_control >= interval):
start = int(total_time_since_quality_control / interval)
for quality_contol in range(start):
test = QualityTest()
test.document = production
test.templates = [quality_template.quality_template]
test.company = quality_template.company
test.templates = [qt.quality_template]
test.company = qt.company
to_save.append(test)
production.time_since_quality_control = datetime.now()
cls.save(productions)
@ -91,20 +89,18 @@ class Production(metaclass=PoolMeta):
def create_quality_tests_worker(cls):
productions = cls.search([
('state','=','running')
])
])
for production in productions:
with Transaction().set_context(queue_name='production'):
cls.__queue__.create_quality_tests([production])
class ProductionTemplate(ModelSQL, ModelView):
class ProductionTemplate(ModelSQL, ModelView, CompanyValueMixin):
"Production Template"
__name__ = 'product.template-quality.template'
template = fields.Many2One('product.template', "Template",required=True,
template = fields.Many2One('product.template', "Template", required=True,
ondelete="CASCADE")
company = fields.Many2One('company.company', "Company", required=True)
interval = fields.Integer("Interval", required=True,
help="Interval in minutes")
quality_template = fields.Many2One('quality.template', "Quality Template",
@ -112,4 +108,4 @@ class ProductionTemplate(ModelSQL, ModelView):
@classmethod
def default_company(cls):
return Transaction().context.get('company')
return Transaction().context.get('company')

View File

@ -1,6 +1,7 @@
[tryton]
version=5.4.0
depends:
company
production
quality_control
extras_depend: