Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions base_tier_validation/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"views/tier_review_view.xml",
"views/assets_backend.xml",
"wizard/comment_wizard_view.xml",
"wizard/tier_definition_selection_wizard_views.xml",
],
'qweb': [
'static/src/xml/systray.xml',
Expand Down
37 changes: 37 additions & 0 deletions base_tier_validation/models/tier_validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,43 @@ def request_validation(self):
self._notify_review_requested(created_trs)
return created_trs

def action_request_custom_validation(self):
wizard = self.env.ref(
"base_tier_validation.view_tier_validation_selection_wizard")
return {
"name": _("Select Custom Validation"),
"type": "ir.actions.act_window",
"view_mode": "form",
"res_model": "tier.validation.selection.wizard",
"views": [(wizard.id, "form")],
"view_id": wizard.id,
"target": "new",
"context": {
"default_res_id": self.id,
"default_res_model": self._name,
},
}

@api.multi
def request_custom_validation(self, tier_definitions):
tr_obj = created_trs = self.env['tier.review']
for rec in self:
if getattr(rec, self._state_field) in self._state_from:
if rec.need_validation:
sequence = 0
for td in tier_definitions:
sequence += 1
created_trs += tr_obj.create({
'model': self._name,
'res_id': rec.id,
'definition_id': td.id,
'sequence': sequence,
'requested_by': self.env.uid,
})
self._update_counter()
self._notify_review_requested(created_trs)
return created_trs

@api.multi
def restart_validation(self):
for rec in self:
Expand Down
1 change: 1 addition & 0 deletions base_tier_validation/wizard/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import comment_wizard
from . import tier_definition_selection_wizard
29 changes: 29 additions & 0 deletions base_tier_validation/wizard/tier_definition_selection_wizard.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Copyright 2021 ForgeFlow S.L.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from odoo import api, fields, models, _
from odoo.exceptions import ValidationError


class TierDefinitionSelectionWizard(models.TransientModel):
_name = "tier.validation.selection.wizard"
_description = "Tier Definition Selection Wizard"

res_model = fields.Char()
res_id = fields.Integer()

definition_ids = fields.Many2many(
comodel_name="tier.definition",
string="Tier Definitions",
help="Select the definitions to apply for the current's record validation."
)

@api.multi
def request_validation(self):
self.ensure_one()
rec = self.env[self.res_model].browse(self.res_id)
if not self.definition_ids:
raise ValidationError(_(
"You need to select at least one Tier Definition."
))
rec.request_custom_validation(self.definition_ids)
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2021 ForgeFlow S.L.
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>

<record id="view_tier_validation_selection_wizard" model="ir.ui.view">
<field name="name">Tier Validation Selection Wizard</field>
<field name="model">tier.validation.selection.wizard</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Tier Validation Selection">
<group>
<field name="definition_ids" nolabel="1"/>
</group>
<footer>
<button name="request_validation"
string="Request Validation" type="object"
class="oe_highlight"/>
<button special="cancel" string="Cancel" class="oe_link"/>
</footer>
</form>
</field>
</record>

</odoo>