Added custom fields, fixed n+1

Signed-off-by: snipe <snipe@snipe.net>
This commit is contained in:
snipe
2023-10-25 17:28:14 +01:00
parent 63a86c5622
commit 23a6547ada

View File

@@ -7,7 +7,7 @@ use App\Models\Asset;
use App\Models\Setting;
use Illuminate\Support\Facades\Gate;
use Illuminate\Database\Eloquent\Collection;
use Auth;
class AssetsTransformer
{
@@ -231,9 +231,32 @@ class AssetsTransformer
'assigned_to_self' => ($asset->assigned_to == \Auth::user()->id),
];
if (($asset->model) && ($asset->model->fieldset) && ($asset->model->fieldset->fields->count() > 0)) {
$fields_array = [];
foreach ($asset->model->fieldset->fields as $field) {
// Only display this if it's allowed via the custom field setting
if ($field->show_in_requestable_list == '1') {
$value = $asset->{$field->db_column};
if (($field->format == 'DATE') && (!is_null($value)) && ($value != '')) {
$value = Helper::getFormattedDateObject($value, 'date', false);
}
$fields_array[$field->db_column] = e($value);
}
$array['custom_fields'] = $fields_array;
}
} else {
$array['custom_fields'] = new \stdClass; // HACK to force generation of empty object instead of empty list
}
$permissions_array['available_actions'] = [
'cancel' => ($asset->isRequestedBy(\Auth::user())) ? true : false,
'request' => ($asset->isRequestedBy(\Auth::user())) ? false : true,
'cancel' => ($asset->requests->find(Auth::user()->id)) ? true : false,
'request' => ($asset->requests->find(Auth::user()->id)) ? false : true,
];
$array += $permissions_array;