File tree 6 files changed +63
-6
lines changed
base_tier_validation_server_action
6 files changed +63
-6
lines changed Original file line number Diff line number Diff line change 1
1
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
2
2
3
3
from . import models
4
+ from . import wizard
Original file line number Diff line number Diff line change 2
2
3
3
from . import tier_definition
4
4
from . import tier_review
5
+ from . import tier_validation
Original file line number Diff line number Diff line change @@ -9,13 +9,9 @@ class TierReview(models.Model):
9
9
10
10
def write (self , vals ):
11
11
res = super ().write (vals )
12
- if vals .get ("status" ) in [ "approved" , "rejected" ] :
12
+ if vals .get ("status" ) == "approved" :
13
13
for rec in self :
14
- server_action = False
15
- if rec .status == "approved" :
16
- server_action = rec .definition_id .server_action_id
17
- if rec .status == "rejected" :
18
- server_action = rec .definition_id .rejected_server_action_id
14
+ server_action = rec .definition_id .server_action_id
19
15
server_action_tier = self .env .context .get ("server_action_tier" )
20
16
# Don't allow reentrant server action as it will lead to
21
17
# recursive behaviour
Original file line number Diff line number Diff line change
1
+ # Copyright 2023 Ecosoft (http://ecosoft.co.th)
2
+ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3
+
4
+ from odoo import models
5
+
6
+
7
+ class TierValidation (models .AbstractModel ):
8
+ _inherit = "tier.validation"
9
+
10
+ def reject_tier (self ):
11
+ self .ensure_one ()
12
+ res = super ().reject_tier ()
13
+ review = self .review_ids [- 1 ]
14
+ server_action = review .definition_id .rejected_server_action_id
15
+ server_action_tier = self .env .context .get ("server_action_tier" )
16
+ # Don't allow reentrant server action as it will lead to
17
+ # recursive behaviour
18
+ if (
19
+ not self .has_comment
20
+ and server_action
21
+ and (not server_action_tier or server_action_tier != server_action .id )
22
+ ):
23
+ server_action .with_context (
24
+ server_action_tier = server_action .id ,
25
+ active_model = review .model ,
26
+ active_id = review .res_id ,
27
+ ).sudo ().run ()
28
+ return res
Original file line number Diff line number Diff line change
1
+ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
2
+
3
+ from . import comment_wizard
Original file line number Diff line number Diff line change
1
+ # Copyright 2023 Ecosoft Co., Ltd. (http://ecosoft.co.th)
2
+ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3
+
4
+ from odoo import models
5
+
6
+
7
+ class CommentWizard (models .TransientModel ):
8
+ _inherit = "comment.wizard"
9
+
10
+ def add_comment (self ):
11
+ """For case reject only"""
12
+ res = super ().add_comment ()
13
+ validate_reject = self ._context .get ("default_validate_reject" )
14
+ if validate_reject == "reject" :
15
+ review = self .review_ids [- 1 ]
16
+ reject_server_action = review .definition_id .rejected_server_action_id
17
+ server_action_tier = self .env .context .get ("server_action_tier" )
18
+ # Don't allow reentrant server action as it will lead to
19
+ # recursive behaviour
20
+ if reject_server_action and (
21
+ not server_action_tier or server_action_tier != reject_server_action .id
22
+ ):
23
+ reject_server_action .with_context (
24
+ server_action_tier = reject_server_action .id ,
25
+ active_model = review .model ,
26
+ active_id = review .res_id ,
27
+ ).sudo ().run ()
28
+ return res
You can’t perform that action at this time.
0 commit comments