From 9acfceba2972be730312ecc6532ee3a72d794f44 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 2 Aug 2022 23:50:10 -0700 Subject: [PATCH] Added relations to report search Signed-off-by: snipe --- .../Controllers/Api/ReportsController.php | 2 +- .../Transformers/ActionlogsTransformer.php | 10 +++--- app/Models/Actionlog.php | 34 +++++++++++++++++-- 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/Api/ReportsController.php b/app/Http/Controllers/Api/ReportsController.php index 1406dba791..7ac704e2f2 100644 --- a/app/Http/Controllers/Api/ReportsController.php +++ b/app/Http/Controllers/Api/ReportsController.php @@ -20,7 +20,7 @@ class ReportsController extends Controller { $this->authorize('reports.view'); - $actionlogs = Actionlog::with('item', 'user', 'target', 'location'); + $actionlogs = Actionlog::with('item', 'user', 'admin', 'target', 'location'); if ($request->filled('search')) { $actionlogs = $actionlogs->TextSearch(e($request->input('search'))); diff --git a/app/Http/Transformers/ActionlogsTransformer.php b/app/Http/Transformers/ActionlogsTransformer.php index 5e0fc917e2..602fc6400f 100644 --- a/app/Http/Transformers/ActionlogsTransformer.php +++ b/app/Http/Transformers/ActionlogsTransformer.php @@ -95,11 +95,11 @@ class ActionlogsTransformer 'next_audit_date' => ($actionlog->itemType()=='asset') ? Helper::getFormattedDateObject($actionlog->calcNextAuditDate(null, $actionlog->item), 'date'): null, 'days_to_next_audit' => $actionlog->daysUntilNextAudit($settings->audit_interval, $actionlog->item), 'action_type' => $actionlog->present()->actionType(), - 'admin' => ($actionlog->user) ? [ - 'id' => (int) $actionlog->user->id, - 'name' => e($actionlog->user->getFullNameAttribute()), - 'first_name'=> e($actionlog->user->first_name), - 'last_name'=> e($actionlog->user->last_name) + 'admin' => ($actionlog->admin) ? [ + 'id' => (int) $actionlog->admin->id, + 'name' => e($actionlog->admin->getFullNameAttribute()), + 'first_name'=> e($actionlog->admin->first_name), + 'last_name'=> e($actionlog->admin->last_name) ] : null, 'target' => ($actionlog->target) ? [ 'id' => (int) $actionlog->target->id, diff --git a/app/Models/Actionlog.php b/app/Models/Actionlog.php index 2d406b3aa8..7e24b839ec 100755 --- a/app/Models/Actionlog.php +++ b/app/Models/Actionlog.php @@ -43,7 +43,9 @@ class Actionlog extends SnipeModel */ protected $searchableRelations = [ 'company' => ['name'], - 'user' => ['first_name','last_name','username'], + 'admin' => ['first_name','last_name','username', 'email'], + 'user' => ['first_name','last_name','username', 'email'], + 'assets' => ['asset_tag','name'], ]; /** @@ -95,6 +97,19 @@ class Actionlog extends SnipeModel return $this->hasMany(\App\Models\Company::class, 'id', 'company_id'); } + + /** + * Establishes the actionlog -> asset relationship + * + * @author [A. Gianotto] [] + * @since [v3.0] + * @return \Illuminate\Database\Eloquent\Relations\Relation + */ + public function assets() + { + return $this->hasMany(\App\Models\Asset::class, 'id', 'item_id'); + } + /** * Establishes the actionlog -> item type relationship * @@ -154,6 +169,19 @@ class Actionlog extends SnipeModel return $this->target(); } + /** + * Establishes the actionlog -> admin user relationship + * + * @author [A. Gianotto] [] + * @since [v3.0] + * @return \Illuminate\Database\Eloquent\Relations\Relation + */ + public function admin() + { + return $this->belongsTo(User::class, 'user_id') + ->withTrashed(); + } + /** * Establishes the actionlog -> user relationship * @@ -163,8 +191,8 @@ class Actionlog extends SnipeModel */ public function user() { - return $this->belongsTo(User::class, 'user_id') - ->withTrashed(); + return $this->belongsTo(User::class, 'target_id') + ->withTrashed(); } /**