mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 15:17:31 +00:00
all dates in heatmap are utc.
This commit is contained in:
@ -14,14 +14,18 @@ class OccupancyHeatMapModel extends Equatable {
|
|||||||
});
|
});
|
||||||
|
|
||||||
factory OccupancyHeatMapModel.fromJson(Map<String, dynamic> json) {
|
factory OccupancyHeatMapModel.fromJson(Map<String, dynamic> json) {
|
||||||
final eventDate = json['event_date'] as String? ?? '${DateTime.now()}';
|
final eventDate = json['event_date'] as String?;
|
||||||
final year = eventDate.split('-')[0];
|
final year = eventDate?.split('-')[0];
|
||||||
final month = eventDate.split('-')[1];
|
final month = eventDate?.split('-')[1];
|
||||||
final day = eventDate.split('-')[2];
|
final day = eventDate?.split('-')[2];
|
||||||
|
|
||||||
return OccupancyHeatMapModel(
|
return OccupancyHeatMapModel(
|
||||||
uuid: json['uuid'] as String? ?? '',
|
uuid: json['uuid'] as String? ?? '',
|
||||||
eventDate: DateTime(int.parse(year), int.parse(month), int.parse(day)),
|
eventDate: DateTime(
|
||||||
|
int.parse(year ?? '2025'),
|
||||||
|
int.parse(month ?? '1'),
|
||||||
|
int.parse(day ?? '1'),
|
||||||
|
).toUtc(),
|
||||||
countTotalPresenceDetected: num.parse(
|
countTotalPresenceDetected: num.parse(
|
||||||
json['count_total_presence_detected']?.toString() ?? '0',
|
json['count_total_presence_detected']?.toString() ?? '0',
|
||||||
).toInt(),
|
).toInt(),
|
||||||
|
@ -52,7 +52,7 @@ class _InteractiveHeatMapState extends State<InteractiveHeatMap> {
|
|||||||
color: Colors.transparent,
|
color: Colors.transparent,
|
||||||
child: Transform.translate(
|
child: Transform.translate(
|
||||||
offset: Offset(-(widget.cellSize * 2.5), -50),
|
offset: Offset(-(widget.cellSize * 2.5), -50),
|
||||||
child: HeatMapTooltip(date: item.date, value: item.value),
|
child: HeatMapTooltip(date: item.date.toUtc(), value: item.value),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -20,14 +20,14 @@ class OccupancyHeatMap extends StatelessWidget {
|
|||||||
: 0;
|
: 0;
|
||||||
|
|
||||||
DateTime _getStartingDate() {
|
DateTime _getStartingDate() {
|
||||||
final jan1 = DateTime(DateTime.now().year, 1, 1);
|
final jan1 = DateTime(DateTime.now().year, 1, 1).toUtc();
|
||||||
final startOfWeek = jan1.subtract(Duration(days: jan1.weekday - 1));
|
final startOfWeek = jan1.subtract(Duration(days: jan1.weekday - 1));
|
||||||
return startOfWeek;
|
return startOfWeek;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<OccupancyPaintItem> _generatePaintItems(DateTime startDate) {
|
List<OccupancyPaintItem> _generatePaintItems(DateTime startDate) {
|
||||||
return List.generate(_totalWeeks * 7, (index) {
|
return List.generate(_totalWeeks * 7, (index) {
|
||||||
final date = startDate.add(Duration(days: index));
|
final date = startDate.toUtc().add(Duration(days: index));
|
||||||
final value = heatMapData[date] ?? 0;
|
final value = heatMapData[date] ?? 0;
|
||||||
return OccupancyPaintItem(index: index, value: value, date: date);
|
return OccupancyPaintItem(index: index, value: value, date: date);
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user