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