Skip to content

Commit 0cbb46f

Browse files
Merge pull request #22 from OpenSPP/fix/program-membership-click-opens-program
fix(spp_programs): open program form modal when clicking membership row
2 parents 84c49ad + 4d76d36 commit 0cbb46f

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

spp_programs/static/src/js/custom_open_list.js

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)