test/l10n_ru_base/models/res_config_settings.py

42 lines
1.7 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import _, api, fields, models
from odoo.exceptions import UserError
_FIELDS_MODUL = [
'module_l10n_ru_act_rev',
'module_l10n_ru_contract',
'module_l10n_ru_upd_xml',
'module_l10n_ru_doc',
'module_l10n_ru_attorney'
]
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
module_l10n_ru_act_rev = fields.Boolean(_("Act revise"))
module_l10n_ru_contract = fields.Boolean(_("Contract"))
module_l10n_ru_upd_xml = fields.Boolean(_("Report_xml"))
module_l10n_ru_doc = fields.Boolean(_("Print forms"))
module_l10n_ru_attorney = fields.Boolean(_("Consent"))
@api.model
def write(self, values):
company = self.env.company
if company.country_id.code != 'RU':
raise UserError("Признак Российской компании не обнаружен!")
if _FIELDS_MODUL:
missing_modules = set()
for field in _FIELDS_MODUL:
if self.mapped(field)[0]:
module_name = field[7:]
module_installed = self.env['ir.module.module'].search([('name', '=', module_name)], limit=1)
if not module_installed:
missing_modules.add(module_name)
if missing_modules:
message = "Обратитесь в тех.поддержку для получения лицензии для следующих модулей:\n" + \
"\n".join(missing_modules)
raise UserError(message)
return super(ResConfigSettings, self).write(values)