removed hardcoded status feedback and submission mode
This commit is contained in:
@@ -7,6 +7,7 @@ import 'package:tm_app/views/detail/widgets/tender_detail_action.dart';
|
||||
import 'package:tm_app/views/detail/widgets/tender_detail_card.dart';
|
||||
import 'package:tm_app/views/detail/widgets/tender_detail_header.dart';
|
||||
|
||||
import '../../../core/constants/tender_approval_status.dart';
|
||||
import '../../../core/utils/app_toast.dart';
|
||||
import '../../shared/desktop_navigation_widget.dart';
|
||||
import '../strings/tender_details_strings.dart';
|
||||
@@ -31,7 +32,7 @@ class _TenderDetailDesktopPageState extends State<TenderDetailDesktopPage> {
|
||||
|
||||
void _viewModelListener() {
|
||||
if (viewModel.status.isNotEmpty &&
|
||||
viewModel.status == 'submitted' &&
|
||||
viewModel.status == TenderApprovalStatus.submitted.value &&
|
||||
viewModel.approvalStatus == true) {
|
||||
AppToast.success(
|
||||
context,
|
||||
@@ -39,7 +40,7 @@ class _TenderDetailDesktopPageState extends State<TenderDetailDesktopPage> {
|
||||
);
|
||||
}
|
||||
if (viewModel.status.isNotEmpty &&
|
||||
viewModel.status == 'unsubmitted' &&
|
||||
viewModel.status == TenderApprovalStatus.unsubmitted.value &&
|
||||
viewModel.approvalStatus == true) {
|
||||
AppToast.success(
|
||||
context,
|
||||
@@ -47,7 +48,7 @@ class _TenderDetailDesktopPageState extends State<TenderDetailDesktopPage> {
|
||||
);
|
||||
}
|
||||
if (viewModel.status.isNotEmpty &&
|
||||
viewModel.status == 'rejected' &&
|
||||
viewModel.status == TenderApprovalStatus.rejected.value &&
|
||||
viewModel.approvalStatus == true) {
|
||||
AppToast.success(
|
||||
context,
|
||||
@@ -55,7 +56,7 @@ class _TenderDetailDesktopPageState extends State<TenderDetailDesktopPage> {
|
||||
);
|
||||
}
|
||||
if (viewModel.status.isNotEmpty &&
|
||||
viewModel.status == 'unrejected' &&
|
||||
viewModel.status == TenderApprovalStatus.unrejected.value &&
|
||||
viewModel.approvalStatus == true) {
|
||||
AppToast.success(
|
||||
context,
|
||||
|
||||
@@ -10,6 +10,7 @@ import 'package:tm_app/views/detail/widgets/tender_detail_card.dart';
|
||||
import 'package:tm_app/views/detail/widgets/tender_detail_header.dart';
|
||||
import 'package:tm_app/views/shared/tender_app_bar.dart';
|
||||
|
||||
import '../../../core/constants/tender_approval_status.dart';
|
||||
import '../../../core/utils/app_toast.dart';
|
||||
|
||||
class TenderDetailMobilePage extends StatefulWidget {
|
||||
@@ -31,7 +32,7 @@ class _TenderDetailMobilePageState extends State<TenderDetailMobilePage> {
|
||||
|
||||
void _viewModelListener() {
|
||||
if (viewModel.status.isNotEmpty &&
|
||||
viewModel.status == 'submitted' &&
|
||||
viewModel.status == TenderApprovalStatus.submitted.value &&
|
||||
viewModel.approvalStatus == true) {
|
||||
AppToast.success(
|
||||
context,
|
||||
@@ -39,7 +40,7 @@ class _TenderDetailMobilePageState extends State<TenderDetailMobilePage> {
|
||||
);
|
||||
}
|
||||
if (viewModel.status.isNotEmpty &&
|
||||
viewModel.status == 'unsubmitted' &&
|
||||
viewModel.status == TenderApprovalStatus.unsubmitted.value &&
|
||||
viewModel.approvalStatus == true) {
|
||||
AppToast.success(
|
||||
context,
|
||||
@@ -47,7 +48,7 @@ class _TenderDetailMobilePageState extends State<TenderDetailMobilePage> {
|
||||
);
|
||||
}
|
||||
if (viewModel.status.isNotEmpty &&
|
||||
viewModel.status == 'rejected' &&
|
||||
viewModel.status == TenderApprovalStatus.rejected.value &&
|
||||
viewModel.approvalStatus == true) {
|
||||
AppToast.success(
|
||||
context,
|
||||
@@ -55,7 +56,7 @@ class _TenderDetailMobilePageState extends State<TenderDetailMobilePage> {
|
||||
);
|
||||
}
|
||||
if (viewModel.status.isNotEmpty &&
|
||||
viewModel.status == 'unrejected' &&
|
||||
viewModel.status == TenderApprovalStatus.unrejected.value &&
|
||||
viewModel.approvalStatus == true) {
|
||||
AppToast.success(
|
||||
context,
|
||||
|
||||
@@ -9,6 +9,7 @@ import 'package:tm_app/views/detail/widgets/tender_detail_card.dart';
|
||||
import 'package:tm_app/views/detail/widgets/tender_detail_header.dart';
|
||||
import 'package:tm_app/views/shared/tablet_navigation_widget.dart';
|
||||
|
||||
import '../../../core/constants/tender_approval_status.dart';
|
||||
import '../../../core/utils/app_toast.dart';
|
||||
import '../../shared/tender_app_bar.dart';
|
||||
import '../strings/tender_details_strings.dart';
|
||||
@@ -32,7 +33,7 @@ class _TenderDetailTabletPageState extends State<TenderDetailTabletPage> {
|
||||
|
||||
void _viewModelListener() {
|
||||
if (viewModel.status.isNotEmpty &&
|
||||
viewModel.status == 'submitted' &&
|
||||
viewModel.status == TenderApprovalStatus.submitted.value &&
|
||||
viewModel.approvalStatus == true) {
|
||||
AppToast.success(
|
||||
context,
|
||||
@@ -40,7 +41,7 @@ class _TenderDetailTabletPageState extends State<TenderDetailTabletPage> {
|
||||
);
|
||||
}
|
||||
if (viewModel.status.isNotEmpty &&
|
||||
viewModel.status == 'unsubmitted' &&
|
||||
viewModel.status == TenderApprovalStatus.unsubmitted.value &&
|
||||
viewModel.approvalStatus == true) {
|
||||
AppToast.success(
|
||||
context,
|
||||
@@ -48,7 +49,7 @@ class _TenderDetailTabletPageState extends State<TenderDetailTabletPage> {
|
||||
);
|
||||
}
|
||||
if (viewModel.status.isNotEmpty &&
|
||||
viewModel.status == 'rejected' &&
|
||||
viewModel.status == TenderApprovalStatus.rejected.value &&
|
||||
viewModel.approvalStatus == true) {
|
||||
AppToast.success(
|
||||
context,
|
||||
@@ -56,7 +57,7 @@ class _TenderDetailTabletPageState extends State<TenderDetailTabletPage> {
|
||||
);
|
||||
}
|
||||
if (viewModel.status.isNotEmpty &&
|
||||
viewModel.status == 'unrejected' &&
|
||||
viewModel.status == TenderApprovalStatus.unrejected.value &&
|
||||
viewModel.approvalStatus == true) {
|
||||
AppToast.success(
|
||||
context,
|
||||
|
||||
@@ -6,6 +6,7 @@ import 'package:tm_app/view_models/tender_detail_view_model.dart';
|
||||
import 'package:tm_app/views/shared/base_button.dart';
|
||||
import 'package:tm_app/views/shared/select_submission_bottom_sheet.dart';
|
||||
|
||||
import '../../../core/constants/tender_approval_status.dart';
|
||||
import '../../../data/services/model/tender_data/tender_data.dart';
|
||||
import '../../shared/select_submission_dialog.dart';
|
||||
import '../strings/tender_details_strings.dart';
|
||||
@@ -47,7 +48,8 @@ class TenderDetailActions extends StatelessWidget {
|
||||
backgroundColor: AppColors.primary30,
|
||||
textColor: AppColors.mainBlue,
|
||||
onPressed: () {
|
||||
if (viewModel.status == 'submitted') {
|
||||
if (viewModel.status ==
|
||||
TenderApprovalStatus.submitted.value) {
|
||||
viewModel.submitTenderApproval(
|
||||
tenderId: detail.id!,
|
||||
submissionMode: 'self-apply',
|
||||
@@ -156,7 +158,8 @@ class TenderDetailActions extends StatelessWidget {
|
||||
backgroundColor: AppColors.lightBlue,
|
||||
textColor: AppColors.mainBlue,
|
||||
onPressed: () {
|
||||
if (viewModel.status == 'submitted') {
|
||||
if (viewModel.status ==
|
||||
TenderApprovalStatus.submitted.value) {
|
||||
viewModel.submitTenderApproval(
|
||||
tenderId: detail.id!,
|
||||
submissionMode: 'self-apply',
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:tm_app/core/utils/size_config.dart';
|
||||
|
||||
import '../../core/constants/tender_submision_mode.dart';
|
||||
import '../../core/theme/colors.dart';
|
||||
|
||||
class SelectSubmissionBottomSheet extends StatefulWidget {
|
||||
@@ -16,7 +17,7 @@ class SelectSubmissionBottomSheet extends StatefulWidget {
|
||||
class _SelectSubmissionBottomSheetState
|
||||
extends State<SelectSubmissionBottomSheet> {
|
||||
int selectedType = 0;
|
||||
String type = 'self-apply';
|
||||
String type = TenderSubmissionMode.selfApply.value;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@@ -46,20 +47,20 @@ class _SelectSubmissionBottomSheetState
|
||||
SizedBox(height: 8.0.h()),
|
||||
_submissionType(
|
||||
title: 'self-apply',
|
||||
isSelected: type == 'self-apply',
|
||||
isSelected: type == TenderSubmissionMode.selfApply.value,
|
||||
onTap: () {
|
||||
selectedType = 0;
|
||||
type = 'self-apply';
|
||||
type = TenderSubmissionMode.selfApply.value;
|
||||
setState(() {});
|
||||
},
|
||||
),
|
||||
SizedBox(height: 8.0.h()),
|
||||
_submissionType(
|
||||
title: 'Partnership',
|
||||
isSelected: type == 'partnership',
|
||||
isSelected: type == TenderSubmissionMode.partnership.value,
|
||||
onTap: () {
|
||||
selectedType = 1;
|
||||
type = 'partnership';
|
||||
type = TenderSubmissionMode.partnership.value;
|
||||
setState(() {});
|
||||
},
|
||||
),
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:tm_app/core/utils/size_config.dart';
|
||||
|
||||
import '../../core/constants/tender_submision_mode.dart';
|
||||
import '../../core/theme/colors.dart';
|
||||
|
||||
class SelectSubmissionDialog extends StatefulWidget {
|
||||
@@ -14,7 +15,7 @@ class SelectSubmissionDialog extends StatefulWidget {
|
||||
|
||||
class _SelectSubmissionDialogState extends State<SelectSubmissionDialog> {
|
||||
int selectedType = 0;
|
||||
String type = 'self-apply';
|
||||
String type = TenderSubmissionMode.selfApply.value;
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Dialog(
|
||||
@@ -42,21 +43,21 @@ class _SelectSubmissionDialogState extends State<SelectSubmissionDialog> {
|
||||
),
|
||||
SizedBox(height: 8.0.h()),
|
||||
_submissionType(
|
||||
title: 'self-apply',
|
||||
isSelected: type == 'self-apply',
|
||||
title: 'Self-apply',
|
||||
isSelected: type == TenderSubmissionMode.selfApply.value,
|
||||
onTap: () {
|
||||
selectedType = 0;
|
||||
type = 'self-apply';
|
||||
type = TenderSubmissionMode.selfApply.value;
|
||||
setState(() {});
|
||||
},
|
||||
),
|
||||
SizedBox(height: 8.0.h()),
|
||||
_submissionType(
|
||||
title: 'Partnership',
|
||||
isSelected: type == 'partnership',
|
||||
isSelected: type == TenderSubmissionMode.partnership.value,
|
||||
onTap: () {
|
||||
selectedType = 1;
|
||||
type = 'partnership';
|
||||
type = TenderSubmissionMode.partnership.value;
|
||||
setState(() {});
|
||||
},
|
||||
),
|
||||
|
||||
@@ -5,6 +5,9 @@ import 'package:tm_app/data/services/model/tender_data/tender_data.dart';
|
||||
import 'package:tm_app/view_models/tenders_view_model.dart';
|
||||
|
||||
import '../../../core/constants/assets.dart';
|
||||
import '../../../core/constants/tender_approval_status.dart';
|
||||
import '../../../core/constants/tender_feedback.dart';
|
||||
import '../../../core/constants/tender_submision_mode.dart';
|
||||
import '../../../core/theme/colors.dart';
|
||||
import '../../../core/utils/size_config.dart';
|
||||
import '../../shared/select_submission_bottom_sheet.dart';
|
||||
@@ -54,7 +57,7 @@ class TenderActionButtonsRow extends StatelessWidget {
|
||||
}
|
||||
|
||||
final approval = viewModel.getTenderApprovalForTender(tender.id!);
|
||||
final isRejected = approval?.status == 'rejected';
|
||||
final isRejected = approval?.status == TenderApprovalStatus.rejected.value;
|
||||
|
||||
return Tooltip(
|
||||
message: TendersStrings.reject,
|
||||
@@ -63,8 +66,8 @@ class TenderActionButtonsRow extends StatelessWidget {
|
||||
onTap: () {
|
||||
viewModel.toggleApprovals(
|
||||
tenderId: tender.id!,
|
||||
submissionMode: 'self-apply',
|
||||
status: 'rejected',
|
||||
submissionMode: TenderSubmissionMode.selfApply.value,
|
||||
status: TenderApprovalStatus.rejected.value,
|
||||
);
|
||||
},
|
||||
child: Column(
|
||||
@@ -109,7 +112,7 @@ class TenderActionButtonsRow extends StatelessWidget {
|
||||
}
|
||||
|
||||
final approval = viewModel.getTenderApprovalForTender(tender.id!);
|
||||
final isApproved = approval?.status == 'submitted';
|
||||
final isApproved = approval?.status == TenderApprovalStatus.submitted.value;
|
||||
|
||||
return Tooltip(
|
||||
message: TendersStrings.submit,
|
||||
@@ -119,8 +122,11 @@ class TenderActionButtonsRow extends StatelessWidget {
|
||||
if (isApproved) {
|
||||
viewModel.toggleApprovals(
|
||||
tenderId: tender.id!,
|
||||
submissionMode: approval?.submissionMode ?? 'self-apply',
|
||||
status: 'submitted',
|
||||
submissionMode:
|
||||
(approval?.submissionMode?.isNotEmpty == true)
|
||||
? approval!.submissionMode!
|
||||
: TenderSubmissionMode.selfApply.value,
|
||||
status: TenderApprovalStatus.submitted.value,
|
||||
);
|
||||
} else {
|
||||
final isMobile = MediaQuery.sizeOf(context).width < 600;
|
||||
@@ -134,7 +140,7 @@ class TenderActionButtonsRow extends StatelessWidget {
|
||||
viewModel.toggleApprovals(
|
||||
tenderId: tender.id!,
|
||||
submissionMode: value,
|
||||
status: 'submitted',
|
||||
status: TenderApprovalStatus.submitted.value,
|
||||
);
|
||||
},
|
||||
);
|
||||
@@ -149,7 +155,7 @@ class TenderActionButtonsRow extends StatelessWidget {
|
||||
viewModel.toggleApprovals(
|
||||
tenderId: tender.id!,
|
||||
submissionMode: value,
|
||||
status: 'submitted',
|
||||
status: TenderApprovalStatus.submitted.value,
|
||||
);
|
||||
},
|
||||
);
|
||||
@@ -200,7 +206,7 @@ class TenderActionButtonsRow extends StatelessWidget {
|
||||
}
|
||||
|
||||
final feedback = viewModel.getFeedbackForTender(tender.id!);
|
||||
final isDisliked = feedback?.feedbackType == 'dislike';
|
||||
final isDisliked = feedback?.feedbackType == TenderFeedback.disliked.value;
|
||||
|
||||
return Tooltip(
|
||||
message: TendersStrings.dislike,
|
||||
@@ -209,7 +215,7 @@ class TenderActionButtonsRow extends StatelessWidget {
|
||||
onTap: () {
|
||||
viewModel.toogleFeedback(
|
||||
tenderId: tender.id!,
|
||||
feedbackType: 'dislike',
|
||||
feedbackType: TenderFeedback.disliked.value,
|
||||
);
|
||||
},
|
||||
child: Column(
|
||||
@@ -247,14 +253,17 @@ class TenderActionButtonsRow extends StatelessWidget {
|
||||
}
|
||||
|
||||
final feedback = viewModel.getFeedbackForTender(tender.id!);
|
||||
final isLiked = feedback?.feedbackType == 'like';
|
||||
final isLiked = feedback?.feedbackType == TenderFeedback.liked.value;
|
||||
|
||||
return Tooltip(
|
||||
message: TendersStrings.like,
|
||||
child: InkWell(
|
||||
splashColor: Colors.transparent,
|
||||
onTap: () {
|
||||
viewModel.toogleFeedback(tenderId: tender.id!, feedbackType: 'like');
|
||||
viewModel.toogleFeedback(
|
||||
tenderId: tender.id!,
|
||||
feedbackType: TenderFeedback.liked.value,
|
||||
);
|
||||
},
|
||||
child: Column(
|
||||
children: [
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:tm_app/core/constants/tender_feedback.dart';
|
||||
import 'package:tm_app/core/theme/colors.dart';
|
||||
import 'package:tm_app/view_models/your_tenders_view_model.dart';
|
||||
import 'package:tm_app/views/your_tenders/strings/your_tenders_strings.dart';
|
||||
@@ -73,7 +74,7 @@ class _YourTendersDesktopPageState extends State<YourTendersDesktopPage>
|
||||
viewModel.likedTendersData != null) {
|
||||
return LikedDislikedTendersList(
|
||||
data: viewModel.likedTendersData!,
|
||||
status: 'liked',
|
||||
status: TenderFeedback.liked.value,
|
||||
isDesctop: true,
|
||||
);
|
||||
} else if (viewModel.selectedStatus ==
|
||||
@@ -81,7 +82,7 @@ class _YourTendersDesktopPageState extends State<YourTendersDesktopPage>
|
||||
viewModel.likedTendersData != null) {
|
||||
return LikedDislikedTendersList(
|
||||
data: viewModel.likedTendersData!,
|
||||
status: 'disliked',
|
||||
status: TenderFeedback.disliked.value,
|
||||
isDesctop: true,
|
||||
);
|
||||
} else if (viewModel.data != null) {
|
||||
|
||||
@@ -8,6 +8,8 @@ import 'package:tm_app/views/your_tenders/widgets/filter_button.dart';
|
||||
import 'package:tm_app/views/your_tenders/widgets/liked_disliked_tenders_list.dart';
|
||||
import 'package:tm_app/views/your_tenders/widgets/tenders_submitted.dart';
|
||||
|
||||
import '../../../core/constants/tender_feedback.dart';
|
||||
|
||||
class YourTendersMobilePage extends StatefulWidget {
|
||||
const YourTendersMobilePage({super.key});
|
||||
|
||||
@@ -65,7 +67,7 @@ class _YourTendersMobilePageState extends State<YourTendersMobilePage> {
|
||||
Expanded(
|
||||
child: LikedDislikedTendersList(
|
||||
data: viewModel.likedTendersData!,
|
||||
status: 'liked tenders',
|
||||
status: TenderFeedback.liked.value,
|
||||
isDesctop: false,
|
||||
),
|
||||
)
|
||||
@@ -75,7 +77,7 @@ class _YourTendersMobilePageState extends State<YourTendersMobilePage> {
|
||||
Expanded(
|
||||
child: LikedDislikedTendersList(
|
||||
data: viewModel.likedTendersData!,
|
||||
status: 'disliked',
|
||||
status: TenderFeedback.disliked.value,
|
||||
isDesctop: false,
|
||||
),
|
||||
)
|
||||
|
||||
@@ -8,6 +8,7 @@ import 'package:tm_app/views/your_tenders/widgets/liked_disliked_tenders_list.da
|
||||
import 'package:tm_app/views/your_tenders/widgets/tablet_desktop_appbar.dart';
|
||||
import 'package:tm_app/views/your_tenders/widgets/tenders_submitted.dart';
|
||||
|
||||
import '../../../core/constants/tender_feedback.dart';
|
||||
import '../../shared/tablet_navigation_widget.dart';
|
||||
import '../../shared/tender_app_bar.dart';
|
||||
import '../strings/your_tenders_strings.dart';
|
||||
@@ -85,7 +86,7 @@ class _YourTendersTabletPageState extends State<YourTendersTabletPage>
|
||||
viewModel.likedTendersData != null) {
|
||||
return LikedDislikedTendersList(
|
||||
data: viewModel.likedTendersData!,
|
||||
status: 'liked',
|
||||
status: TenderFeedback.liked.value,
|
||||
isDesctop: false,
|
||||
);
|
||||
} else if (viewModel.selectedStatus ==
|
||||
@@ -93,7 +94,7 @@ class _YourTendersTabletPageState extends State<YourTendersTabletPage>
|
||||
viewModel.likedTendersData != null) {
|
||||
return LikedDislikedTendersList(
|
||||
data: viewModel.likedTendersData!,
|
||||
status: 'disliked',
|
||||
status: TenderFeedback.disliked.value,
|
||||
isDesctop: false,
|
||||
);
|
||||
} else if (viewModel.data != null) {
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:tm_app/core/utils/date_utils.dart';
|
||||
import 'package:tm_app/data/services/model/tender_data/tender_data.dart';
|
||||
|
||||
import '../../../core/constants/assets.dart';
|
||||
import '../../../core/constants/tender_approval_status.dart';
|
||||
import '../../../core/theme/colors.dart';
|
||||
import '../../../core/utils/size_config.dart';
|
||||
|
||||
@@ -29,7 +30,7 @@ class TenderCard extends StatelessWidget {
|
||||
statusIcon = AssetsManager.tickCircle;
|
||||
statusCardColor = AppColors.green20;
|
||||
statusTextColor = AppColors.green30;
|
||||
} else if (tender.status == 'submitted') {
|
||||
} else if (tender.status == TenderApprovalStatus.submitted.value) {
|
||||
backgroundColor = AppColors.grey0;
|
||||
borderColor = AppColors.grey30;
|
||||
statusIcon = null;
|
||||
|
||||
Reference in New Issue
Block a user