- add send CV status
This commit is contained in:
@@ -56,6 +56,17 @@ class CVController extends Controller
|
||||
->with('success', 'Utworzono nowe CV dla firmy ' . $request->get('recipient'));
|
||||
}
|
||||
|
||||
public function updateSendStatus(CV $cv): RedirectResponse
|
||||
{
|
||||
$cv->update([
|
||||
'sended' => true,
|
||||
'sended_timestamp' => now()
|
||||
]);
|
||||
return redirect()
|
||||
->route('admin.cv.show', ['cv' => $cv])
|
||||
->with('success', 'Status wysłania ustawiono jako "wysłano".');
|
||||
}
|
||||
|
||||
public function edit(CV $cv): InertiaResponse
|
||||
{
|
||||
return inertia('CV/Edit', [
|
||||
@@ -65,16 +76,30 @@ class CVController extends Controller
|
||||
|
||||
public function update(CVRequest $request, CV $cv): RedirectResponse
|
||||
{
|
||||
$cv->update([
|
||||
'recipient' => $request->get('recipient'),
|
||||
'email' => $request->get('email'),
|
||||
'phone_number' => $request->get('phone_number'),
|
||||
'locations' => ($locations = $request->get('locations')) === [''] ? [] : $locations,
|
||||
'mission' => ($mission = $request->get('mission')) === [''] ? [] : $mission,
|
||||
'rodo' => ($rodo =$request->get('rodo')) === '' ? null : $rodo,
|
||||
'position' => $request->get('position'),
|
||||
'notes' => $request->get('notes'),
|
||||
$toUpdate = [
|
||||
'recipient' => $request->get('recipient'),
|
||||
'email' => $request->get('email'),
|
||||
'phone_number' => $request->get('phone_number'),
|
||||
'locations' => ($locations = $request->get('locations')) === [''] ? [] : $locations,
|
||||
'mission' => ($mission = $request->get('mission')) === [''] ? [] : $mission,
|
||||
'rodo' => ($rodo =$request->get('rodo')) === '' ? null : $rodo,
|
||||
'position' => $request->get('position'),
|
||||
'notes' => $request->get('notes'),
|
||||
];
|
||||
|
||||
if ($cv->sended && ! $request->boolean('sended')) {
|
||||
$toUpdate = array_merge($toUpdate, [
|
||||
'sended' => false,
|
||||
'sended_timestamp' => null,
|
||||
]);
|
||||
} else if (! $cv->sended && $request->boolean('sended')) {
|
||||
$toUpdate = array_merge($toUpdate, [
|
||||
'sended' => true,
|
||||
'sended_timestamp' => now(),
|
||||
]);
|
||||
}
|
||||
|
||||
$cv->update($toUpdate);
|
||||
return redirect()
|
||||
->back()
|
||||
->with('success', 'Zaktualizowano CV dla firmy ' . $request->get('recipient'));
|
||||
|
@@ -19,6 +19,19 @@ class CVRequest extends FormRequest
|
||||
'rodo' => 'nullable|string',
|
||||
'position' => 'nullable|string',
|
||||
'notes' => 'nullable|string',
|
||||
'sended' => 'nullable|boolean',
|
||||
];
|
||||
}
|
||||
|
||||
protected function prepareForValidation(): void
|
||||
{
|
||||
$this->merge([
|
||||
'sended' => $this->toBoolean($this->sended),
|
||||
]);
|
||||
}
|
||||
|
||||
private function toBoolean($booleable): bool
|
||||
{
|
||||
return filter_var($booleable, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
|
||||
}
|
||||
}
|
||||
|
@@ -23,7 +23,7 @@ class ProjectRequest extends FormRequest
|
||||
|
||||
'project_url' => 'nullable|string',
|
||||
'project_version' => 'nullable|string',
|
||||
'description' => 'nullable|string',
|
||||
'description' => 'required|string|min:3',
|
||||
'visible' => 'required|boolean'
|
||||
];
|
||||
}
|
||||
|
@@ -21,6 +21,10 @@ class FullCVResource extends JsonResource
|
||||
'locations' => $this->locations,
|
||||
'views' => $this->resource->info()->select('id')->get()->count(),
|
||||
'registeredViews' => $this->views,
|
||||
'sended' => [
|
||||
'status' => $this->sended,
|
||||
'datetime' => $this->sended_timestamp?->format('d-m-Y H:i:s'),
|
||||
],
|
||||
'position' => $this->position,
|
||||
'mission' => explode(PHP_EOL, $this->mission ?? '', 5),
|
||||
'rodo' => $this->rodo,
|
||||
|
@@ -21,6 +21,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
* @property string|null $position
|
||||
* @property string|null $notes
|
||||
* @property int $views
|
||||
* @property bool $sended
|
||||
*/
|
||||
class CV extends Model
|
||||
{
|
||||
@@ -31,6 +32,8 @@ class CV extends Model
|
||||
protected $casts = [
|
||||
'locations' => 'array',
|
||||
'views' => 'integer',
|
||||
'sended' => 'boolean',
|
||||
'sended_timestamp' => 'datetime',
|
||||
];
|
||||
|
||||
protected function phoneNumber(): Attribute
|
||||
|
Reference in New Issue
Block a user