Task item details

This commit is contained in:
Hillel Coren 2023-03-22 17:38:40 +02:00
parent b0886f5ccd
commit ef90bf4e18
2 changed files with 40 additions and 18 deletions

View File

@ -138,7 +138,7 @@ abstract class TaskTime implements Built<TaskTime, TaskTimeBuilder> {
} }
} }
return <dynamic>[startTime, endTime]; return <dynamic>[startTime, endTime, description, isBillable];
} }
TaskTime get stop => rebuild((b) => b..endDate = DateTime.now().toUtc()); TaskTime get stop => rebuild((b) => b..endDate = DateTime.now().toUtc());
@ -213,6 +213,8 @@ abstract class TaskTime implements Built<TaskTime, TaskTimeBuilder> {
endDate.toLocal().second, endDate.toLocal().second,
) )
: endDate, : endDate,
description: description,
isBillable: isBillable,
); );
} }
@ -225,15 +227,18 @@ abstract class TaskTime implements Built<TaskTime, TaskTimeBuilder> {
final now = DateTime.now(); final now = DateTime.now();
return TaskTime( return TaskTime(
startDate: startDate, startDate: startDate,
endDate: DateTime( endDate: DateTime(
dateTime.toLocal()?.year, dateTime.toLocal()?.year,
dateTime.toLocal()?.month, dateTime.toLocal()?.month,
dateTime.toLocal()?.day, dateTime.toLocal()?.day,
endDate?.toLocal()?.hour ?? now.hour, endDate?.toLocal()?.hour ?? now.hour,
endDate?.toLocal()?.minute ?? now.minute, endDate?.toLocal()?.minute ?? now.minute,
endDate?.toLocal()?.second ?? now.second, endDate?.toLocal()?.second ?? now.second,
).toUtc()); ).toUtc(),
description: description,
isBillable: isBillable,
);
} }
TaskTime copyWithStartTime(DateTime dateTime) { TaskTime copyWithStartTime(DateTime dateTime) {
@ -249,6 +254,8 @@ abstract class TaskTime implements Built<TaskTime, TaskTimeBuilder> {
dateTime.toLocal().second, dateTime.toLocal().second,
).toUtc(), ).toUtc(),
endDate: endDate, endDate: endDate,
description: description,
isBillable: isBillable,
); );
} }
@ -264,6 +271,8 @@ abstract class TaskTime implements Built<TaskTime, TaskTimeBuilder> {
dateTime.toLocal().minute, dateTime.toLocal().minute,
dateTime.toLocal().second, dateTime.toLocal().second,
).toUtc(), ).toUtc(),
description: description,
isBillable: isBillable,
); );
} }
@ -272,6 +281,8 @@ abstract class TaskTime implements Built<TaskTime, TaskTimeBuilder> {
return TaskTime( return TaskTime(
startDate: start, startDate: start,
endDate: start.add(duration), endDate: start.add(duration),
description: description,
isBillable: isBillable,
); );
} }
@ -503,25 +514,29 @@ abstract class TaskEntity extends Object
log.forEach((dynamic detail) { log.forEach((dynamic detail) {
int startDate; int startDate;
int endDate; int endDate;
final taskItem = detail as List<dynamic>;
if ((detail as List)[0] == false || (detail as List)[0] == null) { if (taskItem[0] == false || taskItem[0] == null) {
startDate = 0; startDate = 0;
} else { } else {
startDate = ((detail as List)[0]).round(); startDate = (taskItem[0]).round();
} }
if (startDate != 0) { if (startDate != 0) {
if ((detail as List)[1] == false || (detail as List)[1] == null) { if (taskItem[1] == false || taskItem[1] == null) {
endDate = 0; endDate = 0;
} else { } else {
endDate = ((detail as List)[1]).round(); endDate = (taskItem[1]).round();
} }
final taskTime = TaskTime( final taskTime = TaskTime(
startDate: convertTimestampToDate(startDate).toUtc(), startDate: convertTimestampToDate(startDate).toUtc(),
endDate: (endDate ?? 0) > 0 endDate: (endDate ?? 0) > 0
? convertTimestampToDate(endDate).toUtc() ? convertTimestampToDate(endDate).toUtc()
: null); : null,
description: taskItem.length >= 3 ? taskItem[2] : '',
isBillable: taskItem.length >= 4 ? taskItem[3] : true,
);
details.add(taskTime); details.add(taskTime);
} }

View File

@ -470,6 +470,13 @@ class _TaskEditDesktopState extends State<TaskEditDesktop> {
child: DecoratedFormField( child: DecoratedFormField(
keyboardType: TextInputType.text, keyboardType: TextInputType.text,
label: localization.description, label: localization.description,
initialValue: taskTime.description,
onChanged: (value) {
viewModel.onUpdatedTaskTime(
taskTime
.rebuild((b) => b..description = value),
index);
},
), ),
), ),
], ],