Browse Source

[fix] [hot] birthdays

version-14
Rushabh Mehta 10 years ago
parent
commit
9de77b59de
3 changed files with 32 additions and 6 deletions
  1. +3
    -2
      frappe/cli.py
  2. +4
    -4
      frappe/core/doctype/event/event.py
  3. +25
    -0
      frappe/core/doctype/event/test_event.py

+ 3
- 2
frappe/cli.py View File

@@ -792,7 +792,7 @@ def run_tests(app=None, module=None, doctype=None, verbose=False, tests=(), driv
import frappe.test_runner
from frappe.utils import sel

sel.start(verbose, driver)
# sel.start(verbose, driver)

ret = 1
try:
@@ -801,7 +801,8 @@ def run_tests(app=None, module=None, doctype=None, verbose=False, tests=(), driv
if len(ret.failures) == 0 and len(ret.errors) == 0:
ret = 0
finally:
sel.close()
pass
# sel.close()

return ret



+ 4
- 4
frappe/core/doctype/event/event.py View File

@@ -131,7 +131,7 @@ def get_events(start, end, user=None, for_reminder=False):
# repeat for all years in period
for year in range(start_year, end_year+1):
date = str(year) + "-" + event_start
if date >= start and date <= repeat:
if date >= start and date <= end and date <= repeat:
add_event(e, date)

remove_events.append(e)
@@ -148,7 +148,7 @@ def get_events(start, end, user=None, for_reminder=False):

start_from = date
for i in xrange(int(date_diff(end, start) / 30) + 3):
if date >= start and date <= repeat and date >= event_start:
if date >= start and date <= end and date <= repeat and date >= event_start:
add_event(e, date)
date = add_months(start_from, i+1)

@@ -163,7 +163,7 @@ def get_events(start, end, user=None, for_reminder=False):
date = add_days(start, weekday - start_weekday)

for cnt in xrange(int(date_diff(end, start) / 7) + 3):
if date >= start and date <= repeat and date >= event_start:
if date >= start and date <= end and date <= repeat and date >= event_start:
add_event(e, date)

date = add_days(date, 7)
@@ -173,7 +173,7 @@ def get_events(start, end, user=None, for_reminder=False):
if e.repeat_on=="Every Day":
for cnt in xrange(date_diff(end, start) + 1):
date = add_days(start, cnt)
if date >= event_start and date <= repeat \
if date >= event_start and date <= end and date <= repeat \
and e[weekdays[getdate(date).weekday()]]:
add_event(e, date)
remove_events.append(e)


+ 25
- 0
frappe/core/doctype/event/test_event.py View File

@@ -8,6 +8,8 @@ import frappe.defaults
import unittest
import json

from frappe.core.doctype.event.event import get_events

test_records = frappe.get_test_records('Event')

class TestEvent(unittest.TestCase):
@@ -94,3 +96,26 @@ class TestEvent(unittest.TestCase):
# cleanup
ev.delete()

def test_recurring(self):
ev = frappe.get_doc({
"doctype":"Event",
"subject": "_Test Event",
"starts_on": "2014-02-01",
"event_type": "Public",
"repeat_this_event": 1,
"repeat_on": "Every Year"
})
ev.insert()

ev_list = get_events("2014-02-01", "2014-02-01", "Administrator", for_reminder=True)
self.assertTrue(filter(lambda e: e.name==ev.name, ev_list))

ev_list1 = get_events("2015-01-20", "2015-01-20", "Administrator", for_reminder=True)
self.assertFalse(filter(lambda e: e.name==ev.name, ev_list1))

ev_list2 = get_events("2014-02-20", "2014-02-20", "Administrator", for_reminder=True)
self.assertFalse(filter(lambda e: e.name==ev.name, ev_list2))

ev_list3 = get_events("2015-02-01", "2015-02-01", "Administrator", for_reminder=True)
self.assertTrue(filter(lambda e: e.name==ev.name, ev_list3))


Loading…
Cancel
Save