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