@@ -64,6 +64,39 @@ static arch_eval_file_hooks: Lazy<Vec<PythonArchEvalFileHook>> = Lazy::new(|| {v
6464 env. set_doc_string( Some ( S !( "" ) ) ) ;
6565 }
6666 } } ,
67+ PythonArchEvalFileHook { odoo_entry: true ,
68+ // todo? before 15.3: request: WebRequest
69+ trees: vec![ ( Sy !( "15.3" ) , Sy !( "999.0" ) , ( vec![ Sy !( "odoo" ) , Sy !( "http" ) ] , vec![ Sy !( "request" ) ] ) ) ] ,
70+ if_exist_only: true ,
71+ func: |_odoo: & mut SessionInfo , _entry: & Rc <RefCell <EntryPoint >>, file_symbol: Rc <RefCell <Symbol >>, symbol: Rc <RefCell <Symbol >>| {
72+ // --------- request: Request ---------
73+ let request_class = file_symbol. borrow( ) . get_symbol( & ( vec![ ] , vec![ Sy !( "Request" ) ] ) , u32 :: MAX ) ;
74+ let Some ( request_class) = request_class. last( ) else {
75+ return ;
76+ } ;
77+ let mut request = symbol. borrow_mut( ) ;
78+ request. set_evaluations( vec![ Evaluation :: eval_from_symbol( & Rc :: downgrade( request_class) , Some ( true ) ) ] ) ;
79+ } } ,
80+ PythonArchEvalFileHook { odoo_entry: true ,
81+ trees: vec![ ( Sy !( "15.3" ) , Sy !( "999.0" ) , ( vec![ Sy !( "odoo" ) , Sy !( "http" ) ] , vec![ Sy !( "Request" ) , Sy !( "env" ) ] ) ) ] ,
82+ if_exist_only: true ,
83+ func: |odoo: & mut SessionInfo , _entry: & Rc <RefCell <EntryPoint >>, file_symbol: Rc <RefCell <Symbol >>, symbol: Rc <RefCell <Symbol >>| {
84+ // --------- Request.env: Environment | None ---------
85+ let env_file = odoo. sync_odoo. get_symbol( odoo. sync_odoo. config. odoo_path. as_ref( ) . unwrap( ) , & ( vec![ Sy !( "odoo" ) , Sy !( "api" ) ] , vec![ ] ) , u32 :: MAX ) ;
86+ let Some ( env_file) = env_file. last( ) else {
87+ return ;
88+ } ;
89+ let env_class = env_file. borrow( ) . get_symbol( & ( vec![ ] , vec![ Sy !( "Environment" ) ] ) , u32 :: MAX ) ;
90+ let Some ( env_class) = env_class. last( ) else {
91+ return ;
92+ } ;
93+ let mut request_env = symbol. borrow_mut( ) ;
94+ request_env. set_evaluations( vec![
95+ Evaluation :: eval_from_symbol( & Rc :: downgrade( env_class) , Some ( true ) ) ,
96+ Evaluation :: new_none( )
97+ ] ) ;
98+ file_symbol. borrow_mut( ) . add_dependency( & mut env_file. borrow_mut( ) , BuildSteps :: ARCH_EVAL , BuildSteps :: ARCH ) ;
99+ } } ,
67100 PythonArchEvalFileHook { odoo_entry: true ,
68101 trees: vec![ ( Sy !( "0.0" ) , Sy !( "18.1" ) , ( vec![ Sy !( "odoo" ) , Sy !( "models" ) ] , vec![ Sy !( "BaseModel" ) , Sy !( "ids" ) ] ) ) ,
69102 ( Sy !( "18.1" ) , Sy !( "999.0" ) , ( vec![ Sy !( "odoo" ) , Sy !( "orm" ) , Sy !( "models" ) ] , vec![ Sy !( "BaseModel" ) , Sy !( "ids" ) ] ) ) ] ,
0 commit comments