From 8dfe8d10d477e81e2dec45c0ab2de84c767b4d87 Mon Sep 17 00:00:00 2001 From: Faris Armoush Date: Thu, 15 May 2025 10:01:43 +0300 Subject: [PATCH 1/4] removed requestType from query parameters of `RemoteOccupancyAnalyticsDevicesService._makeRequest`. --- .../remote_occupancy_analytics_devices_service.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/pages/analytics/services/analytics_devices/remote_occupancy_analytics_devices_service.dart b/lib/pages/analytics/services/analytics_devices/remote_occupancy_analytics_devices_service.dart index 95a4aacf..91bbe1f4 100644 --- a/lib/pages/analytics/services/analytics_devices/remote_occupancy_analytics_devices_service.dart +++ b/lib/pages/analytics/services/analytics_devices/remote_occupancy_analytics_devices_service.dart @@ -39,7 +39,6 @@ class RemoteOccupancyAnalyticsDevicesService implements AnalyticsDevicesService path: '/projects/$projectUuid/communities/${param.communityUuid}/spaces/${param.spaceUuid}/devices', queryParameters: { - 'requestType': param.requestType.name, 'communityUuid': param.communityUuid, 'spaceUuid': param.spaceUuid, 'productType': param.deviceTypes.first, From e6d272a60dadced8f3254f6fbfb97bc77e537ec6 Mon Sep 17 00:00:00 2001 From: Faris Armoush Date: Thu, 15 May 2025 10:06:13 +0300 Subject: [PATCH 2/4] loads heatmap data on calendar change. --- .../helpers/fetch_occupancy_data_helper.dart | 22 +++++++++++-------- .../widgets/occupancy_heat_map_box.dart | 14 +++++++----- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/lib/pages/analytics/modules/occupancy/helpers/fetch_occupancy_data_helper.dart b/lib/pages/analytics/modules/occupancy/helpers/fetch_occupancy_data_helper.dart index be21027b..476ef9c6 100644 --- a/lib/pages/analytics/modules/occupancy/helpers/fetch_occupancy_data_helper.dart +++ b/lib/pages/analytics/modules/occupancy/helpers/fetch_occupancy_data_helper.dart @@ -38,15 +38,7 @@ abstract final class FetchOccupancyDataHelper { ), ), ); - - context.read().add( - LoadOccupancyHeatMapEvent( - GetOccupancyHeatMapParam( - spaceUuid: spaceId, - year: datePickerState.yearlyDate, - ), - ), - ); + loadHeatMapData(context, spaceUuid: spaceId, year: datePickerState.yearlyDate); if (selectedDevice case final AnalyticsDevice device) { context.read() @@ -57,6 +49,18 @@ abstract final class FetchOccupancyDataHelper { } } + static void loadHeatMapData( + BuildContext context, { + required String spaceUuid, + required DateTime year, + }) { + context.read().add( + LoadOccupancyHeatMapEvent( + GetOccupancyHeatMapParam(spaceUuid: spaceUuid, year: year), + ), + ); + } + static void loadAnalyticsDevices( BuildContext context, { required String communityUuid, diff --git a/lib/pages/analytics/modules/occupancy/widgets/occupancy_heat_map_box.dart b/lib/pages/analytics/modules/occupancy/widgets/occupancy_heat_map_box.dart index d52604bf..cab9eab4 100644 --- a/lib/pages/analytics/modules/occupancy/widgets/occupancy_heat_map_box.dart +++ b/lib/pages/analytics/modules/occupancy/widgets/occupancy_heat_map_box.dart @@ -47,12 +47,14 @@ class OccupancyHeatMapBox extends StatelessWidget { context.read().add( UpdateAnalyticsDatePickerEvent(yearlyDate: value), ); - FetchOccupancyDataHelper.loadOccupancyData( - context, - communityId: - spaceTreeState.selectedCommunities.firstOrNull ?? '', - spaceId: spaceTreeState.selectedSpaces.firstOrNull ?? '', - ); + if (spaceTreeState.selectedSpaces.isNotEmpty) { + FetchOccupancyDataHelper.loadHeatMapData( + context, + spaceUuid: + spaceTreeState.selectedSpaces.firstOrNull ?? '', + year: value, + ); + } }, datePickerType: DatePickerType.year, selectedDate: context From ad15d0e13804975e058fc6bbada9d900cb281d14 Mon Sep 17 00:00:00 2001 From: Faris Armoush Date: Thu, 15 May 2025 10:08:41 +0300 Subject: [PATCH 3/4] loads occupancy chart on date changed. --- .../helpers/fetch_occupancy_data_helper.dart | 33 +++++++++++++------ .../widgets/occupancy_chart_box.dart | 16 ++++++--- 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/lib/pages/analytics/modules/occupancy/helpers/fetch_occupancy_data_helper.dart b/lib/pages/analytics/modules/occupancy/helpers/fetch_occupancy_data_helper.dart index 476ef9c6..5882ada5 100644 --- a/lib/pages/analytics/modules/occupancy/helpers/fetch_occupancy_data_helper.dart +++ b/lib/pages/analytics/modules/occupancy/helpers/fetch_occupancy_data_helper.dart @@ -28,16 +28,12 @@ abstract final class FetchOccupancyDataHelper { loadAnalyticsDevices(context, communityUuid: communityId, spaceUuid: spaceId); final selectedDevice = context.read().state.selectedDevice; - context.read().add( - LoadOccupancyEvent( - GetOccupancyParam( - monthDate: - '${datePickerState.monthlyDate.year}-${datePickerState.monthlyDate.month}', - spaceUuid: spaceId, - communityUuid: communityId, - ), - ), - ); + loadOccupancyChartData( + context, + communityUuid: communityId, + spaceUuid: spaceId, + date: datePickerState.monthlyDate, + ); loadHeatMapData(context, spaceUuid: spaceId, year: datePickerState.yearlyDate); if (selectedDevice case final AnalyticsDevice device) { @@ -61,6 +57,23 @@ abstract final class FetchOccupancyDataHelper { ); } + static void loadOccupancyChartData( + BuildContext context, { + required String communityUuid, + required String spaceUuid, + required DateTime date, + }) { + context.read().add( + LoadOccupancyEvent( + GetOccupancyParam( + monthDate: '${date.year}-${date.month}', + spaceUuid: spaceUuid, + communityUuid: communityUuid, + ), + ), + ); + } + static void loadAnalyticsDevices( BuildContext context, { required String communityUuid, diff --git a/lib/pages/analytics/modules/occupancy/widgets/occupancy_chart_box.dart b/lib/pages/analytics/modules/occupancy/widgets/occupancy_chart_box.dart index 464a05dd..8c41da48 100644 --- a/lib/pages/analytics/modules/occupancy/widgets/occupancy_chart_box.dart +++ b/lib/pages/analytics/modules/occupancy/widgets/occupancy_chart_box.dart @@ -47,11 +47,17 @@ class OccupancyChartBox extends StatelessWidget { context.read().add( UpdateAnalyticsDatePickerEvent(montlyDate: value), ); - FetchOccupancyDataHelper.loadOccupancyData( - context, - communityId: spaceTreeState.selectedCommunities.firstOrNull ?? '', - spaceId: spaceTreeState.selectedSpaces.firstOrNull ?? '', - ); + if (spaceTreeState.selectedSpaces.isNotEmpty) { + FetchOccupancyDataHelper.loadOccupancyChartData( + context, + communityUuid: + spaceTreeState.selectedCommunities.firstOrNull ?? + '', + spaceUuid: + spaceTreeState.selectedSpaces.firstOrNull ?? '', + date: value, + ); + } }, selectedDate: context .watch() From 39d125ac7ee0d23c5843a8825e5a1468e90e2c90 Mon Sep 17 00:00:00 2001 From: Faris Armoush Date: Thu, 15 May 2025 10:11:55 +0300 Subject: [PATCH 4/4] loads energy management data on date changed. --- .../analytics_page_tabs_and_children.dart | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/lib/pages/analytics/modules/analytics/widgets/analytics_page_tabs_and_children.dart b/lib/pages/analytics/modules/analytics/widgets/analytics_page_tabs_and_children.dart index 2a063599..77871134 100644 --- a/lib/pages/analytics/modules/analytics/widgets/analytics_page_tabs_and_children.dart +++ b/lib/pages/analytics/modules/analytics/widgets/analytics_page_tabs_and_children.dart @@ -14,7 +14,6 @@ class AnalyticsPageTabsAndChildren extends StatelessWidget { @override Widget build(BuildContext context) { - final spaceTreeState = context.read().state; return BlocBuilder( buildWhen: (previous, current) => previous != current, builder: (context, selectedTab) => Column( @@ -68,15 +67,21 @@ class AnalyticsPageTabsAndChildren extends StatelessWidget { context.read().add( UpdateAnalyticsDatePickerEvent(montlyDate: value), ); - FetchEnergyManagementDataHelper.loadEnergyManagementData( - context, - selectedDate: value, - communityId: - spaceTreeState.selectedCommunities.firstOrNull ?? - '', - spaceId: - spaceTreeState.selectedSpaces.firstOrNull ?? '', - ); + + final spaceTreeState = + context.read().state; + if (spaceTreeState.selectedSpaces.isNotEmpty) { + FetchEnergyManagementDataHelper + .loadEnergyManagementData( + context, + selectedDate: value, + communityId: + spaceTreeState.selectedCommunities.firstOrNull ?? + '', + spaceId: + spaceTreeState.selectedSpaces.firstOrNull ?? '', + ); + } }, selectedDate: context .watch()