Skip to content

Commit

Permalink
- [x] Added skipping critical error activities on publish
Browse files Browse the repository at this point in the history
  • Loading branch information
PG-Momik authored and Yash Maharjan committed Dec 9, 2024
1 parent 971c604 commit e57df7a
Show file tree
Hide file tree
Showing 7 changed files with 436 additions and 746 deletions.
23 changes: 19 additions & 4 deletions app/Http/Controllers/Admin/Workflow/BulkPublishingController.php
Original file line number Diff line number Diff line change
Expand Up @@ -265,20 +265,35 @@ public function startBulkPublish(Request $request): JsonResponse
}

if ($this->publishingStatusService->ongoingBulkPublishing($organization->id)) {
$pubishingStatus = $this->bulkPublishingService->getOrganisationBulkPublishingStatus();
$publishingStatus = $this->bulkPublishingService->getOrganisationBulkPublishingStatus();

return response()->json([
'success' => false,
'message' => 'Another bulk publishing is already in progress.',
'data' => $pubishingStatus['publishingData'],
'in_progress' => $pubishingStatus['inProgress'],
'data' => $publishingStatus['publishingData'],
'in_progress' => $publishingStatus['inProgress'],
]);
}

$activityIds = json_decode($request->get('activities'), false, 512, JSON_THROW_ON_ERROR);

if (!empty($activityIds)) {
$activities = $this->activityService->getActivitiesHavingIds($activityIds);
$filteredActivityIds = $this->bulkPublishingService->getPublishableActivityIds($activityIds);

if (empty($filteredActivityIds)) {
return response()->json(
[
'success' => false,
'status' => 'error',
'message' => 'All of the selected activities have critical error.',
'data' => ['activity_ids' => $activityIds],
]
);
}

DB::beginTransaction();

$activities = $this->activityService->getActivitiesHavingIds($filteredActivityIds);

if (!count($activities)) {
return response()->json(['success' => false, 'message' => 'No activities selected.']);
Expand Down
15 changes: 15 additions & 0 deletions app/IATI/Repositories/Activity/ValidationStatusRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -269,4 +269,19 @@ private function getHighestSeverityErrorFromResponse(array $responseSummary): ?s
return Arr::get($responseSummary, $level, 0) > 0;
});
}

/**
* Returns array of activity_id of the activities that do not contain critical error.
*
* @param array $activityIds
*
* @return array
*/
public function getActivitiesWithNoCriticalErrors(array $activityIds): array
{
return $this->model->whereIn('activity_id', $activityIds)
->where('status', 'completed')
->whereRaw("(response->'response'->'summary'->>'critical')::integer = 0")
->pluck('activity_id')->toArray();
}
}
12 changes: 12 additions & 0 deletions app/IATI/Services/Workflow/BulkPublishingService.php
Original file line number Diff line number Diff line change
Expand Up @@ -505,4 +505,16 @@ public function getActivitiesWithDeprecatedValueArray(mixed $activityIds, Activi

return $returnArr;
}

/**
* Returns array of activity_id of the activities that do not contain critical error.
*
* @param array $activityIds
*
* @return array
*/
public function getPublishableActivityIds(array $activityIds): array
{
return $this->validationStatusRepository->getActivitiesWithNoCriticalErrors($activityIds);
}
}
90 changes: 51 additions & 39 deletions public/css/app.css

Large diffs are not rendered by default.

90 changes: 51 additions & 39 deletions public/css/webportal-app.css

Large diffs are not rendered by default.

941 changes: 277 additions & 664 deletions public/js/app.js

Large diffs are not rendered by default.

11 changes: 11 additions & 0 deletions public/mix-manifest.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
"/js/app.js": "/js/app.js?id=75d010634adbd8f89d258514fd8fc9c5",
=======
Expand Down Expand Up @@ -61,4 +62,14 @@
"/css/app.css": "/css/app.css?id=deb09ddfdcf1f43142ef9e8b2b247960",
>>>>>>> f00f34ca (-[x] Disabled Checkbox for Critical Errored Activitities)
"/js/vendor.js": "/js/vendor.js?id=1d9dc84f31934bcf90e4083803feee6b"
=======
"/js/app.js": "/js/app.js",
"/js/script.js": "/js/script.js",
"/js/webportal-script.js": "/js/webportal-script.js",
"/js/formbuilder.js": "/js/formbuilder.js",
"/manifest.js": "/manifest.js",
"/css/webportal-app.css": "/css/webportal-app.css",
"/css/app.css": "/css/app.css",
"/js/vendor.js": "/js/vendor.js"
>>>>>>> eeaf05c7 (- [x] Added skipping critical error activities on publish)
}

0 comments on commit e57df7a

Please sign in to comment.