task detail page improvement

design_3.0_task_module_new
WaseemAbbasi22 6 months ago
parent 2abe98726e
commit b836170ae8

@ -11,7 +11,7 @@ class Site extends Base {
Site.fromJson(dynamic json) {
id = json['id'];
identifier = id?.toString() ?? ''; // Handle potential null id
custName = json['custName'];
custName = json['custName']?? json['siteName'];
name = custName;
if (json['buildings'] != null) {
buildings = [];

@ -75,8 +75,8 @@ class TaskData {
Lookup? impactStatus;
bool? isUserAcknowledge;
Lookup? typeOfAlert;
dynamic riskLevel;
dynamic resource;
Lookup? riskLevel;
Lookup? resource;
Lookup? actionNeeded;
String? alertNo;
String? estimationDeliveryDate;
@ -197,13 +197,19 @@ class TaskData {
installationDepartment = json["installationDepartment"] == null ? null : Lookup.fromJson(json["installationDepartment"]);
installationFloor = json["installationFloor"] == null ? null : Lookup.fromJson(json["installationFloor"]);
isUserAcknowledge = json['isUserAcknowledge'] ?? false;
riskLevel = json['riskLevel'];
resource = json['resource'];
riskLevel = json["riskLevel"] == null ? null : Lookup.fromJson(json["riskLevel"]);
resource = json["resource"] == null ? null : Lookup.fromJson(json["resource"]);
alertNo = json['alertNo'];
estimationDeliveryDate = json['estimationDeliveryDate'];
reasonOfFSCA = json['reasonOfFSCA'];
correctiveActionDescription = json['correctiveActionDescription'];
evaluatorUser = json['evaluatorUser'] != null ? User.fromJson(json['evaluatorUser']) : null;
site = json["site"] == null ? null : Site.fromJson(json["site"]);
building = json["building"] == null ? null : Building.fromJson(json["building"]);
floor = json["floor"] == null ? null : Floor.fromJson(json["floor"]);
department = json["department"] == null ? null : Department.fromJson(json["department"]);
room = json["room"] == null ? null : Rooms.fromJson(json["room"]);
}
Map<String, dynamic> toJson() {

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
@ -10,6 +11,7 @@ import 'package:test_sa/models/new_models/task_request/task_request_model.dart';
import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
import 'package:test_sa/providers/task_request_provider/task_request_provider.dart';
import 'package:test_sa/views/pages/user/tasks_request/task_request_form_view.dart';
import 'package:test_sa/views/widgets/images/files_list.dart';
import 'package:test_sa/views/widgets/loaders/app_loading.dart';
import '../../../../controllers/providers/api/user_provider.dart';
@ -92,23 +94,25 @@ class _TaskRequestDetailsViewState extends State<TaskRequestDetailsView> {
],
),
8.height,
if (taskProvider.taskRequestModel?.taskType?.isInstallation == true) ...[installationWidget(taskModel: taskProvider.taskRequestModel!)],
if (taskProvider.taskRequestModel?.taskType?.isRecallAndAlert == true) ...[
assetDetails(taskModel: taskProvider.taskRequestModel!),
],
if (taskProvider.taskRequestModel?.taskType?.relatedTo?.value == 2) ...[
linkWithLocationWidget(taskModel: taskProvider.taskRequestModel!),
],
8.height,
Text(
"Task Details".addTranslation,
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
),
8.height,
'${context.translation.taskType}: ${widget.requestDetails?.nameOfType ?? "-"}'.bodyText(context),
'${context.translation.taskNo}: ${widget.requestDetails?.requestNo ?? "-"}'.bodyText(context),
if (taskProvider.taskRequestModel?.taskType?.isInstallation == true) ...[installationWidget(taskModel: taskProvider.taskRequestModel!)],
if (taskProvider.taskRequestModel?.taskType?.isRecallAndAlert == true) ...[
recallAlertTypeWidget(taskModel: taskProvider.taskRequestModel!),
],
if (taskProvider.taskRequestModel?.taskType?.relatedTo?.value == 2) ...[
linkWithLocationWidget(taskModel: taskProvider.taskRequestModel!),
],
if (taskProvider.taskRequestModel?.taskType?.relatedTo?.value == 1) ...[
linkWithAssetWidget(taskModel: taskProvider.taskRequestModel!),
],
if (taskProvider.taskRequestModel?.callComment != null) ...[
const Divider().defaultStyle(context),
Text(
@ -117,7 +121,12 @@ class _TaskRequestDetailsViewState extends State<TaskRequestDetailsView> {
),
2.height,
taskProvider.taskRequestModel!.callComment!.bodyText(context),
]
],
if (taskProvider.taskRequestModel?.taskJobAttachments?.isNotEmpty ?? false) ...[
8.height,
const Divider().defaultStyle(context),
FilesList(images: taskProvider.taskRequestModel!.taskJobAttachments!.map((toElement) => URLs.getFileUrl(toElement.name ?? '') ?? '').toList()),
],
],
).toShadowContainer(context).paddingAll(16),
).expanded,
@ -141,60 +150,88 @@ class _TaskRequestDetailsViewState extends State<TaskRequestDetailsView> {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
assetDetails(),
assetDetails(taskModel: taskModel),
const Divider().defaultStyle(context),
Text(
"Site Details".addTranslation,
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
),
'${context.translation.installationSite}: ${taskModel.asset?.siteName?.cleanupWhitespace.capitalizeFirstOfEach ?? "-"}'.bodyText(context),
'${context.translation.installationBuilding}: ${taskModel.installationBuilding?.name?.cleanupWhitespace.capitalizeFirstOfEach ?? '-'}'.bodyText(context),
'${context.translation.installationFloor}: ${taskModel.installationFloor?.name?.cleanupWhitespace.capitalizeFirstOfEach ?? '-'}'.bodyText(context),
'${context.translation.installationDepartment}: ${taskModel.installationDepartment?.name?.cleanupWhitespace.capitalizeFirstOfEach ?? '-'}'.bodyText(context),
'${context.translation.installationDate}: ${taskModel.installationDate?.toAssetDetailsFormat ?? "-"}'.bodyText(context),
'${context.translation.serialNo}: ${taskModel.serialNo ?? '-'}'.bodyText(context),
const Divider().defaultStyle(context),
// const Divider().defaultStyle(context),
],
);
}
Widget linkWithAssetWidget({required TaskData taskModel}) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
assetDetails(),
],
);
}
// Widget linkWithAssetWidget({required TaskData taskModel}) {
// return Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// // assetDetails(),
// ],
// );
// }
Widget linkWithLocationWidget({required TaskData taskModel}) {
return '${context.translation.site}: ${widget.requestDetails?.site?.cleanupWhitespace.capitalizeFirstOfEach ?? "-"}'.bodyText(context);
}
Widget assetDetails() {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
const Divider().defaultStyle(context),
Text(
context.translation.assetDetails,
"Location Details".addTranslation,
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
),
'${context.translation.assetName}: ${widget.requestDetails?.assetName?.cleanupWhitespace.capitalizeFirstOfEach ?? "-"}'.bodyText(context),
'${context.translation.assetNo}: ${widget.requestDetails?.assetNo ?? "-"}'.bodyText(context),
'${context.translation.assetSN}: ${widget.requestDetails?.assetSN ?? "-"}'.bodyText(context),
'${context.translation.site}: ${taskModel.site?.name ?? "-"}'.bodyText(context),
'${context.translation.building}: ${taskModel.building?.name ?? "-"}'.bodyText(context),
'${context.translation.floor}: ${taskModel.floor?.name?? "-"}'.bodyText(context),
'${context.translation.department}: ${taskModel.department?.name ?? "-"}'.bodyText(context),
'${context.translation.room}: ${taskModel.room?.name ?? "-"}'.bodyText(context),
],
);
}
Widget assetDetails({required TaskData taskModel}) {
return taskModel.asset != null
? Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.assetDetails,
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
),
'${context.translation.assetName}: ${taskModel.asset?.assetName?.cleanupWhitespace.capitalizeFirstOfEach ?? "-"}'.bodyText(context),
'${context.translation.assetNo}: ${taskModel.asset?.assetNumber ?? "-"}'.bodyText(context),
'${context.translation.manufacture}: ${taskModel.asset?.manufacturer ?? "-"}'.bodyText(context),
'${context.translation.model}: ${taskModel.asset?.model ?? "-"}'.bodyText(context),
],
)
: const SizedBox();
}
Widget recallAlertTypeWidget({required TaskData taskModel}) {
if (taskModel.typeOfAlert != null) {
switch (taskModel.typeOfAlert!.value) {
case 1:
return Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [assetDetails(), '${context.translation.acknowledge}: ${taskModel.isUserAcknowledge ?? "-"}'.bodyText(context)],
children: [
'${context.translation.acknowledge}: ${taskModel.isUserAcknowledge ?? "-"}'.bodyText(context),
'Risk Level: ${taskModel.riskLevel?.name}'.bodyText(context),
'Resource: ${taskModel.resource?.name}'.bodyText(context)],
);
case 2:
return Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
assetDetails(),
// assetDetails(taskModel: taskModel),
'${context.translation.completedActions}: ${taskModel.actionNeeded?.name ?? "-"}'.bodyText(context),
if (taskModel.actionNeeded?.value == 1) ...[
'${context.translation.impactStatus}: ${taskModel.impactStatus?.name ?? "-"}'.bodyText(context),
@ -204,9 +241,10 @@ class _TaskRequestDetailsViewState extends State<TaskRequestDetailsView> {
case 3:
return Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
assetDetails(),
// assetDetails(taskModel: taskModel),
'${context.translation.acknowledge}: ${taskModel.isUserAcknowledge ?? "-"}'.bodyText(context),
'${context.translation.completedActions}: ${taskModel.actionNeeded?.name ?? "-"}'.bodyText(context),
if (taskModel.actionNeeded?.value == 1) ...[

Loading…
Cancel
Save