removed hardcoded status feedback and submission mode

This commit is contained in:
amirrezaghabeli
2025-09-08 12:22:08 +03:30
parent 65822036c8
commit f6da74f739
25 changed files with 228 additions and 113 deletions
@@ -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',