55from odoo import fields , models
66from odoo .exceptions import UserError
77from odoo .tools .misc import clean_context
8- from odoo .tools .translate import _
98
109
1110class DocumentPageHistory (models .Model ):
@@ -37,18 +36,22 @@ class DocumentPageHistory(models.Model):
3736
3837 am_i_owner = fields .Boolean (compute = "_compute_am_i_owner" )
3938
40- am_i_approver = fields .Boolean (related = "page_id.am_i_approver" , related_sudo = False )
39+ am_i_approver = fields .Boolean (
40+ related = "page_id.am_i_approver" , related_sudo = False
41+ )
4142
4243 page_url = fields .Text (compute = "_compute_page_url" , string = "URL" )
4344
4445 def action_draft (self ):
4546 """Set a change request as draft"""
4647 for rec in self :
4748 if not rec .state == "cancelled" :
48- raise UserError (_ ("You need to cancel it before reopening." ))
49+ raise UserError (
50+ self .env ._ ("You need to cancel it before reopening." )
51+ )
4952 if not (rec .am_i_owner or rec .am_i_approver ):
5053 raise UserError (
51- _ (
54+ self . env . _ (
5255 "You are not authorized to do this.\r \n "
5356 "Only owners or approvers can reopen Change Requests."
5457 )
@@ -65,10 +68,12 @@ def action_to_approve(self):
6568 )
6669 for rec in self :
6770 if rec .state != "draft" :
68- raise UserError (_ ("Can't approve pages in '%s' state." ) % rec .state )
71+ raise UserError (
72+ self .env ._ ("Can't approve pages in '%s' state." , rec .state )
73+ )
6974 if not (rec .am_i_owner or rec .am_i_approver ):
7075 raise UserError (
71- _ (
76+ self . env . _ (
7277 "You are not authorized to do this.\r \n "
7378 "Only owners or approvers can request approval."
7479 )
@@ -78,9 +83,14 @@ def action_to_approve(self):
7883 rec .write ({"state" : "to approve" })
7984 guids = [g .id for g in rec .page_id .approver_group_ids ]
8085 users = self .env ["res.users" ].search (
81- [("groups_id" , "in" , guids ), ("groups_id" , "in" , approver_gid .id )]
86+ [
87+ ("group_ids" , "in" , guids ),
88+ ("group_ids" , "in" , approver_gid .id ),
89+ ]
90+ )
91+ rec .message_subscribe (
92+ partner_ids = users .mapped ("partner_id" ).ids
8293 )
83- rec .message_subscribe (partner_ids = users .mapped ("partner_id" ).ids )
8494 # pylint: disable=W8121
8595 rec .with_context (
8696 clean_context (self .env .context )
@@ -93,24 +103,29 @@ def action_approve(self):
93103 """Set a change request as approved."""
94104 for rec in self :
95105 if rec .state not in ["draft" , "to approve" ]:
96- raise UserError (_ ("Can't approve page in '%s' state." ) % rec .state )
106+ raise UserError (
107+ self .env ._ (
108+ "Can't approve page in '%s' state." , rec .state
109+ )
110+ )
97111 if not rec .am_i_approver :
98112 raise UserError (
99- _ (
113+ self . env . _ (
100114 "You are not authorized to do this.\r \n "
101- "Only approvers with these groups can approve this: {} "
102- ). format (
115+ "Only approvers with these groups can approve"
116+ " this: %s" ,
103117 ", " .join (
104- [g .display_name for g in rec .page_id .approver_group_ids ]
105- )
118+ g .display_name
119+ for g in rec .page_id .approver_group_ids
120+ ),
106121 )
107122 )
108123
109124 # Update state
110125 rec .write (
111126 {
112127 "state" : "approved" ,
113- "approved_date" : fields .datetime .now (),
128+ "approved_date" : fields .Datetime .now (),
114129 "approved_uid" : self .env .uid ,
115130 }
116131 )
@@ -119,13 +134,18 @@ def action_approve(self):
119134 # Notify state change
120135 rec .message_post (
121136 subtype_xmlid = "mail.mt_comment" ,
122- body = _ ("Change request has been approved by %s." )
123- % (self .env .user .name ),
137+ body = self .env ._ (
138+ "Change request has been approved by %s." ,
139+ self .env .user .name ,
140+ ),
124141 )
125142 # Notify followers a new version is available
126143 rec .page_id .message_post (
127144 subtype_xmlid = "mail.mt_comment" ,
128- body = _ ("New version of the document %s approved." ) % (rec .page_id .name ),
145+ body = self .env ._ (
146+ "New version of the document %s approved." ,
147+ rec .page_id .name ,
148+ ),
129149 )
130150
131151 def action_cancel (self ):
@@ -134,8 +154,12 @@ def action_cancel(self):
134154 for rec in self :
135155 rec .message_post (
136156 subtype_xmlid = "mail.mt_comment" ,
137- body = _ ("Change request <b>%(name)s</b> has been cancelled by %(user)s." )
138- % ({"name" : rec .display_name , "user" : self .env .user .name }),
157+ body = self .env ._ (
158+ "Change request <b>%(name)s</b> has been"
159+ " cancelled by %(user)s." ,
160+ name = rec .display_name ,
161+ user = self .env .user .name ,
162+ ),
139163 )
140164
141165 def action_cancel_and_draft (self ):
@@ -166,10 +190,15 @@ def _compute_diff(self):
166190 """Shows a diff between this version and the previous version"""
167191 history = self .env ["document.page.history" ]
168192 for rec in self :
169- domain = [("page_id" , "=" , rec .page_id .id ), ("state" , "=" , "approved" )]
193+ domain = [
194+ ("page_id" , "=" , rec .page_id .id ),
195+ ("state" , "=" , "approved" ),
196+ ]
170197 if rec .approved_date :
171198 domain .append (("approved_date" , "<" , rec .approved_date ))
172- prev = history .search (domain , limit = 1 , order = "approved_date DESC" )
199+ prev = history .search (
200+ domain , limit = 1 , order = "approved_date DESC"
201+ )
173202 if prev :
174203 rec .diff = self ._get_diff (prev .id , rec .id )
175204 else :
0 commit comments