@@ -754,23 +754,31 @@ impl PythonArchEvalHooks {
754754 let Some ( ContextValue :: STRING ( s) ) = context. get ( & S ! ( "args" ) ) else {
755755 return res
756756 } ;
757- let maybe_model = session. sync_odoo . models . get ( & oyarn ! ( "{}" , s) ) ;
757+ let maybe_model = session. sync_odoo . models . get ( & oyarn ! ( "{}" , s) ) . cloned ( ) ;
758758 let has_class_in_parents = scope. as_ref ( ) . map ( |scope| scope. borrow ( ) . get_in_parents ( & vec ! [ SymType :: CLASS ] , true ) . is_some ( ) ) . unwrap_or ( false ) ;
759- if maybe_model. map ( |m| m. borrow_mut ( ) . has_symbols ( ) ) . unwrap_or ( false ) {
759+ if maybe_model. as_ref ( ) . map ( |m| m. borrow_mut ( ) . has_symbols ( ) ) . unwrap_or ( false ) {
760760 let Some ( model) = maybe_model else { unreachable ! ( ) } ;
761761 let module = context. get ( & S ! ( "module" ) ) ;
762762 let from_module = if let Some ( ContextValue :: MODULE ( m) ) = module {
763763 m. upgrade ( ) . clone ( )
764764 } else {
765765 None
766766 } ;
767- if let Some ( scope ) = scope
767+ if let Some ( scope_file ) = scope
768768 . and_then ( |s| s. borrow ( ) . get_file ( ) )
769769 . and_then ( |w| w. upgrade ( ) ) {
770- let env_files = session. sync_odoo . get_symbol ( session. sync_odoo . config . odoo_path . as_ref ( ) . unwrap ( ) , & ( vec ! [ Sy !( "odoo" ) , Sy !( "api" ) ] , vec ! [ ] ) , u32:: MAX ) ;
771- let env_file = env_files. last ( ) . unwrap ( ) ;
772- if !Rc :: ptr_eq ( env_file, & scope) {
773- scope. borrow_mut ( ) . add_model_dependencies ( model) ;
770+ //exclude orm files
771+ if compare_semver ( session. sync_odoo . full_version . as_str ( ) , "18.1" ) < Ordering :: Equal {
772+ let env_files = session. sync_odoo . get_symbol ( session. sync_odoo . config . odoo_path . as_ref ( ) . unwrap ( ) , & ( vec ! [ Sy !( "odoo" ) , Sy !( "api" ) ] , vec ! [ ] ) , u32:: MAX ) ;
773+ let env_file = env_files. last ( ) . unwrap ( ) ;
774+ if !Rc :: ptr_eq ( env_file, & scope_file) {
775+ scope_file. borrow_mut ( ) . add_model_dependencies ( & model) ;
776+ }
777+ } else {
778+ let tree = scope_file. borrow ( ) . get_main_entry_tree ( session) ;
779+ if !tree. 0 . starts_with ( & [ Sy ! ( "odoo" ) , Sy ! ( "orm" ) ] ) {
780+ scope_file. borrow_mut ( ) . add_model_dependencies ( & model) ;
781+ }
774782 }
775783 }
776784 let model = model. clone ( ) ;
0 commit comments