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 12, 2024
1 parent dfa5ec9 commit b83d083
Show file tree
Hide file tree
Showing 8 changed files with 572 additions and 936 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);
}
}
4 changes: 4 additions & 0 deletions public/css/app.css

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions public/css/webportal-app.css

Large diffs are not rendered by default.

1,434 changes: 504 additions & 930 deletions public/js/app.js

Large diffs are not rendered by default.

8 changes: 7 additions & 1 deletion 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=98d2dab6aacd7ea60c8a24b07e4f5364",
=======
Expand All @@ -25,11 +26,15 @@
"/js/app.js": "/js/app.js?id=92bbc7be49c5b28adecdea7571b9a51c",
>>>>>>> f00f34ca (-[x] Disabled Checkbox for Critical Errored Activitities)
>>>>>>> 971c6045 (-[x] Disabled Checkbox for Critical Errored Activitities)
=======
"/js/app.js": "/js/app.js?id=394eb1a7e674c85cbd5beeb3c6153a76",
>>>>>>> a8e12173 (- [x] Added skipping critical error activities on publish)
"/js/script.js": "/js/script.js?id=5664c41472ea07b11e7b9e7ad4007a4c",
"/js/webportal-script.js": "/js/webportal-script.js?id=ec424584e8e86829641c324d807c42b5",
"/js/formbuilder.js": "/js/formbuilder.js?id=0da9ac4d5b4cf5740657fde41069a985",
"/manifest.js": "/manifest.js?id=3ed1124c8f4dcb98acc36de67cb80349",
<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
"/css/webportal-app.css": "/css/webportal-app.css?id=48a13c761549a94d368d78ff0d883e80",
"/css/app.css": "/css/app.css?id=13a0e760a5bb911b9a0f2ca0fb556038",
Expand Down Expand Up @@ -73,9 +78,10 @@
>>>>>>> 975178e9 (-[x] Added Critical Error Check)
>>>>>>> 04aa4a9b (-[x] New Tab Popup Close Fix, Flow Change Bulk Publish)
=======
=======
>>>>>>> a8e12173 (- [x] Added skipping critical error activities on publish)
"/css/webportal-app.css": "/css/webportal-app.css?id=1621513e488183c4f3f7d48c8e71fe3e",
"/css/app.css": "/css/app.css?id=deb09ddfdcf1f43142ef9e8b2b247960",
>>>>>>> f00f34ca (-[x] Disabled Checkbox for Critical Errored Activitities)
"/js/vendor.js": "/js/vendor.js?id=1d9dc84f31934bcf90e4083803feee6b"
>>>>>>> 7f0feeea (-[x] New Tab Popup Close Fix, Flow Change Bulk Publish)
}
8 changes: 7 additions & 1 deletion resources/assets/js/components/sections/StickyErrors.vue
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
icon="warning-fill"
></svg-vue>
<div class="font-bold">
{{ errorData.length + importErrorlength }} Issues found
{{ errorCount(errorData) + importErrorlength }} Issues found
</div>
</div>
<button class="validation__toggle" @click="errorToggle()">Show</button>
Expand Down Expand Up @@ -208,6 +208,12 @@ const deleteErrors = () => {
}
});
};
const errorCount = (errorData) => {
return errorData.filter(
(error: { severity: string }) => error.severity !== 'advisory'
)?.length;
};
</script>

<style lang="scss" scoped>
Expand Down

0 comments on commit b83d083

Please sign in to comment.