1
1
# Copyright 2025 Quartile (https://www.quartile.co)
2
2
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3
3
4
+ import datetime as dt
4
5
import logging
5
6
import time
6
- import datetime as dt
7
7
from functools import lru_cache
8
8
from string import Template
9
9
23
23
24
24
_SIMPLE_FIELD_TYPES = frozenset (
25
25
{
26
- "char" , "text" , "html" , "selection" , "boolean" ,
27
- "integer" , "float" , "monetary" , "date" , "datetime" ,
26
+ "char" ,
27
+ "text" ,
28
+ "html" ,
29
+ "selection" ,
30
+ "boolean" ,
31
+ "integer" ,
32
+ "float" ,
33
+ "monetary" ,
34
+ "date" ,
35
+ "datetime" ,
28
36
}
29
37
)
30
38
@@ -110,7 +118,7 @@ class WebFormBannerRule(models.Model):
110
118
string = "Position" ,
111
119
default = "before" ,
112
120
required = True ,
113
- help = "Where to insert the placeholder relative to the first matched node."
121
+ help = "Where to insert the placeholder relative to the first matched node." ,
114
122
)
115
123
severity = fields .Selection (
116
124
[("info" , "Info" ), ("warning" , "Warning" ), ("danger" , "Danger" )],
@@ -126,7 +134,7 @@ class WebFormBannerRule(models.Model):
126
134
message_is_html = fields .Boolean (
127
135
"HTML" ,
128
136
help = "If checked, 'message' is treated as raw HTML (no escaping). "
129
- "If not checked, the rendered text is escaped and newlines become <br/>."
137
+ "If not checked, the rendered text is escaped and newlines become <br/>." ,
130
138
)
131
139
message_value_code = fields .Text (
132
140
help = "Python expression evaluated server-side. Must return a dict.\n "
@@ -157,8 +165,10 @@ def _build_form_url(self, rec):
157
165
try :
158
166
if not rec or not getattr (rec , "id" , None ):
159
167
return ""
160
- base = self .env ["ir.config_parameter" ].sudo ().get_param (
161
- "web.base.url" , default = ""
168
+ base = (
169
+ self .env ["ir.config_parameter" ]
170
+ .sudo ()
171
+ .get_param ("web.base.url" , default = "" )
162
172
)
163
173
return "%s/web#id=%d&model=%s&view_type=form" % (base , rec .id , rec ._name )
164
174
except Exception :
@@ -273,7 +283,8 @@ def compute_message(self, rule_id, model, res_id, form_vals=None):
273
283
if not visible :
274
284
return {"visible" : False }
275
285
values = out .get ("values" ) or {
276
- k : v for k , v in out .items ()
286
+ k : v
287
+ for k , v in out .items ()
277
288
if k not in {"visible" , "severity" , "values" , "html" }
278
289
}
279
290
html = self ._render_html (rule , values , out .get ("html" ))
0 commit comments