Commit 51d62438 authored by luiz-davi's avatar luiz-davi
Browse files

listagem de professores para avaliação

parent 646e5362
......@@ -54,16 +54,14 @@ class PadController extends Controller
*/
public function index()
{
if(Auth::user()->isTypeAdmin())
{
if (Auth::user()->isTypeAdmin()) {
$users = User::initQuery()->whereType(UserType::TEACHER)->get();
$pads = Pad::all();
$menu = Menu::PADS;
return view('pad.admin.index', ['menu' => $menu, 'pads' => $pads]);
}
if(Auth::user()->isTypeTeacher())
{
if (Auth::user()->isTypeTeacher()) {
$menu = Menu::PADS;
$userPads = UserPad::whereUserId(Auth::user()->id)->get();
......@@ -145,36 +143,34 @@ class PadController extends Controller
*/
public function store(Request $request)
{
$validated = $request->validate([
'nome' => ['required', 'string', 'min:6', 'max:255'],
'status' => ['required', 'integer'],
'data_inicio' => ['required', 'date', 'before_or_equal:data_fim'],
'data_fim' => ['required', 'date', 'after_or_equal:data_inicio'],
],
[
'required' => 'O campo de :attribute é obrigatório',
'nome.min' => 'O campo de :attribute deve ter no mínimo 6 letras',
'nome.max' => 'O campo de :attribute deve ter no máximo 255 letras',
'data_inicio.before_or_equal' => 'A :attribute deve ser uma data anterior ou igual a data de fim',
'data_fim.after_or_equal' => 'A :attribute deve ser uma data posterior ou igual a data de início',
]);
if($validated)
{
$validated = $request->validate(
[
'nome' => ['required', 'string', 'min:6', 'max:255'],
'status' => ['required', 'integer'],
'data_inicio' => ['required', 'date', 'before_or_equal:data_fim'],
'data_fim' => ['required', 'date', 'after_or_equal:data_inicio'],
],
[
'required' => 'O campo de :attribute é obrigatório',
'nome.min' => 'O campo de :attribute deve ter no mínimo 6 letras',
'nome.max' => 'O campo de :attribute deve ter no máximo 255 letras',
'data_inicio.before_or_equal' => 'A :attribute deve ser uma data anterior ou igual a data de fim',
'data_fim.after_or_equal' => 'A :attribute deve ser uma data posterior ou igual a data de início',
]
);
if ($validated) {
$model = new Pad($request->all());
$users = User::initQuery()->whereType(UserType::TEACHER)->get();
if($model->save())
{
if ($model->save()) {
$users = User::initQuery()->whereType(UserType::TEACHER)->get();
foreach($users as $user)
{
foreach ($users as $user) {
$profile = $user->profile(UserType::TEACHER);
if($profile)
{
if ($profile) {
$userPad = new UserPad();
$userPad->pad_id = $model->id;
$userPad->user_id = $user->id;
......@@ -189,12 +185,11 @@ class PadController extends Controller
return redirect()->route('pad_index')->with('success', 'Erro ao cadastrar o PAD!');
}
}
}
public function anexo()
{
return view('pad.anexo', ['index_menu' => 1 ]);
return view('pad.anexo', ['index_menu' => 1]);
}
/**
......@@ -230,25 +225,27 @@ class PadController extends Controller
*/
public function update(Request $request, $id)
{
$validated = $request->validate([
'nome' => ['required', 'string', 'min:6', 'max:255'],
'status' => ['required', 'integer'],
'data_inicio' => ['required', 'date', 'before_or_equal:data_fim'],
'data_fim' => ['required', 'date', 'after_or_equal:data_inicio'],
],
[
'required' => 'O campo de :attribute é obrigatório',
'nome.min' => 'O campo de :attribute deve ter no mínimo 6 letras',
'nome.max' => 'O campo de :attribute deve ter no máximo 255 letras',
'data_inicio.before_or_equal' => 'A :attribute deve ser uma data anterior ou igual a data de fim',
'data_fim.after_or_equal' => 'A :attribute deve ser uma data posterior ou igual a data de início',
]);
if($validated) {
$validated = $request->validate(
[
'nome' => ['required', 'string', 'min:6', 'max:255'],
'status' => ['required', 'integer'],
'data_inicio' => ['required', 'date', 'before_or_equal:data_fim'],
'data_fim' => ['required', 'date', 'after_or_equal:data_inicio'],
],
[
'required' => 'O campo de :attribute é obrigatório',
'nome.min' => 'O campo de :attribute deve ter no mínimo 6 letras',
'nome.max' => 'O campo de :attribute deve ter no máximo 255 letras',
'data_inicio.before_or_equal' => 'A :attribute deve ser uma data anterior ou igual a data de fim',
'data_fim.after_or_equal' => 'A :attribute deve ser uma data posterior ou igual a data de início',
]
);
if ($validated) {
$model = Pad::find($id);
$model->fill($request->all());
if($model->save()) {
if ($model->save()) {
return redirect()->route('pad_index')->with('success', 'PAD atualizado com sucesso!');
} else {
return redirect()->route('pad_index')->with('success', 'Erro ao atualizar o PAD!');
......@@ -257,10 +254,11 @@ class PadController extends Controller
}
public function delete($id) {
public function delete($id)
{
$model = Pad::find($id);
if($model->delete()) {
if ($model->delete()) {
return redirect()->route('pad_index')->with('success', 'PAD removido com sucesso!');
} else {
return redirect()->route('pad_index')->with('fail', 'Não foi possível remover o PAD!');
......@@ -280,4 +278,21 @@ class PadController extends Controller
return redirect('/pad/index');
}
public function professores($id)
{
$user = Auth::user();
$professores = User::join('user_pad', 'user_pad.user_id', '=', 'users.id')
->join('pad', 'user_pad.pad_id', '=', 'pad.id')
->where(function ($query) use ($user, $id) {
$query->where('pad.status', '=', Status::ATIVO);
$query->where('users.campus_id', '=', $user->campus_id);
$query->where('users.id', '!=', $user->id);
$query->where('pad.id', '=', $id);
})
->select('users.id', 'users.name')
->get();
dd($professores);
}
}
......@@ -7,6 +7,6 @@
<h3 class="text-center"> <i class="bi bi-book-half"></i> </h3>
<h5 class="text-center"> PAD: {{ $userPad->pad->nome }} </h4>
<h5 class="text-center"> Status: {{ $userPad->pad->statusAsString() }} </h4>
<a class="stretched-link" href="{{ route('pad_view', ['id' => $userPad->id]) }}"></a>
<a class="stretched-link" href="{{ route('pad_professores', ['id' => $userPad->id]) }}"></a>
</div>
</div>
......@@ -12,6 +12,7 @@ Route::prefix('/pad')->group(function () {
Route::get('/edit/{id}', [PadController::class, 'edit'])->name('pad_edit');
Route::put('/update/{id}', [PadController::class, 'update'])->name('pad_update');
Route::delete('/delete/{id}', [PadController::class, 'delete'])->name('pad_delete');
Route::get('/{id}/avaliar/professores', [PadController::class, 'professores'])->name('pad_professores');
});
/** PadProfessor */
......@@ -26,4 +27,4 @@ Route::prefix('/pad/professor')->group(function () {
// Route::get('/index', [PadAvaliadorController::class, 'index'])->name('pad_index');
// // Route::get('/view/{id}', [PadAvaliadorController::class, 'view'])->name('pad_view');
// // Route::get('/anexo/{id}', [PadAvaliadorController::class, 'anexo'])->name('pad_anexo');
// });
\ No newline at end of file
// });
......@@ -103,4 +103,3 @@ Route::prefix('/user')->group(function () {
Route::post('/update/perfil', [UserController::class, 'updatePerfil'])->name('update_perfil');
Route::post('/update/password', [UserController::class, 'updatePassword'])->name('update_password');
});
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment