From e87dffd76bd3e9c98bd473b40a910ecfdf49064b Mon Sep 17 00:00:00 2001 From: Rafeek-Khoudare Date: Mon, 30 Jun 2025 08:28:19 +0300 Subject: [PATCH 1/4] when it is CUR module there is no countdown and other selector --- .../schedule_device/schedule_widgets/schedual_view.dart | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/pages/device_managment/schedule_device/schedule_widgets/schedual_view.dart b/lib/pages/device_managment/schedule_device/schedule_widgets/schedual_view.dart index c511b8bd..52a5c56f 100644 --- a/lib/pages/device_managment/schedule_device/schedule_widgets/schedual_view.dart +++ b/lib/pages/device_managment/schedule_device/schedule_widgets/schedual_view.dart @@ -52,9 +52,12 @@ class BuildScheduleView extends StatelessWidget { children: [ const ScheduleHeader(), const SizedBox(height: 20), - ScheduleModeSelector( - currentMode: state.scheduleMode, - ), + if (category == 'CUR_2') + const SizedBox() + else + ScheduleModeSelector( + currentMode: state.scheduleMode, + ), const SizedBox(height: 20), if (state.scheduleMode == ScheduleModes.schedule) ScheduleManagementUI( From d4625a8f0484b7dafc9605793785d24bbe42f811 Mon Sep 17 00:00:00 2001 From: Rafeek-Khoudare Date: Mon, 30 Jun 2025 08:45:18 +0300 Subject: [PATCH 2/4] fix edit to accept string of cur module --- .../schedule_widgets/schedule_table.dart | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/pages/device_managment/schedule_device/schedule_widgets/schedule_table.dart b/lib/pages/device_managment/schedule_device/schedule_widgets/schedule_table.dart index 21f404ff..213afd61 100644 --- a/lib/pages/device_managment/schedule_device/schedule_widgets/schedule_table.dart +++ b/lib/pages/device_managment/schedule_device/schedule_widgets/schedule_table.dart @@ -212,12 +212,21 @@ class _ScheduleTableView extends StatelessWidget { isEdit: true, ).then((updatedSchedule) { if (updatedSchedule != null) { + bool temp; + if (schedule.category == 'CUR_2') { + updatedSchedule.function.value == 'open' + ? temp = true + : temp = false; + } else { + temp = updatedSchedule.function.value; + } context.read().add( ScheduleEditEvent( scheduleId: schedule.scheduleId, category: schedule.category, time: updatedSchedule.time, - functionOn: updatedSchedule.function.value, + functionOn: temp, + // updatedSchedule.function.value, selectedDays: updatedSchedule.days), ); } From 0cfd58d82083c1ef3c017bd11260228f71109a53 Mon Sep 17 00:00:00 2001 From: Rafeek-Khoudare Date: Mon, 30 Jun 2025 08:56:42 +0300 Subject: [PATCH 3/4] fix to send fit data to integrate with API (was true and false)now cur module send close and open with control key --- .../all_devices/models/device_status.dart | 4 ++-- .../schedule_device/bloc/schedule_bloc.dart | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/pages/device_managment/all_devices/models/device_status.dart b/lib/pages/device_managment/all_devices/models/device_status.dart index b78f2a30..b3d582f1 100644 --- a/lib/pages/device_managment/all_devices/models/device_status.dart +++ b/lib/pages/device_managment/all_devices/models/device_status.dart @@ -35,8 +35,8 @@ class DeviceStatus { } class Status { - final String code; - final dynamic value; + String code; + dynamic value; Status({ required this.code, diff --git a/lib/pages/device_managment/schedule_device/bloc/schedule_bloc.dart b/lib/pages/device_managment/schedule_device/bloc/schedule_bloc.dart index 0ec55e39..f84f95e7 100644 --- a/lib/pages/device_managment/schedule_device/bloc/schedule_bloc.dart +++ b/lib/pages/device_managment/schedule_device/bloc/schedule_bloc.dart @@ -286,11 +286,20 @@ class ScheduleBloc extends Bloc { try { if (state is ScheduleLoaded) { final dateTime = DateTime.parse(event.time); + Status status = Status(code: '', value: ''); + if (event.category == 'CUR_2') { + status.code = 'control'; + status.value = event.functionOn == true ? 'open' : 'close'; + } else { + status.code = event.category; + status.value = event.functionOn; + } final updatedSchedule = ScheduleEntry( scheduleId: event.scheduleId, category: event.category, time: getTimeStampWithoutSeconds(dateTime).toString(), - function: Status(code: event.category, value: event.functionOn), + function: status, + // Status(code: event.category, value: event.functionOn), days: event.selectedDays, ); final success = await DevicesManagementApi().editScheduleRecord( From 32938404dd65d20e8d3f8e3ce2b7d9baf020a889 Mon Sep 17 00:00:00 2001 From: Rafeek-Khoudare Date: Mon, 30 Jun 2025 09:28:09 +0300 Subject: [PATCH 4/4] PR requested changes --- .../all_devices/models/device_status.dart | 14 ++++++++++++-- .../schedule_device/bloc/schedule_bloc.dart | 10 +++++----- .../schedule_widgets/schedule_table.dart | 1 - 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/lib/pages/device_managment/all_devices/models/device_status.dart b/lib/pages/device_managment/all_devices/models/device_status.dart index b3d582f1..f4efe36b 100644 --- a/lib/pages/device_managment/all_devices/models/device_status.dart +++ b/lib/pages/device_managment/all_devices/models/device_status.dart @@ -35,8 +35,8 @@ class DeviceStatus { } class Status { - String code; - dynamic value; + final String code; + final dynamic value; Status({ required this.code, @@ -57,6 +57,16 @@ class Status { }; } + Status copyWith({ + String? code, + dynamic value, + }) { + return Status( + code: code ?? this.code, + value: value ?? this.value, + ); + } + factory Status.fromJson(String source) => Status.fromMap(json.decode(source)); String toJson() => json.encode(toMap()); diff --git a/lib/pages/device_managment/schedule_device/bloc/schedule_bloc.dart b/lib/pages/device_managment/schedule_device/bloc/schedule_bloc.dart index f84f95e7..0db1445f 100644 --- a/lib/pages/device_managment/schedule_device/bloc/schedule_bloc.dart +++ b/lib/pages/device_managment/schedule_device/bloc/schedule_bloc.dart @@ -288,18 +288,18 @@ class ScheduleBloc extends Bloc { final dateTime = DateTime.parse(event.time); Status status = Status(code: '', value: ''); if (event.category == 'CUR_2') { - status.code = 'control'; - status.value = event.functionOn == true ? 'open' : 'close'; + status = status.copyWith( + code: 'control', + value: event.functionOn == true ? 'open' : 'close'); } else { - status.code = event.category; - status.value = event.functionOn; + status = + status.copyWith(code: event.category, value: event.functionOn); } final updatedSchedule = ScheduleEntry( scheduleId: event.scheduleId, category: event.category, time: getTimeStampWithoutSeconds(dateTime).toString(), function: status, - // Status(code: event.category, value: event.functionOn), days: event.selectedDays, ); final success = await DevicesManagementApi().editScheduleRecord( diff --git a/lib/pages/device_managment/schedule_device/schedule_widgets/schedule_table.dart b/lib/pages/device_managment/schedule_device/schedule_widgets/schedule_table.dart index 213afd61..84d8e1f5 100644 --- a/lib/pages/device_managment/schedule_device/schedule_widgets/schedule_table.dart +++ b/lib/pages/device_managment/schedule_device/schedule_widgets/schedule_table.dart @@ -226,7 +226,6 @@ class _ScheduleTableView extends StatelessWidget { category: schedule.category, time: updatedSchedule.time, functionOn: temp, - // updatedSchedule.function.value, selectedDays: updatedSchedule.days), ); }