added permission for report action and repost task

This commit is contained in:
Vaibhav Surve 2025-08-07 12:55:08 +05:30
parent 77dcd9af8e
commit 10e4a6e514

View File

@ -15,6 +15,7 @@ import 'package:marco/helpers/widgets/avatar.dart';
import 'package:marco/controller/project_controller.dart';
import 'package:marco/model/dailyTaskPlaning/task_action_buttons.dart';
import 'package:marco/helpers/widgets/my_custom_skeleton.dart';
import 'package:marco/helpers/utils/permission_constants.dart';
class DailyProgressReportScreen extends StatefulWidget {
const DailyProgressReportScreen({super.key});
@ -37,7 +38,7 @@ class _DailyProgressReportScreenState extends State<DailyProgressReportScreen>
final DailyTaskController dailyTaskController =
Get.put(DailyTaskController());
final PermissionController permissionController =
Get.put(PermissionController());
Get.find<PermissionController>();
final ProjectController projectController = Get.find<ProjectController>();
@override
@ -180,7 +181,7 @@ class _DailyProgressReportScreenState extends State<DailyProgressReportScreen>
required IconData icon,
required String tooltip,
required VoidCallback onTap,
Color? color,
Color? color,
}) {
return Row(
children: [
@ -204,27 +205,26 @@ class _DailyProgressReportScreenState extends State<DailyProgressReportScreen>
}
Future<void> _openFilterSheet() async {
final result = await showModalBottomSheet<Map<String, dynamic>>(
context: context,
isScrollControlled: true,
backgroundColor: Colors.transparent,
builder: (context) => DailyProgressReportFilter(
controller: dailyTaskController,
permissionController: permissionController,
),
);
final result = await showModalBottomSheet<Map<String, dynamic>>(
context: context,
isScrollControlled: true,
backgroundColor: Colors.transparent,
builder: (context) => DailyProgressReportFilter(
controller: dailyTaskController,
permissionController: permissionController,
),
);
if (result != null) {
final selectedProjectId = result['projectId'] as String?;
if (selectedProjectId != null &&
selectedProjectId != dailyTaskController.selectedProjectId) {
dailyTaskController.selectedProjectId = selectedProjectId;
await dailyTaskController.fetchTaskData(selectedProjectId);
dailyTaskController.update(['daily_progress_report_controller']);
if (result != null) {
final selectedProjectId = result['projectId'] as String?;
if (selectedProjectId != null &&
selectedProjectId != dailyTaskController.selectedProjectId) {
dailyTaskController.selectedProjectId = selectedProjectId;
await dailyTaskController.fetchTaskData(selectedProjectId);
dailyTaskController.update(['daily_progress_report_controller']);
}
}
}
}
Future<void> _refreshData() async {
final projectId = dailyTaskController.selectedProjectId;
@ -463,10 +463,12 @@ class _DailyProgressReportScreenState extends State<DailyProgressReportScreen>
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
if (task.reportedDate == null ||
task.reportedDate
.toString()
.isEmpty) ...[
if ((task.reportedDate == null ||
task.reportedDate
.toString()
.isEmpty) &&
permissionController.hasPermission(
Permissions.assignReportTask)) ...[
TaskActionButtons.reportButton(
context: context,
task: task,
@ -474,7 +476,10 @@ class _DailyProgressReportScreenState extends State<DailyProgressReportScreen>
refreshCallback: _refreshData,
),
const SizedBox(width: 4),
] else if (task.approvedBy == null) ...[
] else if (task.approvedBy == null &&
permissionController.hasPermission(
Permissions
.approveTask)) ...[
TaskActionButtons.reportActionButton(
context: context,
task: task,
@ -496,7 +501,7 @@ class _DailyProgressReportScreenState extends State<DailyProgressReportScreen>
),
],
),
)
),
],
),
),