[REF] l10n_ru_base: новая версия модуля #4

Merged
svcore merged 7 commits from 17.0-l10-base-ref into 17.0-refactoring 2025-03-26 12:08:55 +03:00
2 changed files with 44 additions and 34 deletions
Showing only changes of commit ade3cfe5a9 - Show all commits

View File

@ -1,4 +1 @@
from . import res_config_settings from . import res_config_settings

View File

@ -1,41 +1,54 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details. # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
from odoo import _, api, fields, models from odoo import fields, models, modules
from odoo.exceptions import UserError from odoo.exceptions import UserError
_FIELDS_MODUL = [ MODULE_FIELDS = [
'module_l10n_ru_act_rev', "module_l10n_ru_act_rev",
'module_l10n_ru_contract', "module_l10n_ru_contract",
'module_l10n_ru_upd_xml', "module_l10n_ru_upd_xml",
'module_l10n_ru_doc', "module_l10n_ru_doc",
'module_l10n_ru_attorney' "module_l10n_ru_attorney",
] ]
class ResConfigSettings(models.TransientModel): class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings' _inherit = "res.config.settings"
module_l10n_ru_act_rev = fields.Boolean(_("Act revise")) module_l10n_ru_act_rev = fields.Boolean(
module_l10n_ru_contract = fields.Boolean(_("Contract")) string="Акты сверки", help="Создание актов сверки"
module_l10n_ru_upd_xml = fields.Boolean(_("Report_xml")) )
module_l10n_ru_doc = fields.Boolean(_("Print forms")) module_l10n_ru_contract = fields.Boolean(
module_l10n_ru_attorney = fields.Boolean(_("Consent")) string="Договоры", help="Управление договорами"
)
module_l10n_ru_upd_xml = fields.Boolean(
string="Экспорт УПД", help="Экспорт УПД в формате XML"
)
module_l10n_ru_doc = fields.Boolean(
string="Печатные формы", help="Формирование документов"
)
module_l10n_ru_attorney = fields.Boolean(
string="Доверенности", help="Оформление доверенностей"
)
@api.model
def write(self, values): def write(self, values):
company = self.env.company if self.env.company.country_id.code != "RU":
if company.country_id.code != 'RU': raise UserError("Признак Российской компании не обнаружен.")
raise UserError("Признак Российской компании не обнаружен!")
if _FIELDS_MODUL: # Проверяем наличие модуля в addons path,
missing_modules = set() # чтобы избежать ситуации, когда модуль присутствует в базе, но фактически удалён
for field in _FIELDS_MODUL: missing_modules = {
if self.mapped(field)[0]: field[7:]
module_name = field[7:] for field in MODULE_FIELDS
module_installed = self.env['ir.module.module'].search([('name', '=', module_name)], limit=1) if self.mapped(field)[0] and not modules.get_module_path(field[7:])
if not module_installed: }
missing_modules.add(module_name)
if missing_modules: if missing_modules:
message = "Обратитесь в тех.поддержку для получения лицензии для следующих модулей:\n" + \ raise UserError(
"\n".join(missing_modules) "Обратитесь в тех.поддержку для получения лицензии для следующих модулей:\n{}".format(
raise UserError(message) "\n".join(missing_modules)
return super(ResConfigSettings, self).write(values) )
)
return super().write(values)