sort by coursesEvents

This commit is contained in:
Benjamin Takats
2023-01-15 14:51:26 +01:00
parent cee5e7031c
commit 3e27e367b4
2 changed files with 13 additions and 2 deletions

View File

@@ -17,6 +17,7 @@ class LecturerTable extends DataTableComponent
public function configure(): void public function configure(): void
{ {
$this->setPrimaryKey('id') $this->setPrimaryKey('id')
->setDefaultSort('courses_events_count', 'desc')
->setThAttributes(function (Column $column) { ->setThAttributes(function (Column $column) {
return [ return [
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400', 'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
@@ -62,7 +63,9 @@ class LecturerTable extends DataTableComponent
->collapseOnMobile(), ->collapseOnMobile(),
Column::make('') Column::make('')
->label( ->label(
fn($row, Column $column) => view('columns.lectures.action')->withRow($row)->withCountry($this->country) fn($row, Column $column) => view('columns.lectures.action')
->withRow($row)
->withCountry($this->country)
), ),
]; ];
@@ -73,13 +76,15 @@ class LecturerTable extends DataTableComponent
return Lecturer::query() return Lecturer::query()
->withCount([ ->withCount([
'courses', 'courses',
'coursesEvents',
'libraryItems', 'libraryItems',
]); ]);
} }
public function lecturerSearch($id, $event = true) public function lecturerSearch($id, $event = true)
{ {
$lecturer = Lecturer::query()->find($id); $lecturer = Lecturer::query()
->find($id);
if ($event) { if ($event) {
return to_route('school.table.event', [ return to_route('school.table.event', [

View File

@@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
use Spatie\Image\Manipulations; use Spatie\Image\Manipulations;
use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia; use Spatie\MediaLibrary\InteractsWithMedia;
@@ -93,6 +94,11 @@ class Lecturer extends Model implements HasMedia
return $this->hasMany(Course::class); return $this->hasMany(Course::class);
} }
public function coursesEvents(): HasManyThrough
{
return $this->hasManyThrough(CourseEvent::class, Course::class);
}
public function libraryItems(): HasMany public function libraryItems(): HasMany
{ {
return $this->hasMany(LibraryItem::class); return $this->hasMany(LibraryItem::class);