events renamed to course events

This commit is contained in:
Benjamin Takats
2022-12-14 11:23:35 +01:00
parent 7dede68675
commit 7f8117ff5c
17 changed files with 99 additions and 89 deletions

View File

@@ -40,8 +40,12 @@ class CityTable extends DataTableComponent
public function columns(): array public function columns(): array
{ {
$columns = collect([]); $columns = collect([
if($this->type === 'school') { Column::make("Stadt Name", "name")
->sortable()
->searchable(),
]);
if ($this->type === 'school') {
$columns = $columns->merge([ $columns = $columns->merge([
Column::make('Veranstaltungs-Orte') Column::make('Veranstaltungs-Orte')
->label( ->label(
@@ -50,26 +54,21 @@ class CityTable extends DataTableComponent
->collapseOnMobile(), ->collapseOnMobile(),
Column::make('Termine') Column::make('Termine')
->label( ->label(
fn($row, Column $column) => $row->events_count fn($row, Column $column) => $row->course_events_count
) )
->collapseOnMobile(), ->collapseOnMobile(),
]); ]);
} }
if ($this->type === 'bookCase') {
$columns = $columns->merge([ return $columns->merge([
Column::make("Stadt Name", "name")
->sortable()
->searchable(),
Column::make('') Column::make('')
->label( ->label(
fn($row, Column $column) => view('columns.cities.action') fn($row, Column $column) => view('columns.cities.action')
->withRow($row) ->withRow($row)
->withType($this->type) ->withType($this->type)
), ),
]); ])
} ->toArray();
return $columns->toArray();
} }
public function builder(): Builder public function builder(): Builder
@@ -77,7 +76,7 @@ class CityTable extends DataTableComponent
return City::query() return City::query()
->withCount([ ->withCount([
'venues', 'venues',
'events', 'courseEvents',
]) ])
->whereHas('country', fn($query) => $query->where('code', $this->country)); ->whereHas('country', fn($query) => $query->where('code', $this->country));
} }

View File

@@ -67,7 +67,7 @@ class CourseTable extends DataTableComponent
), ),
Column::make("Termine") Column::make("Termine")
->label( ->label(
fn($row, Column $column) => '<strong>'.$row->events_count.'</strong>' fn($row, Column $column) => '<strong>'.$row->course_events_count.'</strong>'
) )
->html() ->html()
->sortable() ->sortable()
@@ -86,9 +86,9 @@ class CourseTable extends DataTableComponent
{ {
return Course::query() return Course::query()
->withCount([ ->withCount([
'events', 'courseEvents',
]) ])
->whereHas('events.venue.city.country', ->whereHas('courseEvents.venue.city.country',
fn($query) => $query->where('countries.code', $this->country)); fn($query) => $query->where('countries.code', $this->country));
} }

View File

@@ -52,7 +52,7 @@ class VenueTable extends DataTableComponent
->collapseOnMobile(), ->collapseOnMobile(),
Column::make('Termine') Column::make('Termine')
->label( ->label(
fn($row, Column $column) => $row->events_count fn($row, Column $column) => $row->course_events_count
) )
->collapseOnMobile(), ->collapseOnMobile(),
Column::make('') Column::make('')
@@ -66,7 +66,7 @@ class VenueTable extends DataTableComponent
{ {
return Venue::query() return Venue::query()
->withCount([ ->withCount([
'events', 'courseEvents',
]) ])
->whereHas('city.country', fn($query) => $query->where('code', $this->country)); ->whereHas('city.country', fn($query) => $query->where('code', $this->country));
} }

View File

@@ -50,7 +50,7 @@ class City extends Model
return $this->hasMany(Venue::class); return $this->hasMany(Venue::class);
} }
function events() function courseEvents()
{ {
return $this->hasManyThrough(CourseEvent::class, Venue::class); return $this->hasManyThrough(CourseEvent::class, Venue::class);
} }

View File

@@ -64,7 +64,7 @@ class Course extends Model implements HasMedia
return $this->belongsTo(Lecturer::class); return $this->belongsTo(Lecturer::class);
} }
public function events(): \Illuminate\Database\Eloquent\Relations\HasMany public function courseEvents(): \Illuminate\Database\Eloquent\Relations\HasMany
{ {
return $this->hasMany(CourseEvent::class); return $this->hasMany(CourseEvent::class);
} }

View File

@@ -28,7 +28,7 @@ class Registration extends Model
'active' => 'boolean', 'active' => 'boolean',
]; ];
public function event(): \Illuminate\Database\Eloquent\Relations\BelongsTo public function courseEvent(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{ {
return $this->belongsTo(CourseEvent::class); return $this->belongsTo(CourseEvent::class);
} }

View File

@@ -78,7 +78,7 @@ class Venue extends Model implements HasMedia
return $this->hasManyDeepFromRelations($this->events(), (new CourseEvent())->course()); return $this->hasManyDeepFromRelations($this->events(), (new CourseEvent())->course());
} }
public function events(): \Illuminate\Database\Eloquent\Relations\HasMany public function courseEvents(): \Illuminate\Database\Eloquent\Relations\HasMany
{ {
return $this->hasMany(CourseEvent::class); return $this->hasMany(CourseEvent::class);
} }

View File

@@ -4,6 +4,8 @@ namespace App\Nova;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Laravel\Nova\Fields\BelongsTo; use Laravel\Nova\Fields\BelongsTo;
use Laravel\Nova\Fields\HasMany;
use Laravel\Nova\Fields\HasManyThrough;
use Laravel\Nova\Fields\ID; use Laravel\Nova\Fields\ID;
use Laravel\Nova\Fields\Number; use Laravel\Nova\Fields\Number;
use Laravel\Nova\Fields\Text; use Laravel\Nova\Fields\Text;
@@ -62,6 +64,10 @@ class City extends Resource
BelongsTo::make(__('Country'), 'country', Country::class), BelongsTo::make(__('Country'), 'country', Country::class),
HasMany::make(__('Venues'), 'venues', Venue::class),
HasManyThrough::make(__('Course Events'), 'courseEvents', CourseEvent::class)
]; ];
} }

View File

@@ -46,7 +46,7 @@ class Registration extends Resource
Boolean::make('Active') Boolean::make('Active')
->rules('required'), ->rules('required'),
BelongsTo::make('Course Event'), BelongsTo::make('Course Event', 'courseEvent'),
BelongsTo::make('Participant'), BelongsTo::make('Participant'),
]; ];

111
composer.lock generated
View File

@@ -2702,17 +2702,17 @@
}, },
{ {
"name": "laravel/nova", "name": "laravel/nova",
"version": "4.19.4", "version": "4.19.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "git@github.com:laravel/nova.git", "url": "git@github.com:laravel/nova.git",
"reference": "962deed1c3df3740620be19646c8acd69430e66d" "reference": "1c4f32ab373d93314ae84bd175b644b71c96a28d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://nova.laravel.com/dist/laravel/nova/laravel-nova-962deed1c3df3740620be19646c8acd69430e66d-zip-804f62.zip", "url": "https://nova.laravel.com/dist/laravel/nova/laravel-nova-1c4f32ab373d93314ae84bd175b644b71c96a28d-zip-42a3e1.zip",
"reference": "962deed1c3df3740620be19646c8acd69430e66d", "reference": "1c4f32ab373d93314ae84bd175b644b71c96a28d",
"shasum": "51ac67d601f0f11213b23a9a8f5df425ae48f122" "shasum": "853ce862f1e4adb43b3f18b0542512d6dd54f18a"
}, },
"require": { "require": {
"brick/money": "^0.5.0|^0.6.0|^0.7.0", "brick/money": "^0.5.0|^0.6.0|^0.7.0",
@@ -2723,7 +2723,7 @@
"laravel/ui": "^3.3|^4.0", "laravel/ui": "^3.3|^4.0",
"nesbot/carbon": "^2.53.1", "nesbot/carbon": "^2.53.1",
"php": "^7.3|^8.0", "php": "^7.3|^8.0",
"rap2hpoutre/fast-excel": "^3.2|^4.1", "rap2hpoutre/fast-excel": "^3.2|^4.1|^5.0",
"spatie/once": "^1.1|^2.0|^3.0", "spatie/once": "^1.1|^2.0|^3.0",
"symfony/console": "^5.4|^6.0", "symfony/console": "^5.4|^6.0",
"symfony/finder": "^5.4|^6.0", "symfony/finder": "^5.4|^6.0",
@@ -2807,9 +2807,9 @@
"laravel" "laravel"
], ],
"support": { "support": {
"source": "https://github.com/laravel/nova/tree/v4.19.4" "source": "https://github.com/laravel/nova/tree/v4.19.5"
}, },
"time": "2022-11-29T15:30:53+00:00" "time": "2022-12-14T02:03:19+00:00"
}, },
{ {
"name": "laravel/sanctum", "name": "laravel/sanctum",
@@ -4384,16 +4384,16 @@
}, },
{ {
"name": "nova-kit/nova-packages-tool", "name": "nova-kit/nova-packages-tool",
"version": "v1.6.1", "version": "v1.6.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nova-kit/nova-packages-tool.git", "url": "https://github.com/nova-kit/nova-packages-tool.git",
"reference": "c6deaf054a94d36c20b9472979c5dc94415f1283" "reference": "cbed89e52c04b5b2adb415f4f39b6323ae8a683d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nova-kit/nova-packages-tool/zipball/c6deaf054a94d36c20b9472979c5dc94415f1283", "url": "https://api.github.com/repos/nova-kit/nova-packages-tool/zipball/cbed89e52c04b5b2adb415f4f39b6323ae8a683d",
"reference": "c6deaf054a94d36c20b9472979c5dc94415f1283", "reference": "cbed89e52c04b5b2adb415f4f39b6323ae8a683d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4428,9 +4428,9 @@
], ],
"description": "Tool for Laravel Nova Packages Development", "description": "Tool for Laravel Nova Packages Development",
"support": { "support": {
"source": "https://github.com/nova-kit/nova-packages-tool/tree/v1.6.1" "source": "https://github.com/nova-kit/nova-packages-tool/tree/v1.6.2"
}, },
"time": "2022-11-22T21:40:15+00:00" "time": "2022-12-14T02:09:50+00:00"
}, },
{ {
"name": "nova/start", "name": "nova/start",
@@ -4695,32 +4695,36 @@
}, },
{ {
"name": "openspout/openspout", "name": "openspout/openspout",
"version": "v3.7.4", "version": "v4.9.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/openspout/openspout.git", "url": "https://github.com/openspout/openspout.git",
"reference": "dfbbd53b5edcd486b45a37f6a04fac33073c70f3" "reference": "7b0db352e25c83e42d3375f57041a30a1ea9cd2c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/openspout/openspout/zipball/dfbbd53b5edcd486b45a37f6a04fac33073c70f3", "url": "https://api.github.com/repos/openspout/openspout/zipball/7b0db352e25c83e42d3375f57041a30a1ea9cd2c",
"reference": "dfbbd53b5edcd486b45a37f6a04fac33073c70f3", "reference": "7b0db352e25c83e42d3375f57041a30a1ea9cd2c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-dom": "*", "ext-dom": "*",
"ext-fileinfo": "*",
"ext-filter": "*", "ext-filter": "*",
"ext-libxml": "*", "ext-libxml": "*",
"ext-xmlreader": "*", "ext-xmlreader": "*",
"ext-zip": "*", "ext-zip": "*",
"php": "~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0" "php": "~8.0.0 || ~8.1.0 || ~8.2.0"
}, },
"require-dev": { "require-dev": {
"ext-zlib": "*", "ext-zlib": "*",
"friendsofphp/php-cs-fixer": "^3.4", "friendsofphp/php-cs-fixer": "^3.8.0",
"phpstan/phpstan": "^1.4", "infection/infection": "^0.26.10",
"phpstan/phpstan-phpunit": "^1.0", "phpbench/phpbench": "^1.2.5",
"phpunit/phpunit": "^9.5" "phpstan/phpstan": "^1.6.8",
"phpstan/phpstan-phpunit": "^1.1.1",
"phpstan/phpstan-strict-rules": "^1.2.3",
"phpunit/phpunit": "^9.5.20"
}, },
"suggest": { "suggest": {
"ext-iconv": "To handle non UTF-8 CSV files (if \"php-intl\" is not already installed or is too limited)", "ext-iconv": "To handle non UTF-8 CSV files (if \"php-intl\" is not already installed or is too limited)",
@@ -4768,7 +4772,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/openspout/openspout/issues", "issues": "https://github.com/openspout/openspout/issues",
"source": "https://github.com/openspout/openspout/tree/v3.7.4" "source": "https://github.com/openspout/openspout/tree/v4.9.0"
}, },
"funding": [ "funding": [
{ {
@@ -4780,7 +4784,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2022-03-31T06:15:15+00:00" "time": "2022-12-13T07:41:37+00:00"
}, },
{ {
"name": "paragonie/constant_time_encoding", "name": "paragonie/constant_time_encoding",
@@ -6155,22 +6159,22 @@
}, },
{ {
"name": "rap2hpoutre/fast-excel", "name": "rap2hpoutre/fast-excel",
"version": "v4.1.0", "version": "v5.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/rap2hpoutre/fast-excel.git", "url": "https://github.com/rap2hpoutre/fast-excel.git",
"reference": "724557e844170a231fd4515bbc3ea435ca622e7d" "reference": "ae87162555c6c359964d671af6b7ad6c73f5f013"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/rap2hpoutre/fast-excel/zipball/724557e844170a231fd4515bbc3ea435ca622e7d", "url": "https://api.github.com/repos/rap2hpoutre/fast-excel/zipball/ae87162555c6c359964d671af6b7ad6c73f5f013",
"reference": "724557e844170a231fd4515bbc3ea435ca622e7d", "reference": "ae87162555c6c359964d671af6b7ad6c73f5f013",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"illuminate/support": "5.3.* || 5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || ^6.0 || ^7.0 || ^8.0 || ^9.0", "illuminate/support": "^6.0 || ^7.0 || ^8.0 || ^9.0",
"openspout/openspout": "^3", "openspout/openspout": "^4.1.1",
"php": "^7.3 || ^8.0" "php": "^8.0"
}, },
"require-dev": { "require-dev": {
"illuminate/database": "^6.20.12 || ^7.30.4 || ^8.24.0 || ^9.0", "illuminate/database": "^6.20.12 || ^7.30.4 || ^8.24.0 || ^9.0",
@@ -6213,7 +6217,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/rap2hpoutre/fast-excel/issues", "issues": "https://github.com/rap2hpoutre/fast-excel/issues",
"source": "https://github.com/rap2hpoutre/fast-excel/tree/v4.1.0" "source": "https://github.com/rap2hpoutre/fast-excel/tree/v5.0.0"
}, },
"funding": [ "funding": [
{ {
@@ -6221,7 +6225,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2022-07-21T14:21:25+00:00" "time": "2022-12-09T15:18:32+00:00"
}, },
{ {
"name": "rappasoft/laravel-livewire-tables", "name": "rappasoft/laravel-livewire-tables",
@@ -12539,20 +12543,20 @@
}, },
{ {
"name": "fakerphp/faker", "name": "fakerphp/faker",
"version": "v1.20.0", "version": "v1.21.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/FakerPHP/Faker.git", "url": "https://github.com/FakerPHP/Faker.git",
"reference": "37f751c67a5372d4e26353bd9384bc03744ec77b" "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/FakerPHP/Faker/zipball/37f751c67a5372d4e26353bd9384bc03744ec77b", "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/92efad6a967f0b79c499705c69b662f738cc9e4d",
"reference": "37f751c67a5372d4e26353bd9384bc03744ec77b", "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1 || ^8.0", "php": "^7.4 || ^8.0",
"psr/container": "^1.0 || ^2.0", "psr/container": "^1.0 || ^2.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0" "symfony/deprecation-contracts": "^2.2 || ^3.0"
}, },
@@ -12563,7 +12567,8 @@
"bamarni/composer-bin-plugin": "^1.4.1", "bamarni/composer-bin-plugin": "^1.4.1",
"doctrine/persistence": "^1.3 || ^2.0", "doctrine/persistence": "^1.3 || ^2.0",
"ext-intl": "*", "ext-intl": "*",
"symfony/phpunit-bridge": "^4.4 || ^5.2" "phpunit/phpunit": "^9.5.26",
"symfony/phpunit-bridge": "^5.4.16"
}, },
"suggest": { "suggest": {
"doctrine/orm": "Required to use Faker\\ORM\\Doctrine", "doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
@@ -12575,7 +12580,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "v1.20-dev" "dev-main": "v1.21-dev"
} }
}, },
"autoload": { "autoload": {
@@ -12600,9 +12605,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/FakerPHP/Faker/issues", "issues": "https://github.com/FakerPHP/Faker/issues",
"source": "https://github.com/FakerPHP/Faker/tree/v1.20.0" "source": "https://github.com/FakerPHP/Faker/tree/v1.21.0"
}, },
"time": "2022-07-20T13:12:54+00:00" "time": "2022-12-13T13:54:32+00:00"
}, },
{ {
"name": "fidum/laravel-blueprint-pestphp-addon", "name": "fidum/laravel-blueprint-pestphp-addon",
@@ -13006,16 +13011,16 @@
}, },
{ {
"name": "laravel-lang/lang", "name": "laravel-lang/lang",
"version": "12.6.1", "version": "12.7.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Laravel-Lang/lang.git", "url": "https://github.com/Laravel-Lang/lang.git",
"reference": "4d099a2b7f5cfcda82cc8dc1c39620eb69d66d1f" "reference": "d900bc6dc001a8ca63cc13184c0720d4262e0d23"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/4d099a2b7f5cfcda82cc8dc1c39620eb69d66d1f", "url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/d900bc6dc001a8ca63cc13184c0720d4262e0d23",
"reference": "4d099a2b7f5cfcda82cc8dc1c39620eb69d66d1f", "reference": "d900bc6dc001a8ca63cc13184c0720d4262e0d23",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -13077,7 +13082,7 @@
"type": "open_collective" "type": "open_collective"
} }
], ],
"time": "2022-12-11T22:31:57+00:00" "time": "2022-12-14T07:53:56+00:00"
}, },
{ {
"name": "laravel-lang/publisher", "name": "laravel-lang/publisher",
@@ -13351,16 +13356,16 @@
}, },
{ {
"name": "laravel/sail", "name": "laravel/sail",
"version": "v1.16.3", "version": "v1.16.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/sail.git", "url": "https://github.com/laravel/sail.git",
"reference": "0dbee8802e17911afbe29a8506316343829b056e" "reference": "72412b14d6f4e73b71b5f3068bdb064184fbb001"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/sail/zipball/0dbee8802e17911afbe29a8506316343829b056e", "url": "https://api.github.com/repos/laravel/sail/zipball/72412b14d6f4e73b71b5f3068bdb064184fbb001",
"reference": "0dbee8802e17911afbe29a8506316343829b056e", "reference": "72412b14d6f4e73b71b5f3068bdb064184fbb001",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -13407,7 +13412,7 @@
"issues": "https://github.com/laravel/sail/issues", "issues": "https://github.com/laravel/sail/issues",
"source": "https://github.com/laravel/sail" "source": "https://github.com/laravel/sail"
}, },
"time": "2022-11-21T16:19:18+00:00" "time": "2022-12-12T16:47:37+00:00"
}, },
{ {
"name": "mockery/mockery", "name": "mockery/mockery",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
{ {
"/app.js": "/app.js?id=ada6c8af230f6ad9c250ef9192bae180", "/app.js": "/app.js?id=fc87559387788aba14201a8d24757d03",
"/manifest.js": "/manifest.js?id=d75058ce2144a4049857d3ff9e02de1e", "/manifest.js": "/manifest.js?id=d75058ce2144a4049857d3ff9e02de1e",
"/app.css": "/app.css?id=316ed829ac86fe103756e9781acc55cc", "/app.css": "/app.css?id=c50093a39cdeeb8d1fb37e4b14e73bc7",
"/vendor.js": "/vendor.js?id=de86bde8857e857b607852d11627d8e4", "/vendor.js": "/vendor.js?id=de86bde8857e857b607852d11627d8e4",
"/fonts/snunitosansv11pe01mimslybiv1o4x1m8cce4g1pty10iurt9w6fk2a.woff2": "/fonts/snunitosansv11pe01mimslybiv1o4x1m8cce4g1pty10iurt9w6fk2a.woff2?id=c8390e146be0a3c8a5498355dec892ae", "/fonts/snunitosansv11pe01mimslybiv1o4x1m8cce4g1pty10iurt9w6fk2a.woff2": "/fonts/snunitosansv11pe01mimslybiv1o4x1m8cce4g1pty10iurt9w6fk2a.woff2?id=c8390e146be0a3c8a5498355dec892ae",
"/fonts/snunitosansv11pe01mimslybiv1o4x1m8cce4g1pty14iurt9w6fk2a.woff2": "/fonts/snunitosansv11pe01mimslybiv1o4x1m8cce4g1pty14iurt9w6fk2a.woff2?id=b0735c7dd6126471acbaf9d6e9f5e41a", "/fonts/snunitosansv11pe01mimslybiv1o4x1m8cce4g1pty14iurt9w6fk2a.woff2": "/fonts/snunitosansv11pe01mimslybiv1o4x1m8cce4g1pty14iurt9w6fk2a.woff2?id=b0735c7dd6126471acbaf9d6e9f5e41a",