Skip to content

Commit

Permalink
[IMP] event_email_reminder: Allow negative intervals (#107)
Browse files Browse the repository at this point in the history
* [IMP] event_email_reminder: Allow negative intervals

This way, we can schedule an email after an event has finished.

* fixup! [IMP] event_email_reminder: Allow negative intervals
  • Loading branch information
yajo authored and rafaelbn committed May 9, 2018
1 parent 6a468a4 commit e31aa6b
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 9 deletions.
2 changes: 1 addition & 1 deletion event_email_reminder/__openerp__.py
Expand Up @@ -7,7 +7,7 @@
{
"name": "Event Email Reminder",
"summary": "Send an email before an event start",
"version": "9.0.1.1.0",
"version": "9.0.1.1.1",
"category": "Event Management",
'website': 'http://www.tecnativa.com',
'author': 'Tecnativa, '
Expand Down
21 changes: 13 additions & 8 deletions event_email_reminder/models/event.py
Expand Up @@ -32,7 +32,8 @@ def run_event_email_reminder(
template_id=None, partner_ids=None):
"""Enqueue mail with a summary of events that begin on days parameter
:param int days: number of days to reminder when events start.
:param int days:
Number of days to reminder when events start (or end, if negative).
:param bool draft_events: filter by draft events too.
:param bool near_events: If you want receive the events which start
between now and limit date.
Expand All @@ -41,23 +42,27 @@ def run_event_email_reminder(
want to notify.
"""
today = fields.Date.context_today(self)
limit_date = fields.Date.from_string(today) + timedelta(days=days)
limit_date = fields.Date.to_string(
fields.Date.from_string(today) + timedelta(days=days),
)
if draft_events:
domain = [('state', 'in', ['draft', 'confirm'])]
else:
domain = [('state', '=', 'confirm')]
if not near_events:
domain.extend([
('date_begin', '>=', '%s 00:00:00' % (
fields.Date.to_string(limit_date))),
('date_begin', '<=', '%s 23:59:59' % (
fields.Date.to_string(limit_date)))
('date_begin', '>=', '%s 00:00:00' % limit_date),
('date_begin', '<=', '%s 23:59:59' % limit_date),
])
elif today > limit_date:
domain.extend([
('date_end', '>=', '%s 00:00:00' % limit_date),
('date_end', '<=', '%s 23:59:59' % today),
])
else:
domain.extend([
('date_begin', '>=', '%s 00:00:00' % today),
('date_begin', '<=', '%s 23:59:59' % (
fields.Date.to_string(limit_date)))
('date_begin', '<=', '%s 23:59:59' % limit_date),
])
events = self.search(domain)
if events:
Expand Down

0 comments on commit e31aa6b

Please sign in to comment.