mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[ADD] mis_builder_pms: Selector of pms properties fot MIS reports
This commit is contained in:
committed by
Darío Lodeiros
parent
cf08eeccdd
commit
75a0269040
60
mis_builder_pms/models/mis_builder.py
Normal file
60
mis_builder_pms/models/mis_builder.py
Normal file
@@ -0,0 +1,60 @@
|
||||
# Copyright 2022 Comunitea Servicios Tecnológicos S.L. (https://comunitea.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from odoo import _, api, fields, models
|
||||
|
||||
|
||||
class MisReportInstance(models.Model):
|
||||
|
||||
_inherit = "mis.report.instance"
|
||||
|
||||
pms_property_ids = fields.Many2many(
|
||||
"pms.property",
|
||||
string="PMS Properties",
|
||||
)
|
||||
|
||||
def _add_analytic_filters_to_context(self, context):
|
||||
super()._add_analytic_filters_to_context(context)
|
||||
if self.pms_property_ids:
|
||||
context["mis_report_filters"]["pms_property_id"] = {
|
||||
"value": self.pms_property_ids.ids,
|
||||
"operator": "in",
|
||||
}
|
||||
|
||||
@api.model
|
||||
def get_filter_descriptions_from_context(self):
|
||||
filter_descriptions = super().get_filter_descriptions_from_context()
|
||||
filters = self.env.context.get("mis_report_filters", {})
|
||||
pms_property_value = filters.get("pms_property_id", {}).get("value")
|
||||
if pms_property_value:
|
||||
pms_properties = self.env["pms.property"].browse(pms_property_value)
|
||||
filter_descriptions.append(
|
||||
_("PMS Properties: %s") % ", ".join(pms_properties.mapped("name"))
|
||||
)
|
||||
return filter_descriptions
|
||||
|
||||
|
||||
class MisReportInstancePeriod(models.Model):
|
||||
|
||||
_inherit = "mis.report.instance.period"
|
||||
|
||||
pms_property_ids = fields.Many2many(
|
||||
"pms.property",
|
||||
string="PMS Properties",
|
||||
)
|
||||
|
||||
def _get_additional_move_line_filter(self):
|
||||
aml_domain = super()._get_additional_move_line_filter()
|
||||
if self.report_instance_id.pms_property_ids:
|
||||
aml_domain.append(
|
||||
(
|
||||
"pms_property_id",
|
||||
"in",
|
||||
self.report_instance_id.pms_property_ids.ids,
|
||||
)
|
||||
)
|
||||
if self.pms_property_ids:
|
||||
aml_domain.append(
|
||||
("pms_property_id", "in", self.pms_property_ids.ids),
|
||||
)
|
||||
return aml_domain
|
||||
Reference in New Issue
Block a user