Skip to content

Commit

Permalink
Merge pull request #1428 from younginnovations/1368-auto-populate-def…
Browse files Browse the repository at this point in the history
…ault-field

Review: 1368-auto-populate-default-field
  • Loading branch information
Sanilblank authored Apr 11, 2024
2 parents 7be2b71 + e6993bf commit b685966
Show file tree
Hide file tree
Showing 84 changed files with 708 additions and 210 deletions.
57 changes: 57 additions & 0 deletions app/Helpers/general.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@

use App\Constants\CoreElements;
use App\IATI\Models\User\Role;
use App\IATI\Services\Setting\SettingService;
use Carbon\Carbon;
use Illuminate\Contracts\Container\BindingResolutionException;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Cache;
Expand Down Expand Up @@ -992,6 +994,61 @@ function getJsonFromSource(string $completePath): string
}
}

if (!function_exists('getDefaultValue')) {
/**
* Returns Default value.
*
* @param $defaultValueList
* @param $selectDefaultValueKey
*
* @return string|null
*
* @throws JsonException
*/
function getDefaultValue($defaultValueList, $selectDefaultValueKey, $location = []): ?string
{
$defaultValueKeys = [
'language' => 'default_language',
'currency' => 'default_currency',
'default_aid_type' => 'default_aid_type',
'collaboration_type' => 'default_collaboration_type',
'default_flow_type' => 'default_flow_type',
'default_finance_type' => 'default_finance_type',
'default_tied_status' => 'default_tied_status',
];

if (isset($defaultValueKeys[$selectDefaultValueKey]) && isset($defaultValueList[$defaultValueKeys[$selectDefaultValueKey]])) {
$explodedLocation = explode('/', $location);
$type = $explodedLocation[0];
$jsonFile = str_replace('.json', '', $explodedLocation[1]);
$codeList = getCodeList($jsonFile, $type);
$defaultValue = $defaultValueList[$defaultValueKeys[$selectDefaultValueKey]];

return $codeList[$defaultValue] ?? null;
}

return null;
}
}

if (!function_exists('getSettingDefaultLanguage')) {
/**
* Returns default language from settings.
*
* @return string|null
* @throws JsonException
*
* @throws BindingResolutionException
*/
function getSettingDefaultLanguage(): ?string
{
$settingService = app()->make(SettingService::class);
$settingsDefaultValue = $settingService->getSetting()->default_values ?? [];

return getDefaultValue($settingsDefaultValue, 'language', 'Activity/Language.json' ?? []);
}
}

if (!function_exists('getTimestampFromOrganizationXml')) {
/**
* Returns timestamp from xml file or last updated at if xml not exists.
Expand Down
15 changes: 13 additions & 2 deletions app/Http/Controllers/Admin/Activity/ActivityController.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
use App\IATI\Services\Activity\TransactionService;
use App\IATI\Services\ImportActivityError\ImportActivityErrorService;
use App\IATI\Services\Organization\OrganizationService;
use App\IATI\Services\Setting\SettingService;
use App\IATI\Services\Validator\ActivityValidatorResponseService;
use Exception;
use Illuminate\Contracts\View\View;
Expand Down Expand Up @@ -63,6 +64,11 @@ class ActivityController extends Controller
*/
private OrganizationService $organizationService;

/**
* @var SettingService
*/
protected SettingService $settingService;

/**
* ActivityController Constructor.
*
Expand All @@ -73,6 +79,7 @@ class ActivityController extends Controller
* @param ActivityValidatorResponseService $activityValidatorResponseService
* @param ImportActivityErrorService $importActivityErrorService
* @param OrganizationService $organizationService
* @param SettingService $settingService
*/
public function __construct(
ActivityService $activityService,
Expand All @@ -81,7 +88,8 @@ public function __construct(
TransactionService $transactionService,
ActivityValidatorResponseService $activityValidatorResponseService,
ImportActivityErrorService $importActivityErrorService,
OrganizationService $organizationService
OrganizationService $organizationService,
SettingService $settingService
) {
$this->activityService = $activityService;
$this->db = $db;
Expand All @@ -90,6 +98,7 @@ public function __construct(
$this->activityValidatorResponseService = $activityValidatorResponseService;
$this->importActivityErrorService = $importActivityErrorService;
$this->organizationService = $organizationService;
$this->settingService = $settingService;
}

/**
Expand All @@ -102,8 +111,10 @@ public function index(): View|JsonResponse
try {
$languages = getCodeList('Language', 'Activity');
$toast = generateToastData();
$settingsDefaultValue = $this->settingService->getSetting()->default_values ?? [];
$defaultLanguage = getDefaultValue($settingsDefaultValue, 'language', 'Activity/Language.json' ?? []);

return view('admin.activity.index', compact('languages', 'toast'));
return view('admin.activity.index', compact('languages', 'toast', 'defaultLanguage'));
} catch (Exception $e) {
logger()->error($e->getMessage());

Expand Down
3 changes: 2 additions & 1 deletion app/Http/Controllers/Admin/Activity/BudgetController.php
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('budget');
$activity = $this->activityService->getActivity($id);
$form = $this->budgetService->formGenerator($id);

$form = $this->budgetService->formGenerator($id, $activity->default_field_values ?? []);
$data = [
'title' => $element['label'],
'name' => 'budget',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('collaboration_type');
$activity = $this->collaborationTypeService->getActivityData($id);
$form = $this->collaborationTypeService->formGenerator($id);
$form = $this->collaborationTypeService->formGenerator($id, $activity->default_field_values ?? []);
$data = [
'title' => $element['label'],
'name' => 'collaboration_type',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('conditions');
$activity = $this->conditionService->getActivityData($id);
$form = $this->conditionService->formGenerator($id);
$form = $this->conditionService->formGenerator($id, $activity->default_field_values ?? []);
$data = [
'title' => $element['label'],
'name' => 'conditions',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('contact_info');
$activity = $this->contactInfoService->getActivityData($id);
$form = $this->contactInfoService->formGenerator($id);
$form = $this->contactInfoService->formGenerator($id, $activity->default_field_values ?? []);
$data = [
'title' => $element['label'],
'name' => 'contact_info',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('country_budget_items');
$activity = $this->countryBudgetItemService->getActivityData($id);
$form = $this->countryBudgetItemService->formGenerator($id);
$form = $this->countryBudgetItemService->formGenerator($id, $activity->default_field_values ?? []);
$data = [
'title' => $element['label'],
'name' => 'country_budget_items',
Expand Down
2 changes: 1 addition & 1 deletion app/Http/Controllers/Admin/Activity/DateController.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('activity_date');
$activity = $this->dateService->getActivityData($id);
$form = $this->dateService->formGenerator($id);
$form = $this->dateService->formGenerator($id, $activity->default_field_values ?? []);
$data = [
'title' => $element['label'],
'name' => 'activity_date',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,16 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('default_aid_type');
$activity = $this->defaultAidTypeService->getActivityData($id);
$form = $this->defaultAidTypeService->formGenerator($id);
$form = $this->defaultAidTypeService->formGenerator($id, $activity->default_field_values ?? []);

$data = [
'title' => $element['label'],
'name' => 'default_aid_type',
];

return view('admin.activity.defaultAidType.edit', compact('form', 'activity', 'data'));
} catch (\Exception $e) {
logger()->error($e->getMessage());
logger()->error($e);

return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering default-aid-type form.');
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('default_finance_type');
$activity = $this->defaultFinanceTypeService->getActivityData($id);
$form = $this->defaultFinanceTypeService->formGenerator($id);
$form = $this->defaultFinanceTypeService->formGenerator($id, $activity->default_field_values ?? []);
$data = [
'title' => $element['label'],
'name' => 'default_finance_type',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('default_flow_type');
$activity = $this->defaultFlowTypeService->getActivityData($id);
$form = $this->defaultFlowTypeService->formGenerator($id);
$form = $this->defaultFlowTypeService->formGenerator($id, $activity->default_field_values);
$data = ['title' => $element['label'], 'name' => 'default_flow_type'];

return view('admin.activity.defaultFlowType.edit', compact('form', 'activity', 'data'));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('default_tied_status');
$activity = $this->defaultTiedStatusService->getActivityData($id);
$form = $this->defaultTiedStatusService->formGenerator($id);
$form = $this->defaultTiedStatusService->formGenerator($id, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'default_tied_status'];

return view('admin.activity.defaultTiedStatus.edit', compact('form', 'activity', 'data'));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('description');
$activity = $this->descriptionService->getActivityData($id);
$form = $this->descriptionService->formGenerator($id);
$form = $this->descriptionService->formGenerator($id, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'description'];

return view('admin.activity.description.edit', compact('form', 'activity', 'data'));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('document_link');
$activity = $this->documentLinkService->getActivityData($id);
$form = $this->documentLinkService->formGenerator($id);
$form = $this->documentLinkService->formGenerator($id, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'document_link'];

return view('admin.activity.documentLink.edit', compact('form', 'activity', 'data'));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('humanitarian_scope');
$activity = $this->humanitarianScopeService->getActivityData($id);
$form = $this->humanitarianScopeService->formGenerator($id);
$form = $this->humanitarianScopeService->formGenerator($id, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'humanitarian_scope'];

return view('admin.activity.humanitarianScope.edit', compact('form', 'activity', 'data'));
Expand Down
2 changes: 1 addition & 1 deletion app/Http/Controllers/Admin/Activity/LocationController.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('location');
$activity = $this->locationService->getActivityData($id);
$form = $this->locationService->formGenerator($id);
$form = $this->locationService->formGenerator($id, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'location'];

return view('admin.activity.location.edit', compact('form', 'activity', 'data'));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('other_identifier');
$activity = $this->otherIdentifierService->getActivityData($id);
$form = $this->otherIdentifierService->formGenerator($id);
$form = $this->otherIdentifierService->formGenerator($id, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'other_identifier'];

return view('admin.activity.otherIdentifier.edit', compact('form', 'activity', 'data'));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('participating_org');
$activity = $this->participatingOrganizationService->getActivityData($id);
$form = $this->participatingOrganizationService->formGenerator($id);
$form = $this->participatingOrganizationService->formGenerator($id, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'participating_org'];

return view('admin.activity.participatingOrganization.edit', compact('form', 'activity', 'data'));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('planned_disbursement');
$activity = $this->plannedDisbursementService->getActivityData($id);
$form = $this->plannedDisbursementService->formGenerator($id);
$form = $this->plannedDisbursementService->formGenerator($id, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'planned_disbursement'];

return view('admin.activity.plannedDisbursement.edit', compact('form', 'activity', 'data'));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('policy_marker');
$activity = $this->policyMarkerService->getActivityData($id);
$form = $this->policyMarkerService->formGenerator($id);
$form = $this->policyMarkerService->formGenerator($id, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'policy_marker'];

return view('admin.activity.policyMarker.edit', compact('form', 'activity', 'data'));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public function edit(int $id): View|RedirectResponse
try {
$activity = $this->recipientCountryService->getActivityData($id);
$element = $this->activityService->getRecipientRegionOrCountryManipulatedElementSchema($activity, 'recipient_country');
$form = $this->recipientCountryService->formGenerator($id, $element);
$form = $this->recipientCountryService->formGenerator($id, $element, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'recipient_country'];

return view('admin.activity.recipientCountry.edit', compact('form', 'activity', 'data'));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public function edit(int $id): View|RedirectResponse
try {
$activity = $this->recipientRegionService->getActivityData($id);
$element = $this->activityService->getRecipientRegionOrCountryManipulatedElementSchema($activity, 'recipient_region');
$form = $this->recipientRegionService->formGenerator($id, $element);
$form = $this->recipientRegionService->formGenerator($id, $element, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'recipient_region'];

return view('admin.activity.recipientRegion.edit', compact('form', 'activity', 'data'));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public function edit(int $id): View|RedirectResponse
$element = getElementSchema('reporting_org');
$activity = $this->reportingOrgService->getActivityData($id);

$form = $this->reportingOrgService->formGenerator($id);
$form = $this->reportingOrgService->formGenerator($id, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'reporting_org'];

return view('admin.activity.reportingOrg.edit', compact('form', 'activity', 'data'));
Expand Down
4 changes: 2 additions & 2 deletions app/Http/Controllers/Admin/Activity/ResultController.php
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ public function create($id): Factory|View|RedirectResponse|Application
try {
$element = getElementSchema('result');
$activity = $this->activityService->getActivity($id);
$form = $this->resultService->createFormGenerator($id);
$form = $this->resultService->createFormGenerator($id, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'result'];

return view('admin.activity.result.edit', compact('form', 'activity', 'data'));
Expand Down Expand Up @@ -193,7 +193,7 @@ public function edit($activityId, $resultId): View|RedirectResponse
try {
$element = getElementSchema('result');
$activity = $this->activityService->getActivity($activityId);
$form = $this->resultService->editFormGenerator($resultId, $activityId);
$form = $this->resultService->editFormGenerator($resultId, $activityId, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'result'];

return view('admin.activity.result.edit', compact('form', 'activity', 'data'));
Expand Down
2 changes: 1 addition & 1 deletion app/Http/Controllers/Admin/Activity/SectorController.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public function edit(int $id): View|RedirectResponse
try {
$activity = $this->sectorService->getActivityData($id);
$element = $this->getSectorManipulatedElementSchema($activity);
$form = $this->sectorService->formGenerator($id, $element);
$form = $this->sectorService->formGenerator($id, $element, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'sector'];

return view('admin.activity.sector.edit', compact('form', 'activity', 'data'));
Expand Down
2 changes: 1 addition & 1 deletion app/Http/Controllers/Admin/Activity/TagController.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public function edit(int $id): View|RedirectResponse
try {
$element = getElementSchema('tag');
$activity = $this->tagService->getActivityData($id);
$form = $this->tagService->formGenerator($id);
$form = $this->tagService->formGenerator($id, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'tag'];

return view('admin.activity.tag.edit', compact('form', 'activity', 'data'));
Expand Down
2 changes: 1 addition & 1 deletion app/Http/Controllers/Admin/Activity/TitleController.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public function edit(int $id): Factory|View|RedirectResponse|Application
try {
$element = getElementSchema('title');
$activity = $this->titleService->getActivityData($id);
$form = $this->titleService->formGenerator($id);
$form = $this->titleService->formGenerator($id, $activity->default_field_values ?? []);
$data = ['title' => $element['label'], 'name' => 'title'];

return view('admin.activity.title.edit', compact('form', 'activity', 'data'));
Expand Down
Loading

0 comments on commit b685966

Please sign in to comment.