1212import logging
1313import re
1414import warnings
15+ from ast import literal_eval
1516
1617import psycopg2
1718from psycopg2 import sql
2526try :
2627 from odoo import release
2728 from odoo .tools .misc import mute_logger
28- from odoo .tools .safe_eval import safe_eval
2929except ImportError :
3030 from openerp import release
3131 from openerp .tools .misc import mute_logger
32- from openerp .tools .safe_eval import safe_eval
3332
3433from .domains import FALSE_LEAF , TRUE_LEAF
3534
@@ -47,7 +46,7 @@ def make_index_name(table_name, column_name):
4746from .exceptions import SleepyDeveloperError
4847from .helpers import _dashboard_actions , _validate_model , resolve_model_fields_path , table_of_model
4948from .inherit import for_each_inherit
50- from .misc import SelfPrintEvalContext , log_progress , version_gte
49+ from .misc import log_progress , safe_eval , version_gte
5150from .orm import env , invalidate
5251from .pg import (
5352 SQLStr ,
@@ -117,7 +116,7 @@ def _remove_field_from_filters(cr, model, field):
117116 [model , r"\y{}\y" .format (field )],
118117 )
119118 for id_ , name , context_s in cr .fetchall ():
120- context = safe_eval (context_s or "{}" , SelfPrintEvalContext (), nocopy = True )
119+ context = safe_eval (context_s or "{}" )
121120 changed = _remove_field_from_context (context , field )
122121 cr .execute ("UPDATE ir_filters SET context = %s WHERE id = %s" , [unicode (context ), id_ ])
123122 if changed :
@@ -206,7 +205,7 @@ def remove_field(cr, model, fieldname, cascade=False, drop_column=True, skip_inh
206205
207206 # clean dashboard's contexts
208207 for id_ , action in _dashboard_actions (cr , r"\y{}\y" .format (fieldname ), model ):
209- context = safe_eval (action .get ("context" , "{}" ), SelfPrintEvalContext (), nocopy = True )
208+ context = safe_eval (action .get ("context" , "{}" ))
210209 changed = _remove_field_from_context (context , fieldname )
211210 action .set ("context" , unicode (context ))
212211 if changed :
@@ -350,7 +349,7 @@ def adapter(leaf, is_or, negated):
350349 )
351350 for alias_id , defaults_s in cr .fetchall ():
352351 try :
353- defaults = dict (safe_eval (defaults_s )) # XXX literal_eval should works.
352+ defaults = dict (literal_eval (defaults_s ))
354353 except Exception :
355354 continue
356355 defaults .pop (fieldname , None )
@@ -1347,7 +1346,6 @@ def _update_field_usage_multi(cr, models, old, new, domain_adapter=None, skip_in
13471346
13481347 # ir.ui.view.custom
13491348 # adapt the context. The domain will be done by `adapt_domain`
1350- eval_context = SelfPrintEvalContext ()
13511349 def_old = "default_{}" .format (old )
13521350 def_new = "default_{}" .format (new )
13531351 match = "{0[old]}|{0[def_old]}" .format (p )
@@ -1387,7 +1385,7 @@ def adapt_dict(d):
13871385 adapt_dict (d [vt ])
13881386
13891387 for _ , act in _dashboard_actions (cr , match , * only_models or ()):
1390- context = safe_eval (act .get ("context" , "{}" ), eval_context , nocopy = True )
1388+ context = safe_eval (act .get ("context" , "{}" ))
13911389 adapt_dict (context )
13921390
13931391 if def_old in context :
0 commit comments