Skip to content

Commit

Permalink
Merge PR #587 into 16.0
Browse files Browse the repository at this point in the history
Signed-off-by dreispt
  • Loading branch information
OCA-git-bot committed May 10, 2024
2 parents 2475a15 + 75706b2 commit ea0e03b
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 2 deletions.
19 changes: 17 additions & 2 deletions mis_builder/models/mis_report_instance.py
Original file line number Diff line number Diff line change
Expand Up @@ -878,6 +878,20 @@ def compute(self):
kpi_matrix = self._compute_matrix()
return kpi_matrix.as_dict()

@api.model
def _get_drilldown_views_and_orders(self):
return {"tree": 1, "form": 2, "pivot": 3, "graph": 4}

@api.model
def _get_drilldown_model_views(self, model_name):
self.ensure_one()
types = self.env["ir.ui.view"]._read_group(
[("model", "=", model_name)], ["type"], ["type"]
)
views_order = self._get_drilldown_views_and_orders()
views = {type["type"] for type in types if type["type"] in views_order}
return sorted(list(views), key=lambda x: views_order[x])

def drilldown(self, arg):
self.ensure_one()
period_id = arg.get("period_id")
Expand All @@ -897,13 +911,14 @@ def drilldown(self, arg):
account_id,
)
domain.extend(period._get_additional_move_line_filter())
views = self._get_drilldown_model_views(period.source_aml_model_name)
return {
"name": self._get_drilldown_action_name(arg),
"domain": domain,
"type": "ir.actions.act_window",
"res_model": period.source_aml_model_name,
"views": [[False, "list"], [False, "form"]],
"view_mode": "list",
"views": [[False, view] for view in views],
"view_mode": ",".join(view for view in views),
"target": "current",
"context": {"active_test": False},
}
Expand Down
46 changes: 46 additions & 0 deletions mis_builder/tests/test_mis_report_instance.py
Original file line number Diff line number Diff line change
Expand Up @@ -446,6 +446,52 @@ def test_drilldown_action_name_without_account(self):
expected_name = f"{self.kpi1.description} - {period.display_name}"
assert action_name == expected_name

def test_drilldown_views(self):
IrUiView = self.env["ir.ui.view"]
model_name = "account.move.line"
IrUiView.search([("model", "=", model_name)]).unlink()
IrUiView.create(
[
{
"name": "mis_report_test_drilldown_views_chart",
"model": model_name,
"arch": "<graph><field name='name'/></graph>",
},
{
"name": "mis_report_test_drilldown_views_tree",
"model": model_name,
"arch": "<pivot><field name='name'/></pivot>",
},
]
)
action = self.report_instance.drilldown(
dict(expr="balp[200%]", period_id=self.report_instance.period_ids[0].id)
)
self.assertEqual(action["view_mode"], "pivot,graph")
self.assertEqual(action["views"], [[False, "pivot"], [False, "graph"]])
IrUiView.create(
[
{
"name": "mis_report_test_drilldown_views_form",
"model": model_name,
"arch": "<form><field name='name'/></form>",
},
{
"name": "mis_report_test_drilldown_views_tree",
"model": model_name,
"arch": "<tree><field name='name'/></tree>",
},
]
)
action = self.report_instance.drilldown(
dict(expr="balp[200%]", period_id=self.report_instance.period_ids[0].id)
)
self.assertEqual(action["view_mode"], "tree,form,pivot,graph")
self.assertEqual(
action["views"],
[[False, "tree"], [False, "form"], [False, "pivot"], [False, "graph"]],
)

def test_qweb(self):
self.report_instance.print_pdf() # get action
test_reports.try_report(
Expand Down

0 comments on commit ea0e03b

Please sign in to comment.