Allow vacancies to be deleted

This commit is contained in:
2021-10-25 05:45:45 +01:00
parent 596d0ab648
commit c657da951c
7 changed files with 44 additions and 12 deletions

View File

@@ -147,4 +147,14 @@ class VacancyController extends Controller
->back()
->with('success', __('Vacancy successfully updated.'));
}
public function delete(Request $request, Vacancy $vacancy)
{
$this->authorize('delete', $vacancy);
$vacancy->delete();
return redirect()
->back()
->with('success', __('Vacancy deleted. All applications associated with it are now gone too.'));
}
}

View File

@@ -21,7 +21,9 @@
namespace App\Observers;
use App\Application;
use App\Vacancy;
use Illuminate\Support\Facades\Log;
class VacancyObserver
{
@@ -47,6 +49,16 @@ class VacancyObserver
//
}
public function deleting(Vacancy $vacancy)
{
foreach(Application::with('response.vacancy')->get() as $app) {
if ($app->response->vacancy->id == $vacancy->id)
{
$app->delete();
}
}
}
/**
* Handle the vacancy "deleted" event.
*
@@ -55,7 +67,7 @@ class VacancyObserver
*/
public function deleted(Vacancy $vacancy)
{
// TODO: Handle deletion of children's data
}
/**

View File

@@ -85,7 +85,7 @@ class VacancyPolicy
*/
public function delete(User $user, Vacancy $vacancy)
{
//
return $user->hasAnyRole('admin', 'hiringManager');
}
/**

View File

@@ -25,7 +25,9 @@ use App\Facades\Options;
use App\Application;
use App\Observers\ApplicationObserver;
use App\Observers\UserObserver;
use App\Observers\VacancyObserver;
use App\User;
use App\Vacancy;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema;
@@ -59,8 +61,11 @@ class AppServiceProvider extends ServiceProvider
Schema::defaultStringLength(191);
Paginator::useBootstrap();
// Register observers
User::observe(UserObserver::class);
Application::observe(ApplicationObserver::class);
Vacancy::observe(VacancyObserver::class);
$https = ($this->app->environment() != 'local');
$collect = true;