Skip to content

Commit f5ba4be

Browse files
dnplkndllclaude
andcommitted
fix: add New Spreadsheet to file manager action menu
The file manager uses js_class='file_kanban' — a custom JS controller that doesn't expose the directory form view header. Add a server action bound to dms.file (list + kanban) so 'New Spreadsheet' appears in the Files gear menu, alongside 'Import records'. Pre-fills directory_id from context (default_directory_id or active_id) so the wizard opens ready to use when a directory is selected in the left sidebar. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 85e923e commit f5ba4be

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

dms_spreadsheet/models/dms_file.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,23 @@ def open_spreadsheet(self):
110110
"params": {"spreadsheet_id": self.id, "model": self._name},
111111
}
112112

113+
@api.model
114+
def action_open_new_spreadsheet(self):
115+
"""Open the New Spreadsheet wizard, pre-filling directory from context.
116+
117+
Called from the server action bound to the file kanban/list views so
118+
that 'New Spreadsheet' appears in the Files ⚙ action menu.
119+
"""
120+
ctx = self.env.context
121+
directory_id = ctx.get("default_directory_id") or ctx.get("active_id")
122+
return {
123+
"type": "ir.actions.act_window",
124+
"res_model": "dms.spreadsheet.create",
125+
"view_mode": "form",
126+
"target": "new",
127+
"context": {"default_directory_id": directory_id},
128+
}
129+
113130
# ── Computed helpers ─────────────────────────────────────────────────────
114131

115132
@api.depends("handler")

dms_spreadsheet/views/dms_file_views.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,16 @@
2121
</field>
2222
</record>
2323

24+
<!-- Server action: "New Spreadsheet" in the Files ⚙ action menu -->
25+
<record id="action_server_new_spreadsheet" model="ir.actions.server">
26+
<field name="name">New Spreadsheet</field>
27+
<field name="model_id" ref="dms.model_dms_file" />
28+
<field name="binding_model_id" ref="dms.model_dms_file" />
29+
<field name="binding_view_types">list,kanban</field>
30+
<field name="state">code</field>
31+
<field name="code">action = model.action_open_new_spreadsheet()</field>
32+
</record>
33+
2434
<!-- Add spreadsheet filter to file search view -->
2535
<record id="view_dms_file_search_spreadsheet" model="ir.ui.view">
2636
<field name="name">dms.file.search.spreadsheet</field>

0 commit comments

Comments
 (0)