mirror of
https://github.com/bringout/oca-ocb-core.git
synced 2026-04-22 20:12:00 +02:00
19.0 vanilla
This commit is contained in:
parent
d1963a3c3a
commit
2d3ee4855a
7430 changed files with 2687981 additions and 2965473 deletions
27
odoo-bringout-oca-ocb-survey/survey/models/res_lang.py
Normal file
27
odoo-bringout-oca-ocb-survey/survey/models/res_lang.py
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import Command, models, _
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
|
||||
class ResLang(models.Model):
|
||||
_inherit = "res.lang"
|
||||
|
||||
def write(self, vals):
|
||||
""" When languages are disabled, clear corresponding survey languages. """
|
||||
if 'active' in vals and not vals['active']:
|
||||
self.env['survey.user_input'].sudo().search([('lang_id', 'in', self.ids)]).lang_id = False
|
||||
surveys_sudo = self.env['survey.survey'].sudo().search([('lang_ids', 'in', self.ids)])
|
||||
if will_be_all_lang_survey_sudo := surveys_sudo.filtered(lambda survey: survey.lang_ids <= self):
|
||||
if len(self) > 1:
|
||||
error = _("Cannot deactivate languages currently used by survey(s) only supporting those languages.")
|
||||
else:
|
||||
error = _("Cannot deactivate a language currently used by survey(s) only supporting that language.")
|
||||
if self.env['survey.survey'].search(
|
||||
[('id', 'in', will_be_all_lang_survey_sudo.ids)]) == will_be_all_lang_survey_sudo:
|
||||
error += '\n'
|
||||
error += _("Survey(s): %(surveys_list)s",
|
||||
surveys_list=', '.join(f'"{survey.title}"' for survey in will_be_all_lang_survey_sudo))
|
||||
raise UserError(error)
|
||||
surveys_sudo.write({'lang_ids': [Command.unlink(lang.id) for lang in self]})
|
||||
return super().write(vals)
|
||||
Loading…
Add table
Add a link
Reference in a new issue