@@ -304,15 +304,27 @@ impl PythonOdooBuilder {
304
304
let symbol = & self . symbol . clone ( ) ;
305
305
let odoo_symbol_tree = symbol. borrow ( ) . get_main_entry_tree ( session) ;
306
306
let mut sym = symbol. borrow_mut ( ) ;
307
- if compare_semver ( session. sync_odoo . full_version . as_str ( ) , "18.1" ) == Ordering :: Less && odoo_symbol_tree. 0 . len ( ) == 2 && odoo_symbol_tree. 1 . len ( ) == 1 && odoo_symbol_tree. 0 [ 0 ] == "odoo" && odoo_symbol_tree. 0 [ 1 ] == "models" &&
308
- ( odoo_symbol_tree. 1 [ 0 ] == "BaseModel" || odoo_symbol_tree. 1 [ 0 ] == "Model" || odoo_symbol_tree. 1 [ 0 ] == "TransientModel" ) {
309
- //we don't want to compare these classes with themselves (<18.1)
307
+ if (
308
+ compare_semver ( session. sync_odoo . full_version . as_str ( ) , "18.1" ) == Ordering :: Less && odoo_symbol_tree. 0 . len ( ) == 2
309
+ && odoo_symbol_tree. 1 . len ( ) == 1
310
+ && odoo_symbol_tree. 0 [ 0 ] == "odoo"
311
+ && odoo_symbol_tree. 0 [ 1 ] == "models"
312
+ && ( odoo_symbol_tree. 1 [ 0 ] == "BaseModel" || odoo_symbol_tree. 1 [ 0 ] == "Model" || odoo_symbol_tree. 1 [ 0 ] == "TransientModel" ) )
313
+ || ( compare_semver ( session. sync_odoo . full_version . as_str ( ) , "18.1" ) >= Ordering :: Equal && odoo_symbol_tree. 0 . len ( ) == 3
314
+ && odoo_symbol_tree. 1 . len ( ) == 1
315
+ && odoo_symbol_tree. 0 [ 0 ] == "odoo"
316
+ && odoo_symbol_tree. 0 [ 1 ] == "orm"
317
+ && odoo_symbol_tree. 0 [ 2 ] == "models"
318
+ && ( odoo_symbol_tree. 1 [ 0 ] == "BaseModel" || odoo_symbol_tree. 1 [ 0 ] == "Model" || odoo_symbol_tree. 1 [ 0 ] == "TransientModel" ) )
319
+ || ( compare_semver ( session. sync_odoo . full_version . as_str ( ) , "18.3" ) >= Ordering :: Equal && odoo_symbol_tree. 0 . len ( ) == 3
320
+ && odoo_symbol_tree. 1 . len ( ) == 1
321
+ && odoo_symbol_tree. 0 [ 0 ] == "odoo"
322
+ && odoo_symbol_tree. 0 [ 1 ] == "orm"
323
+ && odoo_symbol_tree. 0 [ 2 ] == "models_transient"
324
+ && odoo_symbol_tree. 1 [ 0 ] == "TransientModel" ) {
325
+ //we don't want to compare these classes with themselves (> 18.3)
310
326
return false ;
311
- } else if compare_semver ( session. sync_odoo . full_version . as_str ( ) , "18.1" ) >= Ordering :: Equal && odoo_symbol_tree. 0 . len ( ) == 3 && odoo_symbol_tree. 1 . len ( ) == 1 && odoo_symbol_tree. 0 [ 0 ] == "odoo" && odoo_symbol_tree. 0 [ 1 ] == "orm" && odoo_symbol_tree. 0 [ 2 ] == "models" &&
312
- ( odoo_symbol_tree. 1 [ 0 ] == "BaseModel" || odoo_symbol_tree. 1 [ 0 ] == "Model" || odoo_symbol_tree. 1 [ 0 ] == "TransientModel" ) {
313
- //we don't want to compare these classes with themselves (> 18.1)
314
- return false ;
315
- } else {
327
+ } else {
316
328
if sym. as_class_sym ( ) . bases . is_empty ( ) {
317
329
return false ;
318
330
}
@@ -324,6 +336,9 @@ impl PythonOdooBuilder {
324
336
model_tree = ( vec ! [ Sy !( "odoo" ) , Sy !( "orm" ) , Sy !( "models" ) ] , vec ! [ Sy !( "Model" ) ] ) ;
325
337
transient_tree = ( vec ! [ Sy !( "odoo" ) , Sy !( "orm" ) , Sy !( "models" ) ] , vec ! [ Sy !( "TransientModel" ) ] ) ;
326
338
}
339
+ if compare_semver ( session. sync_odoo . full_version . as_str ( ) , "18.3" ) >= Ordering :: Equal {
340
+ transient_tree = ( vec ! [ Sy !( "odoo" ) , Sy !( "orm" ) , Sy !( "models_transient" ) ] , vec ! [ Sy !( "TransientModel" ) ] ) ;
341
+ }
327
342
let base_model = session. sync_odoo . get_symbol ( session. sync_odoo . config . odoo_path . as_ref ( ) . unwrap ( ) , & base_model_tree, u32:: MAX ) ;
328
343
let model = session. sync_odoo . get_symbol ( session. sync_odoo . config . odoo_path . as_ref ( ) . unwrap ( ) , & model_tree, u32:: MAX ) ;
329
344
let transient = session. sync_odoo . get_symbol ( session. sync_odoo . config . odoo_path . as_ref ( ) . unwrap ( ) , & transient_tree, u32:: MAX ) ;
0 commit comments