feat: add discord acct requirement for vacancies

Signed-off-by: miguel456 <me@nogueira.codes>
This commit is contained in:
Miguel Nogueira 2022-10-22 02:05:25 +01:00
parent dced0907b6
commit 93ac960419
No known key found for this signature in database
GPG Key ID: 3C6A7E29AF26D370
7 changed files with 47 additions and 10 deletions

View File

@ -70,6 +70,7 @@ class VacancyController extends Controller
'discordRoleID' => $request->discordRole,
'vacancyFormID' => $request->vacancyFormID,
'vacancyCount' => $request->vacancyCount,
'requiresDiscord' => $request->requireDiscordAccount == 'on'
]);
@ -142,6 +143,7 @@ class VacancyController extends Controller
$vacancy->vacancyFullDescription = $request->vacancyFullDescription;
$vacancy->vacancyDescription = $request->vacancyDescription;
$vacancy->vacancyCount = $request->vacancyCount;
$vacancy->requiresDiscord = $request->requireDiscordAccount == 'on';
$vacancy->save();

View File

@ -47,6 +47,7 @@ class VacancyEditRequest extends FormRequest
'vacancyDescription' => 'required|string',
'vacancyFullDescription' => 'nullable|string',
'vacancyCount' => 'required|integer|min:1',
'requireDiscordAccount' => 'required|string'
];
}
}

View File

@ -25,6 +25,8 @@ use Illuminate\Foundation\Http\FormRequest;
class VacancyRequest extends FormRequest
{
public mixed $requiresDiscordAccount;
/**
* Determine if the user is authorized to make this request.
*
@ -50,6 +52,7 @@ class VacancyRequest extends FormRequest
'discordRole' => 'nullable|string',
'vacancyCount' => 'required|integer',
'vacancyFormID' => 'required|integer',
'requireDiscordAccount' => 'required|string'
];
}
}

View File

@ -44,6 +44,7 @@ class Vacancy extends Model
'vacancyStatus',
'vacancySlug',
'team_id',
'requiresDiscord'
];

View File

@ -0,0 +1,24 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddDiscordRequirementToVacancies extends Migration
{
public function up()
{
Schema::table('vacancies', function (Blueprint $table) {
$table->boolean('requiresDiscord')
->default(false)
->after('vacancyStatus');
});
}
public function down()
{
Schema::table('vacancies', function (Blueprint $table) {
$table->dropColumn('requiresDiscord');
});
}
}

View File

@ -93,15 +93,7 @@
<div class="col">
<!-- DEPRECATED! -->
<label for="permissionGroupName">{{__('Permission group')}}</label>
<input type="text" class="form-control" value="{{ $vacancy->permissionGroupName }}" id="permissionGroupName" disabled />
</div>
<div class="col">
<label for="discordRoleID">{{__('Discord role ID')}}</label>
<label for="discordRoleID">{{__('Comma-separated list of Discord role IDs')}}</label>
<input type="text" class="form-control" value="{{ $vacancy->discordRoleID }}" id="discordRoleID" disabled />
@ -118,6 +110,14 @@
<label for="remainingSlots">{{__('Remaining slots')}}</label>
<input type="text" class="form-control" value="{{ $vacancy->vacancyCount }}" id="remainingSlots" name="vacancyCount" />
<div class="form-check mt-4">
<input type="hidden" value="off" name="requireDiscordAccount">
<input class="form-check-input" type="checkbox" id="requireDiscordAccount" name="requireDiscordAccount" @if($vacancy->requiresDiscord) checked @endif>
<label class="text-bold form-check-label" for="requireDiscordAccount">
{{ __('Require a Discord account for users to apply') }}
</label>
<p class="text-muted"><i class="fas fa-info-circle"> </i> {{ __('This will redirect users to sign in with Discord before they are allowed to submit the form.') }}</p>
</div>
</div>

View File

@ -88,7 +88,13 @@
<label for="vacancyCount">{{__('Free slots')}}</label>
<input rel="txtTooltip" title="{{__('The number of free slots decreases each time an applicant is approved for this vacancy.')}}" data-toggle="tooltip" data-placement="bottom" type="text" id="vacancyCount" name="vacancyCount" class="form-control">
<div class="form-check mt-4">
<input type="hidden" value="off" name="requireDiscordAccount">
<input class="form-check-input" type="checkbox" value="" id="requireDiscordAccount" name="requireDiscordAccount">
<label class="text-bold form-check-label" for="requireDiscordAccount">
{{ __('Require a Discord account for users to apply') }}
</label>
</div>
</div>
</form>