112 lines
2.2 KiB
PHP
112 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Log;
|
|
use Mpociot\Teamwork\Traits\UsedByTeams;
|
|
|
|
|
|
use GrahamCampbell\Markdown\Facades\Markdown;
|
|
|
|
|
|
class Vacancy extends Model
|
|
{
|
|
//use UsedByTeams;
|
|
|
|
public $fillable = [
|
|
|
|
'permissionGroupName',
|
|
'vacancyName',
|
|
'vacancyDescription',
|
|
'vacancyFullDescription',
|
|
'discordRoleID',
|
|
'vacancyFormID',
|
|
'vacancyCount',
|
|
'vacancyStatus',
|
|
'vacancySlug',
|
|
'team_id'
|
|
|
|
];
|
|
|
|
|
|
/**
|
|
* Get the HTML variant of the vacancyFullDescription attribute.
|
|
*
|
|
* @param string $value The original value
|
|
* @return string
|
|
*/
|
|
public function getVacancyFullDescriptionAttribute($value)
|
|
{
|
|
if (!is_null($value))
|
|
{
|
|
return Markdown::convertToHTML($value);
|
|
}
|
|
else
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
public function teams()
|
|
{
|
|
return $this->belongsToMany('App\Team', 'team_has_vacancy');
|
|
}
|
|
|
|
|
|
public function forms()
|
|
{
|
|
return $this->belongsTo('App\Form', 'vacancyFormID', 'id');
|
|
}
|
|
|
|
public function open()
|
|
{
|
|
$this->update([
|
|
'vacancyStatus' => 'OPEN'
|
|
]);
|
|
|
|
Log::info("Vacancies: Vacancy " . $this->id . " (" . $this->vacancyName . ") opened by " . Auth::user()->name);
|
|
}
|
|
|
|
public function close()
|
|
{
|
|
$this->update([
|
|
'vacancyStatus' => 'CLOSED'
|
|
]);
|
|
|
|
Log::warning("Vacancies: Vacancy " . $this->id . " (" . $this->vacancyName . ") closed by " . Auth::user()->name);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* Check if the Modal is attached to the $checkingTeam Model
|
|
*
|
|
* @param Team $checkingTeam The mdoel you want to check against
|
|
* @return boolean Whether the models are attached
|
|
*/
|
|
public function hasTeam(Team $checkingTeam): bool
|
|
{
|
|
$myTeams = $this->teams;
|
|
|
|
if (empty($myTeams))
|
|
{
|
|
// no associated teams
|
|
return false;
|
|
}
|
|
|
|
foreach($myTeams as $team)
|
|
{
|
|
if ($team->id === $checkingTeam->id)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
}
|