diff --git a/app_common/__manifest__.py b/app_common/__manifest__.py index c3c4362e..77663ae5 100644 --- a/app_common/__manifest__.py +++ b/app_common/__manifest__.py @@ -33,7 +33,7 @@ { 'name': "odooai Odooapp Common Func", - 'version': '13.22.08.21', + 'version': '13.24.03.11', 'author': 'odooai.cn', 'category': 'Base', 'website': 'https://www.odooai.cn', diff --git a/app_common/models/base.py b/app_common/models/base.py index d997d8c9..f188071e 100644 --- a/app_common/models/base.py +++ b/app_common/models/base.py @@ -51,6 +51,12 @@ EXCLU_FIELDS = [ class Base(models.AbstractModel): _inherit = 'base' + @api.model + def _app_check_sys_op(self): + if self.env.user.has_group('base.group_erp_manager'): + return True + return False + @api.model def _get_normal_fields(self): f_list = [] @@ -99,7 +105,9 @@ class Base(models.AbstractModel): return dt.astimezone(pytz_timezone).strftime(return_format) @api.model - def get_image_from_url(self, url): + def _get_image_from_url(self, url): + if not self._app_check_sys_op(): + return False if not url: return None try: diff --git a/app_common/static/description/index.html b/app_common/static/description/index.html index b3185437..658fd771 100644 --- a/app_common/static/description/index.html +++ b/app_common/static/description/index.html @@ -4,7 +4,7 @@

-

Lastest update: v13.20.01.01

+

Lastest update: v13.24.03.11

diff --git a/app_odoo_customize/__manifest__.py b/app_odoo_customize/__manifest__.py index 15f29a61..272f99cc 100644 --- a/app_odoo_customize/__manifest__.py +++ b/app_odoo_customize/__manifest__.py @@ -23,7 +23,7 @@ { 'name': 'odoo Tweak,Boost,Customize,Ai All in One. Customize,UI,Boost,Security,Data,Development Enhance', - 'version': '13.23.12.28', + 'version': '13.24.03.11', 'author': 'odooai.cn', 'category': 'Productivity', 'website': 'https://www.odooai.cn', diff --git a/app_odoo_customize/models/res_config_settings.py b/app_odoo_customize/models/res_config_settings.py index f0b98104..2a0f0238 100644 --- a/app_odoo_customize/models/res_config_settings.py +++ b/app_odoo_customize/models/res_config_settings.py @@ -3,7 +3,7 @@ import logging from odoo import api, fields, models, _ - +from odoo.exceptions import UserError _logger = logging.getLogger(__name__) @@ -106,14 +106,21 @@ class ResConfigSettings(models.TransientModel): ir_config.set_param("app_ribbon_name", self.app_ribbon_name or "*odooai.cn") def set_module_url(self): - sql = "UPDATE ir_module_module SET website = '%s' WHERE license like '%s' and website <> ''" % (self.app_enterprise_url, 'OEEL%') - try: - self._cr.execute(sql) - self._cr.commit() - except Exception as e: - pass + if not self._app_check_sys_op(): + raise UserError(_('Not allow.')) + config_parameter = self.env['ir.config_parameter'].sudo() + app_enterprise_url = config_parameter.get_param('app_enterprise_url', 'https://www.odooai.cn') + modules = self.env['ir.module.module'].search([('license', 'like', 'OEEL%'), ('website', '!=', False)]) + if modules: + sql = "UPDATE ir_module_module SET website = '%s' WHERE id IN %s" % (app_enterprise_url, tuple(modules.ids)) + try: + self._cr.execute(sql) + except Exception as e: + pass - def clear_table(self, t_name): + def _clear_table(self, t_name): + if not self._app_check_sys_op(): + raise UserError(_('Not allow.')) sql = "delete from %s" % t_name # 增加多公司处理 try: @@ -125,7 +132,9 @@ class ResConfigSettings(models.TransientModel): return False # 清数据,o=对象, s=序列 - def remove_app_data(self, o, s=[]): + def _remove_app_data(self, o, s=[]): + if not self._app_check_sys_op(): + raise UserError(_('Not allow.')) for line in o: # 检查是否存在 try: @@ -142,7 +151,7 @@ class ResConfigSettings(models.TransientModel): else: t_name = obj._table # todo: 每个项目具体优化 - self.clear_table(t_name) + self._clear_table(t_name) # 更新序号 for line in s: @@ -173,7 +182,7 @@ class ResConfigSettings(models.TransientModel): seqs = [ 'sale', ] - return self.remove_app_data(to_removes, seqs) + return self._remove_app_data(to_removes, seqs) def remove_product(self): to_removes = [ @@ -184,7 +193,7 @@ class ResConfigSettings(models.TransientModel): seqs = [ 'product.product', ] - return self.remove_app_data(to_removes, seqs) + return self._remove_app_data(to_removes, seqs) def remove_product_attribute(self): to_removes = [ @@ -193,7 +202,7 @@ class ResConfigSettings(models.TransientModel): 'product.attribute', ] seqs = [] - return self.remove_app_data(to_removes, seqs) + return self._remove_app_data(to_removes, seqs) def remove_pos(self): to_removes = [ @@ -206,12 +215,12 @@ class ResConfigSettings(models.TransientModel): seqs = [ 'pos.', ] - res = self.remove_app_data(to_removes, seqs) + res = self._remove_app_data(to_removes, seqs) # 更新要关帐的值,因为 store=true 的计算字段要重置 try: - statement = self.env['account.bank.statement'].sudo().search([]) + statement = self.env['account.bank.statement'].search([]) for s in statement: s._end_balance() except Exception as e: @@ -229,7 +238,7 @@ class ResConfigSettings(models.TransientModel): seqs = [ 'purchase.', ] - return self.remove_app_data(to_removes, seqs) + return self._remove_app_data(to_removes, seqs) def remove_expense(self): to_removes = [ @@ -242,7 +251,7 @@ class ResConfigSettings(models.TransientModel): seqs = [ 'hr.expense.', ] - return self.remove_app_data(to_removes, seqs) + return self._remove_app_data(to_removes, seqs) def remove_mrp(self): to_removes = [ @@ -260,7 +269,7 @@ class ResConfigSettings(models.TransientModel): seqs = [ 'mrp.', ] - return self.remove_app_data(to_removes, seqs) + return self._remove_app_data(to_removes, seqs) def remove_mrp_bom(self): to_removes = [ @@ -269,7 +278,7 @@ class ResConfigSettings(models.TransientModel): 'mrp.bom', ] seqs = [] - return self.remove_app_data(to_removes, seqs) + return self._remove_app_data(to_removes, seqs) def remove_inventory(self): to_removes = [ @@ -298,7 +307,7 @@ class ResConfigSettings(models.TransientModel): 'product.tracking.default', 'WH/', ] - return self.remove_app_data(to_removes, seqs) + return self._remove_app_data(to_removes, seqs) def remove_account(self): to_removes = [ @@ -315,7 +324,7 @@ class ResConfigSettings(models.TransientModel): 'account.reconcile.model.template', 'account.reconcile.model', ] - res = self.remove_app_data(to_removes, []) + res = self._remove_app_data(to_removes, []) # extra 更新序号 domain = [ @@ -426,9 +435,9 @@ class ResConfigSettings(models.TransientModel): pass # raise Warning(e) seqs = [] - res = self.remove_app_data(to_removes, seqs) + res = self._remove_app_data(to_removes, seqs) self._cr.commit() - self.env.company.sudo().write({'chart_template_id': None}) + self.env.company.write({'chart_template_id': None}) return res def remove_project(self): @@ -440,7 +449,7 @@ class ResConfigSettings(models.TransientModel): 'project.project', ] seqs = [] - return self.remove_app_data(to_removes, seqs) + return self._remove_app_data(to_removes, seqs) def remove_quality(self): to_removes = [ @@ -459,7 +468,7 @@ class ResConfigSettings(models.TransientModel): 'quality.alert', # 'quality.point', ] - return self.remove_app_data(to_removes, seqs) + return self._remove_app_data(to_removes, seqs) def remove_quality_setting(self): to_removes = [ @@ -471,7 +480,7 @@ class ResConfigSettings(models.TransientModel): 'quality.reason', 'quality.tag', ] - return self.remove_app_data(to_removes) + return self._remove_app_data(to_removes) def remove_website(self): to_removes = [ @@ -492,7 +501,7 @@ class ResConfigSettings(models.TransientModel): # 'website', ] seqs = [] - return self.remove_app_data(to_removes, seqs) + return self._remove_app_data(to_removes, seqs) def remove_message(self): to_removes = [ @@ -504,7 +513,7 @@ class ResConfigSettings(models.TransientModel): 'bus.bus', ] seqs = [] - return self.remove_app_data(to_removes, seqs) + return self._remove_app_data(to_removes, seqs) def remove_workflow(self): to_removes = [ @@ -513,7 +522,7 @@ class ResConfigSettings(models.TransientModel): 'wkf.instance', ] seqs = [] - return self.remove_app_data(to_removes, seqs) + return self._remove_app_data(to_removes, seqs) def remove_all_biz(self): self.remove_account() diff --git a/app_odoo_customize/static/description/index.html b/app_odoo_customize/static/description/index.html index d0cb9346..043d862b 100644 --- a/app_odoo_customize/static/description/index.html +++ b/app_odoo_customize/static/description/index.html @@ -20,7 +20,7 @@
-

This is a Long Term Support Apps.Update: v16.5.23.09.30

+

This is a Long Term Support Apps.Update: v13.24.03.11

  • 1. Deletes Odoo label in footer