[fix] email digest periods for weekly and monthly

This commit is contained in:
Rushabh Mehta
2015-11-02 17:47:10 +05:30
parent a9dda232b2
commit bd4814fbb7
3 changed files with 21 additions and 29 deletions

View File

@@ -111,7 +111,8 @@ class EmailDigest(Document):
"""Set standard digest style"""
context.text_muted = '#8D99A6'
context.text_color = '#36414C'
context.h1 = 'margin-bottom: 30px; margin-bottom: 0; margin-top: 40px; font-weight: 400;'
context.h1 = 'margin-bottom: 30px; margin-top: 40px; font-weight: 400; font-size: 30px;'
context.h2 = 'margin-bottom: 30px; margin-top: -20px; font-weight: 400; font-size: 20px;'
context.label_css = '''display: inline-block; color: {text_muted};
padding: 3px 7px; margin-right: 7px;'''.format(text_muted = context.text_muted)
context.section_head = 'margin-top: 60px; font-size: 16px;'
@@ -152,7 +153,7 @@ class EmailDigest(Document):
todo_list = frappe.db.sql("""select *
from `tabToDo` where (owner=%s or assigned_by=%s) and status="Open"
order by field(priority, 'High', 'Medium', 'Low') asc, date asc""",
order by field(priority, 'High', 'Medium', 'Low') asc, date asc limit 20""",
(user_id, user_id), as_dict=True)
for t in todo_list:
@@ -289,6 +290,7 @@ class EmailDigest(Document):
elif self.frequency == "Weekly":
# from date is the previous week's monday
from_date = today - timedelta(days=today.weekday(), weeks=1)
# to date is sunday i.e. the previous day
to_date = from_date + timedelta(days=6)
else:
@@ -300,32 +302,18 @@ class EmailDigest(Document):
return from_date, to_date
def set_dates(self):
today = now_datetime().date()
self.future_from_date, self.future_to_date = self.from_date, self.to_date
# decide from date based on email digest frequency
if self.frequency == "Daily":
# from date, to_date is today
self.future_from_date = self.future_to_date = today
self.past_from_date = self.past_to_date = today - relativedelta(days = 1)
self.past_from_date = self.past_to_date = self.future_from_date - relativedelta(days = 1)
elif self.frequency == "Weekly":
# from date is the current week's monday
self.future_from_date = today - relativedelta(days=today.weekday())
# to date is the current week's sunday
self.future_to_date = self.future_from_date + relativedelta(days=6)
self.past_from_date = self.future_from_date - relativedelta(days=7)
self.past_to_date = self.future_to_date - relativedelta(days=7)
self.past_from_date = self.future_from_date - relativedelta(weeks=1)
self.past_to_date = self.future_from_date - relativedelta(days=1)
else:
# from date is the 1st day of the current month
self.future_from_date = today - relativedelta(days=today.day-1)
# to date is the last day of the current month
self.future_to_date = self.future_from_date + relativedelta(days=-1, months=1)
self.past_from_date = self.future_from_date - relativedelta(month=1)
self.past_to_date = self.future_to_date - relativedelta(month=1)
self.past_from_date = self.future_from_date - relativedelta(months=1)
self.past_to_date = self.future_from_date - relativedelta(days=1)
def get_next_sending(self):
from_date, to_date = self.get_from_to_date()

View File

@@ -11,6 +11,7 @@
<div style="max-width: 500px; margin: auto; padding: 20px 0 40px 0">
<h1 style="{{ h1 }}">{{ title }}</h1>
<h2 style="{{ h2 }}">{{ company }}</h2>
<h4 style="font-weight: normal; color: {{ text_muted }}; margin-top: 7px; font-size: 16px; margin-top: 7px;">
<p>{% if frequency == "Daily" %}
{{ frappe.format_date(future_from_date) }}