From 10dd236cda32102534605183705f3bdc6e1b5cbf Mon Sep 17 00:00:00 2001 From: Ben West Date: Thu, 26 Jan 2023 12:52:32 -0800 Subject: [PATCH] daytoday: Align start of day with data across zones This change correctly aligns the name of the day in the current zone with the start of the data for the equivalent day in the profile's zone. This makes it so that viewing a day to day report in any timezone works going both east and west directions. --- lib/report/reportclient.js | 3 ++- lib/report_plugins/daytoday.js | 2 +- tests/reports.test.js | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/report/reportclient.js b/lib/report/reportclient.js index 0ecdf2dc2da..9b918d6fb84 100644 --- a/lib/report/reportclient.js +++ b/lib/report/reportclient.js @@ -259,9 +259,10 @@ var init = function init () { if ($('#rp_enabledate').is(':checked')) { matchesneeded++; var from = moment.tz(moment($('#rp_from').val()).startOf('day'), zone).startOf('day'); - var to = moment.tz(moment($('#rp_to').val()).startOf('day'), zone).endOf('day'); + var to = moment.tz(moment($('#rp_to').val()).endOf('day'), zone).endOf('day'); timerange = '&find[created_at][$gte]=' + from.toISOString() + '&find[created_at][$lt]=' + to.toISOString(); + //console.log("FROM", from.format( ), "TO", to.format( ), 'timerange', timerange); //console.log($('#rp_from').val(),$('#rp_to').val(),zone,timerange); while (from <= to) { if (daystoshow[from.format('YYYY-MM-DD')]) { diff --git a/lib/report_plugins/daytoday.js b/lib/report_plugins/daytoday.js index f1bee57ca09..18076b7c9ae 100644 --- a/lib/report_plugins/daytoday.js +++ b/lib/report_plugins/daytoday.js @@ -432,7 +432,7 @@ daytoday.report = function report_daytoday (datastorage, sorteddaystoshow, optio contextCircles.exit() .remove(); - var from = moment.tz(day, profile.getTimezone( )).startOf('day'); + var from = moment.tz(moment(day), profile.getTimezone( )).startOf('day'); var to = moment(from.clone( )).add(1, 'days'); var iobpolyline = '' , cobpolyline = ''; diff --git a/tests/reports.test.js b/tests/reports.test.js index 3ff2f882334..a639f3d4fb8 100644 --- a/tests/reports.test.js +++ b/tests/reports.test.js @@ -30,7 +30,7 @@ var someData = { '/api/v1/treatments.json?find[created_at][$gte]=2015-08-14T00:00:00.000Z&find[created_at][$lt]=2015-08-15T00:00:00.000Z&count=1000': [{'enteredBy':'Dad','eventType':'Site Change','glucose':268,'glucoseType':'Finger','insulin':1.75,'units':'mg/dl','created_at':'2015-08-14T00:00:00.000Z','_id':'55ce78fe925aa80e7071e5d6'},{'enteredBy':'Mom ','eventType':'Meal Bolus','glucose':89,'glucoseType':'Finger','carbs':54,'insulin':3.15,'units':'mg/dl','created_at':'2015-08-14T21:00:00.000Z','_id':'55ce59bb925aa80e7071e5ba'}], '/api/v1/entries.json?find[date][$gte]=1439596800000&find[date][$lt]=1439683200000&count=10000': [{'_id':'55cfd25f38a8d88ad1b49931','unfiltered':283136,'filtered':304768,'direction':'SingleDown','device':'dexcom','rssi':185,'sgv':306,'dateString':'Sat Aug 15 16:58:16 PDT 2015','type':'sgv','date':1439683096000,'noise':1},{'_id':'55cfd13338a8d88ad1b4992e','unfiltered':302528,'filtered':312576,'direction':'FortyFiveDown','device':'dexcom','rssi':179,'sgv':329,'dateString':'Sat Aug 15 16:53:16 PDT 2015','type':'sgv','date':1439682796000,'noise':1}], '/api/v1/food/regular.json': [{'_id':'552ece84a6947ea011db35bb','type':'food','category':'Zakladni','subcategory':'Sladkosti','name':'Bebe male','portion':18,'carbs':12,'gi':1,'unit':'pcs','created_at':'2015-04-15T20:48:04.966Z'}], - '/api/v1/treatments.json?find[eventType]=/BG Check/i&find[created_at][$gte]=2015-08-08T00:00:00.000Z&find[created_at][$lt]=2015-09-07T23:59:59.999Z': [ + '/api/v1/treatments.json?find[eventType]=/BG Check/i&find[created_at][$gte]=2015-08-08T00:00:00.000Z&find[created_at][$lt]=2015-09-08T23:59:59.999Z': [ {'created_at':'2015-08-08T00:00:00.000Z'}, {'created_at':'2015-08-09T00:00:00.000Z'}, {'created_at':'2015-08-10T00:00:00.000Z'}, @@ -63,7 +63,7 @@ var someData = { {'created_at':'2015-09-06T00:00:00.000Z'}, {'created_at':'2015-09-07T00:00:00.000Z'} ], - '/api/v1/treatments.json?find[notes]=/something/i&find[created_at][$gte]=2015-08-08T00:00:00.000Z&find[created_at][$lt]=2015-09-07T23:59:59.999Z': [ + '/api/v1/treatments.json?find[notes]=/something/i&find[created_at][$gte]=2015-08-08T00:00:00.000Z&find[created_at][$lt]=2015-09-08T23:59:59.999Z': [ {'created_at':'2015-08-08T00:00:00.000Z'}, {'created_at':'2015-08-09T00:00:00.000Z'}, {'created_at':'2015-08-10T00:00:00.000Z'}, @@ -96,7 +96,7 @@ var someData = { {'created_at':'2015-09-06T00:00:00.000Z'}, {'created_at':'2015-09-07T00:00:00.000Z'} ], - '/api/v1/devicestatus.json&find[created_at][$gte]=2015-08-08T00:00:00.000Z&find[created_at][$lt]=2015-09-07T23:59:59.999Z?find[openaps][$exists]=true&count=1000': [ + '/api/v1/devicestatus.json&find[created_at][$gte]=2015-08-08T00:00:00.000Z&find[created_at][$lt]=2015-09-08T23:59:59.999Z?find[openaps][$exists]=true&count=1000': [ { 'openaps': { 'suggested': {