diff --git a/pms/models/pms_folio.py b/pms/models/pms_folio.py
index b0ef1c334..72785d4eb 100644
--- a/pms/models/pms_folio.py
+++ b/pms/models/pms_folio.py
@@ -573,7 +573,20 @@ class PmsFolio(models.Model):
store=True,
readonly=False,
)
- lang = fields.Selection(selection='_get_languages', string='Language', validate=False)
+ lang = fields.Selection(
+ selection=lambda self: self._get_lang_selection_options(),
+ string="Language",
+ help="Language used for the folio",
+ compute="_compute_lang",
+ store=True,
+ readonly=False,
+ )
+
+ @api.model
+ def _get_lang_selection_options(self):
+ """Gets the available languages for the selection."""
+ langs = self.env["res.lang"].search([])
+ return [(lang.code, lang.name) for lang in langs]
def name_get(self):
result = []
@@ -1415,6 +1428,11 @@ class PmsFolio(models.Model):
elif not record.invoice_to_agency:
record.invoice_to_agency = False
+ @api.depends("partner_id")
+ def _compute_lang(self):
+ for record in self.filtered("partner_id"):
+ record.lang = record.partner_id.lang
+
def _search_invoice_ids(self, operator, value):
if operator == "in" and value:
self.env.cr.execute(
@@ -1483,7 +1501,8 @@ class PmsFolio(models.Model):
@api.model
def _get_languages(self):
- return self.env['res.lang'].get_installed()
+ return self.env["res.lang"].get_installed()
+
def get_reservations_to_update_channel(self, vals):
reservations_to_update = self.env["pms.reservation"]
for record in self:
diff --git a/pms/views/pms_folio_views.xml b/pms/views/pms_folio_views.xml
index cfd766775..1586116b6 100644
--- a/pms/views/pms_folio_views.xml
+++ b/pms/views/pms_folio_views.xml
@@ -300,6 +300,11 @@
placeholder="mobile"
attrs="{'invisible':[('reservation_type','in',('out'))]}"
/>
+