diff --git a/app_common/__manifest__.py b/app_common/__manifest__.py index 6022592f..449ab23f 100644 --- a/app_common/__manifest__.py +++ b/app_common/__manifest__.py @@ -33,7 +33,7 @@ { 'name': "Sunpop Odooapp Common Func", - 'version': '13.21.08.21', + 'version': '13.21.08.26', 'author': 'Sunpop.cn', 'category': 'Base', 'website': 'https://www.sunpop.cn', diff --git a/app_common/i18n/zh_CN.po b/app_common/i18n/zh_CN.po index a4f04c96..f1e36e3e 100644 --- a/app_common/i18n/zh_CN.po +++ b/app_common/i18n/zh_CN.po @@ -1,31 +1,14 @@ # Translation of Odoo Server. -# This file contains the translation of the following modules: -# * app_common # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0+e\n" +"Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-19 09:28+0000\n" -"PO-Revision-Date: 2021-08-19 09:28+0000\n" -"Last-Translator: \n" +"POT-Creation-Date: 2018-01-08 14:28+0000\n" +"PO-Revision-Date: 2018-01-08 14:28+0000\n" +"Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" - -#. module: app_common -#: model:ir.model.fields,field_description:app_common.field_ir_cron__trigger_user_id -msgid "Last Trigger User" -msgstr "手动运行用户" - -#. module: app_common -#: model:ir.model,name:app_common.model_ir_cron -msgid "Scheduled Actions" -msgstr "安排的动作" - -#. module: app_common -#: model:ir.model,name:app_common.model_ir_ui_view -msgid "View" -msgstr "查看" diff --git a/app_common/models/__init__.py b/app_common/models/__init__.py index b9904014..e64a9280 100644 --- a/app_common/models/__init__.py +++ b/app_common/models/__init__.py @@ -24,7 +24,8 @@ from . import base from . import fields -from . import view_validation +# from . import validator from . import ir_ui_view -from . import ir_cron +from . import res_users + diff --git a/app_common/models/base.py b/app_common/models/base.py index 26d72f9a..a621ed65 100644 --- a/app_common/models/base.py +++ b/app_common/models/base.py @@ -9,56 +9,9 @@ from io import BytesIO from datetime import date, datetime, time import pytz -import logging - -_logger = logging.getLogger(__name__) - -# 常规的排除的fields -EXCLU_FIELDS = [ - '__last_update', - 'access_token', - 'access_url', - 'access_warning', - 'activity_date_deadline', - 'activity_exception_decoration', - 'activity_exception_icon', - 'activity_ids', - 'activity_state', - 'activity_summary', - 'activity_type_id', - 'activity_user_id', - 'display_name', - 'message_attachment_count', - 'message_channel_ids', - 'message_follower_ids', - 'message_has_error', - 'message_has_error_counter', - 'message_has_sms_error', - 'message_ids', - 'message_is_follower', - 'message_main_attachment_id', - 'message_needaction', - 'message_needaction_counter', - 'message_partner_ids', - 'message_unread', - 'message_unread_counter', - 'website_message_ids', - 'write_date', - 'write_uid', -] - - class Base(models.AbstractModel): _inherit = 'base' - @api.model - def _get_normal_fields(self): - f_list = [] - for k, v in self._fields.items(): - if k not in EXCLU_FIELDS: - f_list.append(k) - return f_list - @api.model def _app_get_m2o_default(self, fieldname, domain=[]): if hasattr(self, fieldname) and self._fields[fieldname].type == 'many2one': @@ -71,17 +24,16 @@ class Base(models.AbstractModel): def _app_dt2local(self, value, return_format=DEFAULT_SERVER_DATETIME_FORMAT): """ - 将value中时间,按格式转为用户本地时间.注意只处理in str为字符串类型,如果是时间类型直接用 datetime.now(tz) + 将value中时间,按格式转为用户本地时间 """ if not value: return value if isinstance(value, datetime): value = value.strftime(return_format) dt = datetime.strptime(value, return_format) - user_tz = pytz.timezone(self.env.user.tz or 'Etc/GMT-8') - _logger.warning('============= user2 tz: %s' % user_tz) + pytz_timezone = pytz.timezone(self.env.user.tz or 'Etc/GMT-8') dt = dt.replace(tzinfo=pytz.timezone('UTC')) - return dt.astimezone(user_tz).strftime(return_format) + return dt.astimezone(pytz_timezone).strftime(return_format) def _app_dt2utc(self, value, return_format=DEFAULT_SERVER_DATETIME_FORMAT): """ @@ -92,9 +44,9 @@ class Base(models.AbstractModel): if isinstance(value, datetime): value = value.strftime(return_format) dt = datetime.strptime(value, return_format) - pytz_timezone = pytz.timezone('Etc/GMT+8') + user_tz = pytz.timezone(self.env.user.tz or 'Etc/GMT+8') dt = dt.replace(tzinfo=pytz.timezone('UTC')) - return dt.astimezone(pytz_timezone).strftime(return_format) + return dt.astimezone(user_tz).strftime(return_format) @api.model def get_image_from_url(self, url): diff --git a/app_common/models/ir_ui_view.py b/app_common/models/ir_ui_view.py index a864de21..bed01195 100644 --- a/app_common/models/ir_ui_view.py +++ b/app_common/models/ir_ui_view.py @@ -22,7 +22,7 @@ def app_relaxng(view_type): """ Return a validator for the given view type, or None. """ if view_type not in _relaxng_cache: # tree, search 特殊 - if view_type in ['tree', 'search', 'pivot']: + if view_type in ['tree', 'search']: _file = get_resource_path('app_common', 'rng', '%s_view.rng' % view_type) else: _file = get_resource_path('base', 'rng', '%s_view.rng' % view_type) diff --git a/app_common/models/res_users.py b/app_common/models/res_users.py new file mode 100644 index 00000000..1c18b7ad --- /dev/null +++ b/app_common/models/res_users.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models, tools, _ + + +class ResUsers(models.Model): + _inherit = 'res.users' + + login = fields.Char(index=True) diff --git a/app_common/rng/common.rng b/app_common/rng/common.rng index 5aff83fc..a62f159a 100644 --- a/app_common/rng/common.rng +++ b/app_common/rng/common.rng @@ -268,7 +268,6 @@ - @@ -277,16 +276,7 @@ - - - - - - - - - - + diff --git a/app_common/rng/tree_view.rng b/app_common/rng/tree_view.rng index fd800c55..f295cdf7 100644 --- a/app_common/rng/tree_view.rng +++ b/app_common/rng/tree_view.rng @@ -46,16 +46,6 @@ - - - - - - - - - -