@@ -12,7 +12,10 @@ patch(ListRenderer.prototype, {
1212 } ,
1313
1414 async onCellClicked ( record , column , ev ) {
15- if ( record . resModel === "spp.program" ) {
15+ if (
16+ record . resModel === "spp.program" ||
17+ record . resModel === "spp.program.membership"
18+ ) {
1619 // Skip custom behavior if in selection mode (e.g., Many2one "Search More..." dialog)
1720 // In selection mode, don't open form - let dialog handle row selection
1821 const isSelectionMode =
@@ -26,10 +29,24 @@ patch(ListRenderer.prototype, {
2629 // In selection mode, use default behavior which handles selection
2730 return super . onCellClicked ( record , column , ev ) ;
2831 }
32+
33+ let programId = record . resId ;
34+ if ( record . resModel === "spp.program.membership" ) {
35+ const programField = record . data . program_id ;
36+ if ( programField && programField . id ) {
37+ programId = programField . id ;
38+ } else {
39+ return super . onCellClicked ( record , column , ev ) ;
40+ }
41+ }
42+
2943 // Get the stored action from the server (includes action id for proper routing)
3044 var action = await this . orm . call ( "spp.program" , "open_program_form" , [
31- record . resId ,
45+ programId ,
3246 ] ) ;
47+ if ( record . resModel === "spp.program.membership" ) {
48+ action . target = "new" ;
49+ }
3350 this . actionService . doAction ( action ) ;
3451 } else {
3552 super . onCellClicked ( record , column , ev ) ;
0 commit comments