Add fix for bst

This commit is contained in:
Ken Tsang
2017-04-03 15:49:23 +01:00
parent f9264ea399
commit 2b53e14a73
4 changed files with 30 additions and 12 deletions
@@ -1,13 +1,11 @@
import base64
import json
from datetime import datetime, timedelta
import requests
from datetime import datetime
from flask import current_app
from app.utils import (
get_midnight_for_day_before,
get_london_midnight_in_utc
)
from app.utils import get_midnight_for_day_before, get_london_midnight_in_utc, get_utc_time_in_bst
class PerformancePlatformClient:
@@ -29,7 +27,7 @@ class PerformancePlatformClient:
def send_performance_stats(self, date, channel, count, period):
if self.active:
payload = {
'_timestamp': date.isoformat(),
'_timestamp': get_utc_time_in_bst(date).isoformat(),
'service': 'govuk-notify',
'channel': channel,
'count': count,
@@ -45,14 +43,16 @@ class PerformancePlatformClient:
end_date = get_london_midnight_in_utc(today)
from app.dao.notifications_dao import get_total_sent_notifications_in_date_range
email_count = get_total_sent_notifications_in_date_range(start_date, end_date, 'email')
sms_count = get_total_sent_notifications_in_date_range(start_date, end_date, 'sms')
return {
"start_date": start_date,
"end_date": end_date,
"email": {
"count": get_total_sent_notifications_in_date_range(start_date, end_date, 'email')
"count": email_count
},
"sms": {
"count": get_total_sent_notifications_in_date_range(start_date, end_date, 'sms')
"count": sms_count
}
}
+7 -1
View File
@@ -5,6 +5,8 @@ from flask import url_for
from sqlalchemy import func
from notifications_utils.template import SMSMessageTemplate, PlainTextEmailTemplate, LetterPreviewTemplate
local_timezone = pytz.timezone("Europe/London")
def pagination_links(pagination, endpoint, **kwargs):
if 'page' in kwargs:
@@ -39,7 +41,7 @@ def get_london_midnight_in_utc(date):
:param date: the day to calculate the London midnight in UTC for
:return: the datetime of London midnight in UTC, for example 2016-06-17 = 2016-06-17 23:00:00
"""
return pytz.timezone('Europe/London').localize(datetime.combine(date, datetime.min.time())).astimezone(
return local_timezone.localize(datetime.combine(date, datetime.min.time())).astimezone(
pytz.UTC).replace(
tzinfo=None)
@@ -49,6 +51,10 @@ def get_midnight_for_day_before(date):
return get_london_midnight_in_utc(day_before)
def get_utc_time_in_bst(utc_dt):
return utc_dt.replace(tzinfo=pytz.utc).astimezone(local_timezone).replace(tzinfo=None)
def get_london_month_from_utc_column(column):
"""
Where queries need to count notifications by month it needs to be