Skip to content

Commit

Permalink
[MIG] remove analytic tags and groups
Browse files Browse the repository at this point in the history
  • Loading branch information
sbidoul committed Mar 24, 2023
1 parent 1f9c3fe commit 81e5881
Show file tree
Hide file tree
Showing 10 changed files with 31 additions and 183 deletions.
115 changes: 28 additions & 87 deletions mis_builder/models/mis_report_instance.py
Original file line number Diff line number Diff line change
Expand Up @@ -278,34 +278,15 @@ def _compute_dates(self):
comodel_name="mis.report.instance.period", compute="_compute_allowed_cmpcol_ids"
)
# filters
# TODO : migrate to analytic distribution
# analytic_account_id = fields.Many2one(
# comodel_name="account.analytic.account",
# string="Analytic Account",
# help=(
# "Filter column on journal entries that match this analytic account."
# "This filter is combined with a AND with the report-level filters "
# "and cannot be modified in the preview."
# ),
# )
# analytic_group_id = fields.Many2one(
# comodel_name="account.analytic.group",
# string="Analytic Account Group",
# help=(
# "Filter column on journal entries that match this analytic account "
# "group. This filter is combined with a AND with the report-level "
# "filters and cannot be modified in the preview."
# ),
# )
# analytic_tag_ids = fields.Many2many(
# comodel_name="account.analytic.tag",
# string="Analytic Tags",
# help=(
# "Filter column on journal entries that have all these analytic tags."
# "This filter is combined with a AND with the report-level filters "
# "and cannot be modified in the preview."
# ),
# )
analytic_account_id = fields.Many2one(
comodel_name="account.analytic.account",
string="Analytic Account",
help=(
"Filter column on journal entries that match this analytic account."
"This filter is combined with a AND with the report-level filters "
"and cannot be modified in the preview."
),
)

_order = "sequence, id"

Expand Down Expand Up @@ -422,14 +403,9 @@ def _get_additional_move_line_filter(self):
self.report_instance_id.target_move, aml_model_name
)
)
# TODO MIG16
# if self.analytic_account_id:
# domain.append(("analytic_account_id", "=", self.analytic_account_id.id))
# if self.analytic_group_id:
# domain.append(
# ("analytic_account_id.group_id", "=", self.analytic_group_id.id)
# )
# for tag in self.analytic_tag_ids:
# domain.append(("analytic_tag_ids", "=", tag.id))
return domain

def _get_additional_query_filter(self, query):
Expand Down Expand Up @@ -573,17 +549,9 @@ def _compute_pivot_date(self):
date_from = fields.Date(string="From")
date_to = fields.Date(string="To")
temporary = fields.Boolean(default=False)
# TODO : migrate to analytic distribution
# analytic_account_id = fields.Many2one(
# comodel_name="account.analytic.account", string="Analytic Account"
# )
# analytic_group_id = fields.Many2one(
# comodel_name="account.analytic.group",
# string="Analytic Account Group",
# )
# analytic_tag_ids = fields.Many2many(
# comodel_name="account.analytic.tag", string="Analytic Tags"
# )
analytic_account_id = fields.Many2one(
comodel_name="account.analytic.account", string="Analytic Account"
)
hide_analytic_filters = fields.Boolean(default=True)

@api.onchange("multi_company")
Expand Down Expand Up @@ -619,34 +587,16 @@ def _compute_query_company_ids(self):

@api.model
def get_filter_descriptions_from_context(self):
self.env.context.get("mis_report_filters", {})
# analytic_account_id = filters.get("analytic_account_id", {}).get("value")
filters = self.env.context.get("mis_report_filters", {})
analytic_account_id = filters.get("analytic_account_id", {}).get("value")
filter_descriptions = []
# if analytic_account_id:
# analytic_account = self.env["account.analytic.account"].browse(
# analytic_account_id
# )
# filter_descriptions.append(
# _("Analytic Account: %s") % analytic_account.display_name
# )
# analytic_group_id = filters.get("analytic_account_id.group_id", {}).get("value")
# if analytic_group_id:
# analytic_group = self.env["account.analytic.group"].browse(
# analytic_group_id
# )
# filter_descriptions.append(
# _("Analytic Account Group: %s") % analytic_group.display_name
# )
# analytic_tag_value = filters.get("analytic_tag_ids", {}).get("value")
# if analytic_tag_value:
# # TODO 14 we need a test to cover this
# analytic_tag_names = self.resolve_2many_commands(
# "analytic_tag_ids", analytic_tag_value, ["name"]
# )
# filter_descriptions.append(
# _("Analytic Tags: %s")
# % ", ".join([rec["name"] for rec in analytic_tag_names])
# )
if analytic_account_id:
analytic_account = self.env["account.analytic.account"].browse(
analytic_account_id
)
filter_descriptions.append(
_("Analytic Account: %s") % analytic_account.display_name
)
return filter_descriptions

def save_report(self):
Expand Down Expand Up @@ -719,21 +669,12 @@ def _onchange_dates(self):

def _add_analytic_filters_to_context(self, context):
self.ensure_one()
# if self.analytic_account_id:
# context["mis_report_filters"]["analytic_account_id"] = {
# "value": self.analytic_account_id.id,
# "operator": "=",
# }
# if self.analytic_group_id:
# context["mis_report_filters"]["analytic_account_id.group_id"] = {
# "value": self.analytic_group_id.id,
# "operator": "=",
# }
# if self.analytic_tag_ids:
# context["mis_report_filters"]["analytic_tag_ids"] = {
# "value": self.analytic_tag_ids.ids,
# "operator": "all",
# }
# TODO MIG16
if self.analytic_account_id:
context["mis_report_filters"]["analytic_account_id"] = {
"value": self.analytic_account_id.id,
"operator": "=",
}

def _context_with_filters(self):
self.ensure_one()
Expand Down
41 changes: 3 additions & 38 deletions mis_builder/tests/test_analytic_filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,16 @@
class TestAnalyticFilters(TransactionCase):
def setUp(self):
super().setUp()
self.aag = self.env["account.analytic.group"].search([], limit=1)
self.aaa = self.env["account.analytic.account"].search([], limit=1)

def test_context_with_filters(self):
aaa = self.env["account.analytic.account"].search([], limit=1)
mri = self.env["mis.report.instance"].new()
mri.analytic_account_id = False
mri.analytic_group_id = False
assert mri._context_with_filters().get("mis_report_filters") == {}
mri.analytic_account_id = aaa
mri.analytic_group_id = self.aag
assert mri._context_with_filters().get("mis_report_filters") == {
"analytic_account_id": {"value": aaa.id, "operator": "="},
"analytic_account_id.group_id": {"value": self.aag.id, "operator": "="},
}
# test _context_with_filters does nothing is a filter is already
# in the context
Expand Down Expand Up @@ -54,18 +51,11 @@ def test_get_filter_domain_from_context_1(self):
self._check_get_filter_domain_from_context(
{"analytic_account_id": {"value": 1}}, [("analytic_account_id", "=", 1)]
)
self._check_get_filter_domain_from_context(
{"analytic_group_id": {"value": 1}}, [("analytic_group_id", "=", 1)]
)
# custom operator
self._check_get_filter_domain_from_context(
{"analytic_account_id": {"value": 1, "operator": "!="}},
[("analytic_account_id", "!=", 1)],
)
self._check_get_filter_domain_from_context(
{"analytic_group_id": {"value": 1, "operator": "!="}},
[("analytic_group_id", "!=", 1)],
)
# any field name works
self._check_get_filter_domain_from_context(
{"some_field": {"value": "x"}}, [("some_field", "=", "x")]
Expand All @@ -77,39 +67,14 @@ def test_get_filter_domain_from_context_1(self):
{"analytic_account_id": {"value": False}},
[("analytic_account_id", "=", False)],
)
self._check_get_filter_domain_from_context(
{"analytic_group_id": {"value": False}},
[("analytic_group_id", "=", False)],
)
# Filter from analytic account filter widget
self._check_get_filter_domain_from_context(
{"analytic_account_id": {"value": 1, "operator": "all"}},
[("analytic_account_id", "in", [1])],
)

# Filter from analytic group filter widget
self._check_get_filter_domain_from_context(
{"analytic_group_id": {"value": 1, "operator": "all"}},
[("analytic_group_id", "in", [1])],
)

# Filter from analytic tags filter widget
self._check_get_filter_domain_from_context(
{"analytic_tag_ids": {"value": [1, 2], "operator": "all"}},
[("analytic_tag_ids", "in", [1]), ("analytic_tag_ids", "in", [2])],
)

def test_get_filter_descriptions_from_context_1(self):
self._check_get_filter_descriptions_from_context(
{"analytic_account_id.group_id": {"value": self.aag.id}},
["Analytic Account Group: %s" % self.aag.display_name],
)

def test_get_additional_move_line_filter_with_analytic_group(self):
instance_period = self.env["mis.report.instance.period"].new(
{
"analytic_group_id": self.aag.id,
}
{"analytic_account_id": {"value": self.aaa.id}},
["Analytic Account: %s" % self.aaa.display_name],
)
domain = instance_period._get_additional_move_line_filter()
assert domain == [("analytic_account_id.group_id", "=", self.aag.id)]
1 change: 0 additions & 1 deletion mis_builder_budget/models/mis_budget_by_account_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@ def _prepare_overlap_domain(self):
"date_to",
"budget_id",
"analytic_account_id",
"analytic_tag_ids",
"account_id",
)
def _check_dates(self):
Expand Down
1 change: 0 additions & 1 deletion mis_builder_budget/models/mis_budget_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ def _prepare_overlap_domain(self):
"date_to",
"budget_id",
"analytic_account_id",
"analytic_tag_ids",
"kpi_expression_id",
)
def _check_dates(self):
Expand Down
5 changes: 0 additions & 5 deletions mis_builder_budget/models/mis_budget_item_abstract.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,6 @@ class MisBudgetItemAbstract(models.AbstractModel):
analytic_account_id = fields.Many2one(
comodel_name="account.analytic.account", string="Analytic account"
)
analytic_tag_ids = fields.Many2many(
comodel_name="account.analytic.tag", string="Analytic Tags"
)

@api.onchange("date_range_id")
def _onchange_date_range(self):
Expand Down Expand Up @@ -65,8 +62,6 @@ def _prepare_overlap_domain(self):
("date_to", ">=", self.date_from),
("analytic_account_id", "=", self.analytic_account_id.id),
]
for tag in self.analytic_tag_ids:
domain.append(("analytic_tag_ids", "in", [tag.id]))
return domain

def _check_dates(self):
Expand Down
5 changes: 0 additions & 5 deletions mis_builder_budget/views/mis_budget_by_account_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,6 @@
name="analytic_account_id"
groups="analytic.group_analytic_accounting"
/>
<field
name="analytic_tag_ids"
widget="many2many_tags"
groups="analytic.group_analytic_accounting"
/>
</tree>
</field>
</record>
Expand Down
5 changes: 0 additions & 5 deletions mis_builder_budget/views/mis_budget_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,6 @@
name="analytic_account_id"
groups="analytic.group_analytic_accounting"
/>
<field
name="analytic_tag_ids"
widget="many2many_tags"
groups="analytic.group_analytic_tags"
/>
</tree>
</field>
</record>
Expand Down
5 changes: 0 additions & 5 deletions mis_builder_demo/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1 @@
from . import models


def uninstall_hook(cr, registry):
# drop relation view manually because Odoo does not know about it
cr.execute("DROP VIEW IF EXISTS mis_committed_purchase_tag_rel")
31 changes: 0 additions & 31 deletions mis_builder_demo/models/mis_committed_purchase.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,41 +27,10 @@ class MisCommittedPurchase(models.Model):
res_id = fields.Integer(string="Resource ID")
res_model = fields.Char(string="Resource Model Name")

analytic_tag_ids = fields.Many2many(
comodel_name="account.analytic.tag",
relation="mis_committed_purchase_tag_rel",
column1="mis_committed_purchase_id",
column2="account_analytic_tag_id",
string="Analytic Tags",
)

def init(self):
script = opj(
dirname(dirname(__file__)), "examples", "mis_committed_purchase.sql"
)
with open(script) as f:
tools.drop_view_if_exists(self.env.cr, "mis_committed_purchase")
self.env.cr.execute(f.read())

# Create many2many relation for account.analytic.tag
tools.drop_view_if_exists(self.env.cr, "mis_committed_purchase_tag_rel")
self.env.cr.execute(
"""
CREATE OR REPLACE VIEW mis_committed_purchase_tag_rel AS
(SELECT
po_mcp.id AS mis_committed_purchase_id,
po_rel.account_analytic_tag_id AS account_analytic_tag_id
FROM account_analytic_tag_purchase_order_line_rel AS po_rel
INNER JOIN mis_committed_purchase AS po_mcp ON
po_mcp.res_id = po_rel.purchase_order_line_id
WHERE po_mcp.res_model = 'purchase.order.line'
UNION ALL
SELECT
inv_mcp.id AS mis_committed_purchase_id,
inv_rel.account_analytic_tag_id AS account_analytic_tag_id
FROM account_analytic_tag_account_move_line_rel AS inv_rel
INNER JOIN mis_committed_purchase AS inv_mcp ON
inv_mcp.res_id = inv_rel.account_move_line_id
WHERE inv_mcp.res_model = 'account.move.line')
"""
)
5 changes: 0 additions & 5 deletions mis_builder_demo/views/mis_committed_purchase.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,6 @@
name="analytic_account_id"
groups="analytic.group_analytic_accounting"
/>
<field
name="analytic_tag_ids"
widget="many2many_tags"
groups="analytic.group_analytic_tags"
/>
<field name="debit" />
<field name="credit" />
</tree>
Expand Down

0 comments on commit 81e5881

Please sign in to comment.