Browse Source
Merge pull request #155 from savoirfairelinux/8.0_add_qweb_usertime
Merge pull request #155 from savoirfairelinux/8.0_add_qweb_usertime
[ADD] qweb_usertimepull/76/merge
Yannick Vaucher
10 years ago
5 changed files with 174 additions and 0 deletions
-
38qweb_usertime/README.rst
-
25qweb_usertime/__init__.py
-
41qweb_usertime/__openerp__.py
-
70qweb_usertime/qweb.py
-
BINqweb_usertime/static/description/icon.png
@ -0,0 +1,38 @@ |
|||||
|
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg |
||||
|
:alt: License: AGPL-3 |
||||
|
|
||||
|
QWeb Usertime Tag |
||||
|
================= |
||||
|
|
||||
|
This module adds a new tag renderer to QWeb, "usertime", which allows adding |
||||
|
the current time in the timezone of the user. It can be used as:: |
||||
|
|
||||
|
<t t-usertime="%Y-%m-%d %H:%M:%S" /> |
||||
|
|
||||
|
or, if you want to use the default date and time formats based on the users |
||||
|
language:: |
||||
|
|
||||
|
<t t-usertime="" /> |
||||
|
|
||||
|
|
||||
|
Credits |
||||
|
======= |
||||
|
|
||||
|
Contributors |
||||
|
------------ |
||||
|
|
||||
|
* Vincent Vinet <vincent.vinet@savoirfairelinux.com> |
||||
|
|
||||
|
Maintainer |
||||
|
---------- |
||||
|
|
||||
|
.. image:: http://odoo-community.org/logo.png |
||||
|
:alt: Odoo Community Association |
||||
|
:target: http://odoo-community.org |
||||
|
|
||||
|
This module is maintained by the OCA. |
||||
|
|
||||
|
OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. |
||||
|
|
||||
|
To contribute to this module, please visit http://odoo-community.org. |
||||
|
|
@ -0,0 +1,25 @@ |
|||||
|
# -*- encoding: utf-8 -*- |
||||
|
############################################################################## |
||||
|
# |
||||
|
# OpenERP, Open Source Management Solution |
||||
|
# This module copyright (C) 2015 Savoir-faire Linux |
||||
|
# (<http://www.savoirfairelinux.com>). |
||||
|
# |
||||
|
# This program is free software: you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU Affero General Public License as |
||||
|
# published by the Free Software Foundation, either version 3 of the |
||||
|
# License, or (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU Affero General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU Affero General Public License |
||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
|
||||
|
""" QWeb usertime addon """ |
||||
|
|
||||
|
from . import qweb |
@ -0,0 +1,41 @@ |
|||||
|
# -*- encoding: utf-8 -*- |
||||
|
############################################################################## |
||||
|
# |
||||
|
# OpenERP, Open Source Management Solution |
||||
|
# This module copyright (C) 2015 Savoir-faire Linux |
||||
|
# (<http://www.savoirfairelinux.com>). |
||||
|
# |
||||
|
# This program is free software: you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU Affero General Public License as |
||||
|
# published by the Free Software Foundation, either version 3 of the |
||||
|
# License, or (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU Affero General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU Affero General Public License |
||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
|
||||
|
{ |
||||
|
'name': 'QWeb User Time', |
||||
|
'version': '1.0', |
||||
|
'author': 'Savoir-faire Linux,Odoo Community Association (OCA)', |
||||
|
'maintainer': 'Odoo Community Association (OCA)', |
||||
|
'website': 'http://www.savoirfairelinux.com', |
||||
|
'license': 'AGPL-3', |
||||
|
'category': 'Tools', |
||||
|
'summary': 'Add user time rendering support in QWeb', |
||||
|
'depends': [ |
||||
|
'base', |
||||
|
], |
||||
|
'external_dependencies': { |
||||
|
'python': [], |
||||
|
}, |
||||
|
'data': [ |
||||
|
], |
||||
|
'installable': True, |
||||
|
} |
@ -0,0 +1,70 @@ |
|||||
|
# -*- encoding: utf-8 -*- |
||||
|
############################################################################## |
||||
|
# |
||||
|
# OpenERP, Open Source Management Solution |
||||
|
# This module copyright (C) 2015 Savoir-faire Linux |
||||
|
# (<http://www.savoirfairelinux.com>). |
||||
|
# |
||||
|
# This program is free software: you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU Affero General Public License as |
||||
|
# published by the Free Software Foundation, either version 3 of the |
||||
|
# License, or (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU Affero General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU Affero General Public License |
||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
|
||||
|
""" QWeb usertime : adds support for t-usertime on qweb reports """ |
||||
|
|
||||
|
from datetime import datetime |
||||
|
import logging |
||||
|
import pytz |
||||
|
|
||||
|
from openerp import models |
||||
|
from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT |
||||
|
|
||||
|
_logger = logging.getLogger(__name__) |
||||
|
|
||||
|
|
||||
|
class QWeb(models.Model): |
||||
|
_inherit = 'ir.qweb' |
||||
|
|
||||
|
def render_tag_usertime(self, element, template_attributes, |
||||
|
generated_attributes, qwebcontext): |
||||
|
tformat = template_attributes['usertime'] |
||||
|
if not tformat: |
||||
|
# No format, use default time and date formats from qwebcontext |
||||
|
lang = ( |
||||
|
qwebcontext['env'].lang or |
||||
|
qwebcontext['env'].context['lang'] or |
||||
|
qwebcontext['user'].lang |
||||
|
) |
||||
|
if lang: |
||||
|
lang = qwebcontext['env']['res.lang'].search( |
||||
|
[('code', '=', lang)] |
||||
|
) |
||||
|
tformat = "{0.date_format} {0.time_format}".format(lang) |
||||
|
else: |
||||
|
tformat = DEFAULT_SERVER_DATETIME_FORMAT |
||||
|
|
||||
|
now = datetime.now() |
||||
|
|
||||
|
tz_name = qwebcontext['user'].tz |
||||
|
if tz_name: |
||||
|
try: |
||||
|
utc = pytz.timezone('UTC') |
||||
|
context_tz = pytz.timezone(tz_name) |
||||
|
utc_timestamp = utc.localize(now, is_dst=False) # UTC = no DST |
||||
|
now = utc_timestamp.astimezone(context_tz) |
||||
|
except Exception: |
||||
|
_logger.debug( |
||||
|
"failed to compute context/client-specific timestamp, " |
||||
|
"using the UTC value", |
||||
|
exc_info=True) |
||||
|
return now.strftime(tformat) |
After Width: 128 | Height: 128 | Size: 9.2 KiB |
Write
Preview
Loading…
Cancel
Save
Reference in new issue