diff --git a/email_template_dateutil/__init__.py b/email_template_dateutil/__init__.py new file mode 100644 index 000000000..095287680 --- /dev/null +++ b/email_template_dateutil/__init__.py @@ -0,0 +1,23 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2014 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 . +# +############################################################################## + +from . import email_template diff --git a/email_template_dateutil/__openerp__.py b/email_template_dateutil/__openerp__.py new file mode 100644 index 000000000..d2b65fee0 --- /dev/null +++ b/email_template_dateutil/__openerp__.py @@ -0,0 +1,56 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2014 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': 'Email Template Date Utils', + 'version': '0.1', + 'author': 'Savoir-faire Linux', + 'maintainer': 'Savoir-faire Linux', + 'website': 'http://www.savoirfairelinux.com', + 'license': 'AGPL-3', + 'category': 'Others', + 'summary': 'Adds extra date functions for email templates', + 'description': """ +This module adds an extra filter in email templates: + +format_date(format) : parses and formats a date or datetime string + +Example: ${ object.date_field|format_date('%m/%d/%Y') } + + +Contributors +------------ +* Vincent Vinet (vincent.vinet@savoirfairelinux.com) +""", + 'depends': [ + 'email_template', + ], + 'external_dependencies': { + 'python': [], + }, + 'data': [ + ], + 'demo': [], + 'test': [], + 'installable': True, + 'auto_install': False, +} diff --git a/email_template_dateutil/email_template.py b/email_template_dateutil/email_template.py new file mode 100644 index 000000000..abc3fa194 --- /dev/null +++ b/email_template_dateutil/email_template.py @@ -0,0 +1,47 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2014 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 . +# +############################################################################## + +from datetime import datetime + +from openerp.tools import ( + DEFAULT_SERVER_DATETIME_FORMAT as DTFMT, + DEFAULT_SERVER_DATE_FORMAT as DFMT, +) +from openerp.addons.email_template import email_template + + +def format_date(dtstr, new_format): + if not dtstr: + return dtstr + + try: + return datetime.strptime(dtstr, DTFMT).strftime(new_format) + except ValueError: + # Maybe this is a date, not datetime + pass + + return datetime.strptime(dtstr, DFMT).strftime(new_format) + + +email_template.mako_template_env.filters.update( + format_date=format_date, +)