@@ -1011,6 +1011,7 @@ def adapt_dict(d):
1011
1011
# skip all inherit, they will be handled by the resursive call
1012
1012
adapt_domains (cr , model , old , new , adapter = domain_adapter , skip_inherit = "*" , force_adapt = True )
1013
1013
adapt_related (cr , model , old , new , skip_inherit = "*" )
1014
+ adapt_depends (cr , model , old , new , skip_inherit = "*" )
1014
1015
1015
1016
inherited_models = tuple (
1016
1017
inh .model for model in only_models for inh in for_each_inherit (cr , model , skip_inherit )
@@ -1021,6 +1022,41 @@ def adapt_dict(d):
1021
1022
)
1022
1023
1023
1024
1025
+ def adapt_depends (cr , model , old , new , skip_inherit = ()):
1026
+ # adapt depends for custom compute fields only. Standard fields will be updated by the ORM.
1027
+ _validate_model (model )
1028
+
1029
+ if not column_exists (cr , "ir_model_fields" , "depends" ):
1030
+ # this field only appears in 9.0
1031
+ return
1032
+
1033
+ target_model = model
1034
+
1035
+ match_old = r"\y{}\y" .format (re .escape (old ))
1036
+ cr .execute (
1037
+ """
1038
+ SELECT id, model, depends
1039
+ FROM ir_model_fields
1040
+ WHERE state = 'manual'
1041
+ AND depends ~ %s
1042
+ """ ,
1043
+ [match_old ],
1044
+ )
1045
+ for id_ , model , depends in cr .fetchall ():
1046
+ temp_depends = depends .split ("," )
1047
+ for i in range (len (temp_depends )):
1048
+ domain = _adapt_one_domain (cr , target_model , old , new , model , [(temp_depends [i ], "=" , "depends" )])
1049
+ if domain :
1050
+ temp_depends [i ] = domain [0 ][0 ]
1051
+ new_depends = "," .join (temp_depends )
1052
+ if new_depends != depends :
1053
+ cr .execute ("UPDATE ir_model_fields SET depends = %s WHERE id = %s" , [new_depends , id_ ])
1054
+
1055
+ # down on inherits
1056
+ for inh in for_each_inherit (cr , target_model , skip_inherit ):
1057
+ adapt_depends (cr , inh .model , old , new , skip_inherit = skip_inherit )
1058
+
1059
+
1024
1060
def adapt_related (cr , model , old , new , skip_inherit = ()):
1025
1061
_validate_model (model )
1026
1062
0 commit comments