diff --git a/qweb_usertime/__init__.py b/qweb_usertime/__init__.py new file mode 100644 index 000000000..cb9ce2e6f --- /dev/null +++ b/qweb_usertime/__init__.py @@ -0,0 +1,25 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2015 Savoir-faire Linux +# (). +# +# 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 . +# +############################################################################## + +""" QWeb usertime addon """ + +from . import qweb diff --git a/qweb_usertime/__openerp__.py b/qweb_usertime/__openerp__.py new file mode 100644 index 000000000..55186fada --- /dev/null +++ b/qweb_usertime/__openerp__.py @@ -0,0 +1,41 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2015 Savoir-faire Linux +# (). +# +# 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 . +# +############################################################################## + +{ + '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, +} diff --git a/qweb_usertime/qweb.py b/qweb_usertime/qweb.py new file mode 100644 index 000000000..d41cbc0c6 --- /dev/null +++ b/qweb_usertime/qweb.py @@ -0,0 +1,54 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2015 Savoir-faire Linux +# (). +# +# 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 . +# +############################################################################## + +""" QWeb usertime : adds support for t-usertime on qweb reports """ + +from datetime import datetime +import logging +import pytz + +from openerp import models + +_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'] + 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) diff --git a/qweb_usertime/static/description/icon.png b/qweb_usertime/static/description/icon.png new file mode 100644 index 000000000..3a0328b51 Binary files /dev/null and b/qweb_usertime/static/description/icon.png differ diff --git a/qweb_usertime/static/description/icon.svg b/qweb_usertime/static/description/icon.svg new file mode 100644 index 000000000..a7a26d093 --- /dev/null +++ b/qweb_usertime/static/description/icon.svg @@ -0,0 +1,79 @@ + + + + + + + + image/svg+xml + + + + + + + + + + +