mirror of
https://gitlab.com/flectra-community/server-ux.git
synced 2024-11-24 07:02:07 +00:00
114 lines
3.3 KiB
Python
114 lines
3.3 KiB
Python
# Copyright 2018-19 ForgeFlow S.L. (https://www.forgeflow.com)
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
|
|
from flectra import api, fields, models
|
|
|
|
|
|
class TierValidationTester(models.Model):
|
|
_name = "tier.validation.tester"
|
|
_description = "Tier Validation Tester"
|
|
_inherit = ["tier.validation", "mail.thread"]
|
|
_tier_validation_manual_config = True
|
|
|
|
state = fields.Selection(
|
|
selection=[
|
|
("draft", "Draft"),
|
|
("confirmed", "Confirmed"),
|
|
("cancel", "Cancel"),
|
|
],
|
|
default="draft",
|
|
)
|
|
test_validation_field = fields.Integer(default=0)
|
|
test_field = fields.Float()
|
|
user_id = fields.Many2one(string="Assigned to:", comodel_name="res.users")
|
|
|
|
def action_confirm(self):
|
|
self.write({"state": "confirmed"})
|
|
|
|
|
|
class TierValidationTester2(models.Model):
|
|
_name = "tier.validation.tester2"
|
|
_description = "Tier Validation Tester 2"
|
|
_inherit = ["tier.validation"]
|
|
_tier_validation_manual_config = False
|
|
|
|
state = fields.Selection(
|
|
selection=[
|
|
("draft", "Draft"),
|
|
("confirmed", "Confirmed"),
|
|
("cancel", "Cancel"),
|
|
],
|
|
default="draft",
|
|
)
|
|
test_field = fields.Float()
|
|
test_validation_field = fields.Float()
|
|
user_id = fields.Many2one(string="Assigned to:", comodel_name="res.users")
|
|
|
|
def action_confirm(self):
|
|
self.write({"state": "confirmed"})
|
|
|
|
|
|
class TierValidationTesterComputed(models.Model):
|
|
_name = "tier.validation.tester.computed"
|
|
_description = "Tier Validation Tester Computed"
|
|
_inherit = ["tier.validation"]
|
|
_tier_validation_manual_config = False
|
|
_tier_validation_state_field_is_computed = True
|
|
|
|
confirmed = fields.Boolean()
|
|
cancelled = fields.Boolean()
|
|
state = fields.Selection(
|
|
selection=[
|
|
("draft", "Draft"),
|
|
("confirmed", "Confirmed"),
|
|
("cancel", "Cancel"),
|
|
],
|
|
compute="_compute_state",
|
|
store=True,
|
|
)
|
|
test_field = fields.Float()
|
|
test_validation_field = fields.Float()
|
|
user_id = fields.Many2one(string="Assigned to:", comodel_name="res.users")
|
|
|
|
@api.model
|
|
def _get_after_validation_exceptions(self):
|
|
return super()._get_after_validation_exceptions() + [
|
|
"confirmed",
|
|
"cancelled",
|
|
]
|
|
|
|
@api.model
|
|
def _get_under_validation_exceptions(self):
|
|
return super()._get_under_validation_exceptions() + [
|
|
"confirmed",
|
|
"cancelled",
|
|
]
|
|
|
|
@api.depends("confirmed", "cancelled")
|
|
def _compute_state(self):
|
|
for rec in self:
|
|
if rec.cancelled:
|
|
rec.state = "cancel"
|
|
elif rec.confirmed:
|
|
rec.state = "confirmed"
|
|
else:
|
|
rec.state = "draft"
|
|
|
|
def action_confirm(self):
|
|
self.write({"confirmed": True})
|
|
|
|
def action_cancel(self):
|
|
self.write({"cancelled": True})
|
|
|
|
|
|
class TierDefinition(models.Model):
|
|
_inherit = "tier.definition"
|
|
|
|
@api.model
|
|
def _get_tier_validation_model_names(self):
|
|
res = super()._get_tier_validation_model_names()
|
|
res.append("tier.validation.tester")
|
|
res.append("tier.validation.tester2")
|
|
res.append("tier.validation.tester.computed")
|
|
return res
|