@@ -14,25 +14,29 @@ import type {CMDCallbackArgs, CMDCallbackContext, CMDDef} from '@trash/interpret
14
14
import type Terminal from '@odoo/terminal' ;
15
15
16
16
async function cmdShowWhoAmI ( this : Terminal , kwargs : CMDCallbackArgs , ctx : CMDCallbackContext ) {
17
+ const OdooVerMajor = getOdooVersion ( 'major' ) ;
18
+ const OdooVerMinor = getOdooVersion ( 'minor' ) ;
19
+ let field_group_ids = 'groups_id' ;
20
+ if ( typeof OdooVerMajor === 'number' && typeof OdooVerMinor === 'number' && ( ( OdooVerMajor >= 18 && OdooVerMinor > 1 ) || OdooVerMajor >= 19 ) ) {
21
+ field_group_ids = 'group_ids' ;
22
+ }
17
23
const result = await searchRead (
18
24
'res.users' ,
19
25
[ [ 'id' , '=' , await getUID ( true ) ] ] ,
20
- [ 'id' , 'display_name' , 'login' , 'partner_id' , 'company_id' , 'company_ids' , 'groups_id' ] ,
26
+ [ 'id' , 'display_name' , 'login' , 'partner_id' , 'company_id' , 'company_ids' , field_group_ids ] ,
21
27
await this . getContext ( ) ,
22
28
) ;
23
29
if ( ! result . length ) {
24
30
throw new Error ( i18n . t ( 'cmdWhoami.error.noLogin' , "Oops! can't get the login :/" ) ) ;
25
31
}
26
32
const record = result [ 0 ] ;
27
- const OdooVerMajor = getOdooVersion ( 'major' ) ;
28
- const OdooVerMinor = getOdooVersion ( 'minor' ) ;
29
33
const groups_list = [ ] ;
30
34
const companies_list = [ ] ;
31
- if ( typeof OdooVerMajor === 'number' && typeof OdooVerMinor === 'number' && OdooVerMajor >= 17 && OdooVerMinor > 1 ) {
35
+ if ( typeof OdooVerMajor === 'number' && typeof OdooVerMinor === 'number' && ( ( OdooVerMajor >= 17 && OdooVerMinor > 1 ) || OdooVerMajor >= 18 ) ) {
32
36
const result_tasks = await Promise . all ( [
33
37
searchRead (
34
38
'res.groups' ,
35
- [ [ 'id' , 'in' , record . groups_id ] ] ,
39
+ [ [ 'id' , 'in' , record [ field_group_ids ] ] ] ,
36
40
[ 'display_name' ] ,
37
41
await this . getContext ( ) ,
38
42
) ,
@@ -50,54 +54,30 @@ async function cmdShowWhoAmI(this: Terminal, kwargs: CMDCallbackArgs, ctx: CMDCa
50
54
companies_list . push ( renderWhoamiListItem ( company . display_name , 'res.company' , company . id ) ) ;
51
55
}
52
56
} else {
53
- if ( typeof OdooVerMajor === 'number' && OdooVerMajor >= 18 ) {
54
- const result_tasks = await Promise . all ( [
55
- searchRead (
56
- 'res.groups' ,
57
- [ [ 'id' , 'in' , record . groups_id ] ] ,
58
- [ 'display_name' ] ,
59
- await this . getContext ( ) ,
60
- ) ,
61
- searchRead (
62
- 'res.company' ,
63
- [ [ 'id' , 'in' , record . company_ids ] ] ,
64
- [ 'display_name' ] ,
65
- await this . getContext ( ) ,
66
- ) ,
67
- ] ) ;
68
-
69
- for ( const group of result_tasks [ 0 ] ) {
70
- groups_list . push ( renderWhoamiListItem ( group . display_name , 'res.groups' , group . id ) ) ;
71
- }
72
- for ( const company of result_tasks [ 1 ] ) {
73
- companies_list . push ( renderWhoamiListItem ( company . display_name , 'res.company' , company . id ) ) ;
74
- }
75
- } else {
76
- const result_tasks = await Promise . all ( [
77
- callModelMulti < $ReadOnlyArray < [ number , string ] >> (
78
- 'res.groups' ,
79
- record . groups_id ,
80
- 'name_get' ,
81
- null ,
82
- null ,
83
- await this . getContext ( ) ,
84
- ) ,
85
- callModelMulti < $ReadOnlyArray < [ number , string ] >> (
86
- 'res.company' ,
87
- record . company_ids ,
88
- 'name_get' ,
89
- null ,
90
- null ,
91
- await this . getContext ( ) ,
92
- ) ,
93
- ] ) ;
57
+ const result_tasks = await Promise . all ( [
58
+ callModelMulti < $ReadOnlyArray < [ number , string ] >> (
59
+ 'res.groups' ,
60
+ record [ field_group_ids ] ,
61
+ 'name_get' ,
62
+ null ,
63
+ null ,
64
+ await this . getContext ( ) ,
65
+ ) ,
66
+ callModelMulti < $ReadOnlyArray < [ number , string ] >> (
67
+ 'res.company' ,
68
+ record . company_ids ,
69
+ 'name_get' ,
70
+ null ,
71
+ null ,
72
+ await this . getContext ( ) ,
73
+ ) ,
74
+ ] ) ;
94
75
95
- for ( const group of result_tasks [ 0 ] ) {
96
- groups_list . push ( renderWhoamiListItem ( group [ 1 ] , 'res.groups' , group [ 0 ] ) ) ;
97
- }
98
- for ( const company of result_tasks [ 1 ] ) {
99
- companies_list . push ( renderWhoamiListItem ( company [ 1 ] , 'res.company' , company [ 0 ] ) ) ;
100
- }
76
+ for ( const group of result_tasks [ 0 ] ) {
77
+ groups_list . push ( renderWhoamiListItem ( group [ 1 ] , 'res.groups' , group [ 0 ] ) ) ;
78
+ }
79
+ for ( const company of result_tasks [ 1 ] ) {
80
+ companies_list . push ( renderWhoamiListItem ( company [ 1 ] , 'res.company' , company [ 0 ] ) ) ;
101
81
}
102
82
}
103
83
0 commit comments