Commit 684cd0d3 authored by alissonalbuquerque's avatar alissonalbuquerque
Browse files

feat(search): add search em sessões de pad

parent 7bf03170
...@@ -7,6 +7,9 @@ use App\Http\Controllers\UserPadController; ...@@ -7,6 +7,9 @@ use App\Http\Controllers\UserPadController;
use App\Models\Avaliacao; use App\Models\Avaliacao;
use App\Models\AvaliadorPad; use App\Models\AvaliadorPad;
use App\Models\AvaliadorPadDimensao; use App\Models\AvaliadorPadDimensao;
use App\Search\AvaliadorPadSearch;
use App\Search\UserPadSearch;
use App\Search\UserSearch;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Models\Pad; use App\Models\Pad;
use App\Models\Tabelas\Constants; use App\Models\Tabelas\Constants;
...@@ -202,31 +205,42 @@ class PadController extends Controller ...@@ -202,31 +205,42 @@ class PadController extends Controller
/** /**
* Show the form for editing the specified resource. * Show the form for editing the specified resource.
* *
* @param Illuminate\Http\Request
* @param integer $id * @param integer $id
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function edit($id) public function edit(mixed $id, Request $request)
{ {
$menu = Menu::PADS; $menu = Menu::PADS;
$pad = PAD::find($id); $pad = PAD::find($id);
$userPads = $pad->userPads()->paginate(50); $status = Pad::listStatus();
$avaliatorsPads = $pad->avaliadorPads;
$status = Constants::listStatus();
//Se a página atual for 1 remova o previous $user_pad_search = new UserPadSearch();
//Se a página atual for lastPage remova o next $user_pad_search->pad_id = $id;
//Se houver um page="" no query selecionar a opção de professor por padrão [list] $user_pad_search->paginate = 50;
//Criar variavel para retornar o active tab selecionado
// dd($pad->id); $avaliador_pad_search = new AvaliadorPadSearch();
// dd($userPads, $userPads->links()); $avaliador_pad_search->pad_id = $id;
$avaliador_pad_search->paginate = 50;
$query_params = $request->all();
if(isset($query_params['search_tab'])) {
$user_pads = ($query_params['search_tab'] == 'user_pad') ? $user_pad_search->search($query_params) : $user_pad_search->search();
$avaliador_pads = ($query_params['search_tab'] == 'avaliador_pad') ? $avaliador_pad_search->search($query_params) : $avaliador_pad_search->search();
} else {
$user_pads = $user_pad_search->search();
$avaliador_pads = $avaliador_pad_search->search();
}
return view('pad.admin.edit', [ return view('pad.admin.edit', [
'pad' => $pad, 'pad' => $pad,
'menu' => $menu, 'menu' => $menu,
'status' => $status, 'status' => $status,
'userPads' => $userPads, 'user_pads' => $user_pads,
'avaliatorsPads' => $avaliatorsPads 'avaliador_pads' => $avaliador_pads,
'user_pad_search' => $user_pad_search,
'avaliador_pad_search' => $avaliador_pad_search
]); ]);
} }
...@@ -321,7 +335,7 @@ class PadController extends Controller ...@@ -321,7 +335,7 @@ class PadController extends Controller
$professor->status = "Pendente"; $professor->status = "Pendente";
$userPad = $professor->userPads()->where('pad_id', '=', $pad->id)->first(); $userPad = $professor->userPads()->where('pad_id', '=', $pad->id)->first();
$avaliacoes = $this->get_avaliacoes($userPad, $avaliador_pad); $avaliacoes = $this->get_avaliacoes($userPad, $avaliador_pad);
$avaliacoes_ensino = !empty($avaliacoes['ensino']) ? $avaliacoes['ensino'] : null; $avaliacoes_ensino = !empty($avaliacoes['ensino']) ? $avaliacoes['ensino'] : null;
$avaliacoes_pesquisa = !empty($avaliacoes['pesquisa']) ? $avaliacoes['pesquisa'] : null; $avaliacoes_pesquisa = !empty($avaliacoes['pesquisa']) ? $avaliacoes['pesquisa'] : null;
...@@ -334,7 +348,7 @@ class PadController extends Controller ...@@ -334,7 +348,7 @@ class PadController extends Controller
$avaliacoes_extensao_all = $avaliacoes_extensao? $avaliacoes_extensao->all() : null; $avaliacoes_extensao_all = $avaliacoes_extensao? $avaliacoes_extensao->all() : null;
$avaliacoes_gestao_all = $avaliacoes_gestao? $avaliacoes_gestao->all() : null; $avaliacoes_gestao_all = $avaliacoes_gestao? $avaliacoes_gestao->all() : null;
if($avaliacoes_ensino_all || $avaliacoes_pesquisa_all || $avaliacoes_extensao_all || $avaliacoes_gestao_all) { if($avaliacoes_ensino_all || $avaliacoes_pesquisa_all || $avaliacoes_extensao_all || $avaliacoes_gestao_all) {
$professor->status = "Enviado"; $professor->status = "Enviado";
} }
...@@ -347,7 +361,7 @@ class PadController extends Controller ...@@ -347,7 +361,7 @@ class PadController extends Controller
} }
public function professor_atividades($id, $professor_id, $aba=null) public function professor_atividades($id, $professor_id, $aba=null)
{ {
$pad = Pad::find($id); $pad = Pad::find($id);
$user = Auth::user(); $user = Auth::user();
$index_menu = MenuItemsAvaliador::HOME; $index_menu = MenuItemsAvaliador::HOME;
...@@ -371,7 +385,7 @@ class PadController extends Controller ...@@ -371,7 +385,7 @@ class PadController extends Controller
$avaliacoes_pesquisa = !empty($avaliacoes['pesquisa']) && $avaliacoes['pesquisa']->count() ? $avaliacoes['pesquisa']->paginate(5) : []; $avaliacoes_pesquisa = !empty($avaliacoes['pesquisa']) && $avaliacoes['pesquisa']->count() ? $avaliacoes['pesquisa']->paginate(5) : [];
$avaliacoes_extensao = !empty($avaliacoes['extensao']) && $avaliacoes['extensao']->count() ? $avaliacoes['extensao']->paginate(5) : []; $avaliacoes_extensao = !empty($avaliacoes['extensao']) && $avaliacoes['extensao']->count() ? $avaliacoes['extensao']->paginate(5) : [];
$avaliacoes_gestao = !empty($avaliacoes['gestao']) && $avaliacoes['gestao']->count() ? $avaliacoes['gestao']->paginate(5) : []; $avaliacoes_gestao = !empty($avaliacoes['gestao']) && $avaliacoes['gestao']->count() ? $avaliacoes['gestao']->paginate(5) : [];
//Informando quais tipos (ensino, pesquisa, extensão ou gestão) de atividades podem ser avaliadas pelo usuário logado. //Informando quais tipos (ensino, pesquisa, extensão ou gestão) de atividades podem ser avaliadas pelo usuário logado.
$avalPad = $user->avaliadorPad()->first(); $avalPad = $user->avaliadorPad()->first();
...@@ -385,7 +399,7 @@ class PadController extends Controller ...@@ -385,7 +399,7 @@ class PadController extends Controller
} else { } else {
$caminho = 'pad.avaliacao.tarefas_'.$aba; $caminho = 'pad.avaliacao.tarefas_'.$aba;
} }
return view($caminho, compact('pad', 'index_menu', 'professor', 'avaliacoes_ensino', 'avaliacoes_pesquisa', 'avaliacoes_extensao', 'avaliacoes_gestao', 'niveis', 'modalidades')); return view($caminho, compact('pad', 'index_menu', 'professor', 'avaliacoes_ensino', 'avaliacoes_pesquisa', 'avaliacoes_extensao', 'avaliacoes_gestao', 'niveis', 'modalidades'));
} }
...@@ -466,7 +480,7 @@ class PadController extends Controller ...@@ -466,7 +480,7 @@ class PadController extends Controller
$avaliacoes_ensino_ids = array_merge($avaliacoes_ensino_ids, $avaliacao_ids); $avaliacoes_ensino_ids = array_merge($avaliacoes_ensino_ids, $avaliacao_ids);
} }
$avaliacoes_ensino = Avaliacao::whereIn('id', $avaliacoes_ensino_ids)->orderBy('status')->get(); $avaliacoes_ensino = Avaliacao::whereIn('id', $avaliacoes_ensino_ids)->orderBy('status')->get();
// //
} }
...@@ -499,7 +513,7 @@ class PadController extends Controller ...@@ -499,7 +513,7 @@ class PadController extends Controller
$avaliacoes_pesquisa_ids = array_merge($avaliacoes_pesquisa_ids, $avaliacao_ids); $avaliacoes_pesquisa_ids = array_merge($avaliacoes_pesquisa_ids, $avaliacao_ids);
} }
$avaliacoes_pesquisa = Avaliacao::whereIn('id', $avaliacoes_pesquisa_ids)->orderBy('status')->get(); $avaliacoes_pesquisa = Avaliacao::whereIn('id', $avaliacoes_pesquisa_ids)->orderBy('status')->get();
} }
...@@ -510,7 +524,7 @@ class PadController extends Controller ...@@ -510,7 +524,7 @@ class PadController extends Controller
'ids' => ExtensaoCoordenacao::whereUserPadId($user_pad->id)->pluck('id')->toArray(), 'ids' => ExtensaoCoordenacao::whereUserPadId($user_pad->id)->pluck('id')->toArray(),
'type' => AvaliacaoUtil::EXTENSAO_COORDENACAO 'type' => AvaliacaoUtil::EXTENSAO_COORDENACAO
], ],
[ [
'ids' => ExtensaoOrientacao::whereUserPadId($user_pad->id)->pluck('id')->toArray(), 'ids' => ExtensaoOrientacao::whereUserPadId($user_pad->id)->pluck('id')->toArray(),
'type' => AvaliacaoUtil::EXTENSAO_ORIENTACAO 'type' => AvaliacaoUtil::EXTENSAO_ORIENTACAO
], ],
...@@ -519,7 +533,7 @@ class PadController extends Controller ...@@ -519,7 +533,7 @@ class PadController extends Controller
'type' => AvaliacaoUtil::EXTENSAO_OUTROS 'type' => AvaliacaoUtil::EXTENSAO_OUTROS
] ]
]; ];
$avaliacoes_extensao_ids = []; $avaliacoes_extensao_ids = [];
foreach($extensao_grouped_ids as $extensao_group) foreach($extensao_grouped_ids as $extensao_group)
{ {
...@@ -527,7 +541,7 @@ class PadController extends Controller ...@@ -527,7 +541,7 @@ class PadController extends Controller
$avaliacoes_extensao_ids = array_merge($avaliacoes_extensao_ids, $avaliacao_ids); $avaliacoes_extensao_ids = array_merge($avaliacoes_extensao_ids, $avaliacao_ids);
} }
$avaliacoes_extensao = Avaliacao::whereIn('id', $avaliacoes_extensao_ids)->orderBy('status')->get(); $avaliacoes_extensao = Avaliacao::whereIn('id', $avaliacoes_extensao_ids)->orderBy('status')->get();
} }
...@@ -575,19 +589,19 @@ class PadController extends Controller ...@@ -575,19 +589,19 @@ class PadController extends Controller
$avaliacoes_gestao_ids = array_merge($avaliacoes_gestao_ids, $avaliacao_ids); $avaliacoes_gestao_ids = array_merge($avaliacoes_gestao_ids, $avaliacao_ids);
} }
$avaliacoes_gestao = Avaliacao::whereIn('id', $avaliacoes_gestao_ids)->orderBy('status')->get(); $avaliacoes_gestao = Avaliacao::whereIn('id', $avaliacoes_gestao_ids)->orderBy('status')->get();
} }
return [ return [
'ensino' => $avaliacoes_ensino, 'ensino' => $avaliacoes_ensino,
'pesquisa' => $avaliacoes_pesquisa, 'pesquisa' => $avaliacoes_pesquisa,
'extensao' => $avaliacoes_extensao, 'extensao' => $avaliacoes_extensao,
'gestao' => $avaliacoes_gestao 'gestao' => $avaliacoes_gestao
]; ];
} }
private function get_avaliacoes_with_pagination($user_pad, $avaliador_pad) private function get_avaliacoes_with_pagination($user_pad, $avaliador_pad)
{ {
$avaliacoes_ensino = []; $avaliacoes_ensino = [];
...@@ -655,7 +669,7 @@ class PadController extends Controller ...@@ -655,7 +669,7 @@ class PadController extends Controller
$avaliacoes_ensino_ids = array_merge($avaliacoes_ensino_ids, $avaliacao_ids); $avaliacoes_ensino_ids = array_merge($avaliacoes_ensino_ids, $avaliacao_ids);
} }
$avaliacoes_ensino = Avaliacao::whereIn('id', $avaliacoes_ensino_ids)->orderBy('status'); $avaliacoes_ensino = Avaliacao::whereIn('id', $avaliacoes_ensino_ids)->orderBy('status');
// //
} }
...@@ -688,7 +702,7 @@ class PadController extends Controller ...@@ -688,7 +702,7 @@ class PadController extends Controller
$avaliacoes_pesquisa_ids = array_merge($avaliacoes_pesquisa_ids, $avaliacao_ids); $avaliacoes_pesquisa_ids = array_merge($avaliacoes_pesquisa_ids, $avaliacao_ids);
} }
$avaliacoes_pesquisa = Avaliacao::whereIn('id', $avaliacoes_pesquisa_ids)->orderBy('status'); $avaliacoes_pesquisa = Avaliacao::whereIn('id', $avaliacoes_pesquisa_ids)->orderBy('status');
} }
...@@ -699,7 +713,7 @@ class PadController extends Controller ...@@ -699,7 +713,7 @@ class PadController extends Controller
'ids' => ExtensaoCoordenacao::whereUserPadId($user_pad->id)->pluck('id')->toArray(), 'ids' => ExtensaoCoordenacao::whereUserPadId($user_pad->id)->pluck('id')->toArray(),
'type' => AvaliacaoUtil::EXTENSAO_COORDENACAO 'type' => AvaliacaoUtil::EXTENSAO_COORDENACAO
], ],
[ [
'ids' => ExtensaoOrientacao::whereUserPadId($user_pad->id)->pluck('id')->toArray(), 'ids' => ExtensaoOrientacao::whereUserPadId($user_pad->id)->pluck('id')->toArray(),
'type' => AvaliacaoUtil::EXTENSAO_ORIENTACAO 'type' => AvaliacaoUtil::EXTENSAO_ORIENTACAO
], ],
...@@ -708,7 +722,7 @@ class PadController extends Controller ...@@ -708,7 +722,7 @@ class PadController extends Controller
'type' => AvaliacaoUtil::EXTENSAO_OUTROS 'type' => AvaliacaoUtil::EXTENSAO_OUTROS
] ]
]; ];
$avaliacoes_extensao_ids = []; $avaliacoes_extensao_ids = [];
foreach($extensao_grouped_ids as $extensao_group) foreach($extensao_grouped_ids as $extensao_group)
{ {
...@@ -716,7 +730,7 @@ class PadController extends Controller ...@@ -716,7 +730,7 @@ class PadController extends Controller
$avaliacoes_extensao_ids = array_merge($avaliacoes_extensao_ids, $avaliacao_ids); $avaliacoes_extensao_ids = array_merge($avaliacoes_extensao_ids, $avaliacao_ids);
} }
$avaliacoes_extensao = Avaliacao::whereIn('id', $avaliacoes_extensao_ids)->orderBy('status'); $avaliacoes_extensao = Avaliacao::whereIn('id', $avaliacoes_extensao_ids)->orderBy('status');
} }
...@@ -764,20 +778,20 @@ class PadController extends Controller ...@@ -764,20 +778,20 @@ class PadController extends Controller
$avaliacoes_gestao_ids = array_merge($avaliacoes_gestao_ids, $avaliacao_ids); $avaliacoes_gestao_ids = array_merge($avaliacoes_gestao_ids, $avaliacao_ids);
} }
$avaliacoes_gestao = Avaliacao::whereIn('id', $avaliacoes_gestao_ids)->orderBy('status'); $avaliacoes_gestao = Avaliacao::whereIn('id', $avaliacoes_gestao_ids)->orderBy('status');
} }
return [ return [
'ensino' => $avaliacoes_ensino, 'ensino' => $avaliacoes_ensino,
'pesquisa' => $avaliacoes_pesquisa, 'pesquisa' => $avaliacoes_pesquisa,
'extensao' => $avaliacoes_extensao, 'extensao' => $avaliacoes_extensao,
'gestao' => $avaliacoes_gestao 'gestao' => $avaliacoes_gestao
]; ];
} }
private function get_carga_horaria_total($avaliacoes) private function get_carga_horaria_total($avaliacoes)
{ {
// //
$ch = 0; $ch = 0;
$avaliacoes_ensino = !empty($avaliacoes['ensino']) ? $avaliacoes['ensino'] : null; $avaliacoes_ensino = !empty($avaliacoes['ensino']) ? $avaliacoes['ensino'] : null;
...@@ -808,7 +822,7 @@ class PadController extends Controller ...@@ -808,7 +822,7 @@ class PadController extends Controller
$ch += $avaliacoes_gestao[$i]->tarefa()->first()->ch_semanal; $ch += $avaliacoes_gestao[$i]->tarefa()->first()->ch_semanal;
} }
} }
return $ch; return $ch;
} }
...@@ -879,22 +893,22 @@ class PadController extends Controller ...@@ -879,22 +893,22 @@ class PadController extends Controller
$professor->status = "Pendente"; $professor->status = "Pendente";
$userPad = $professor->userPads()->where('pad_id', '=', $pad->id)->first(); $userPad = $professor->userPads()->where('pad_id', '=', $pad->id)->first();
$avaliacoes = $this->get_avaliacoes($userPad, $avaliador_pad); $avaliacoes = $this->get_avaliacoes($userPad, $avaliador_pad);
$professor->ch_ensino = $this->get_carga_horaria($avaliacoes['ensino'])? $this->get_carga_horaria($avaliacoes['ensino']) : 0; $professor->ch_ensino = $this->get_carga_horaria($avaliacoes['ensino'])? $this->get_carga_horaria($avaliacoes['ensino']) : 0;
$professor->ch_pesquisa = $this->get_carga_horaria($avaliacoes['pesquisa'])? $this->get_carga_horaria($avaliacoes['pesquisa']) : 0; $professor->ch_pesquisa = $this->get_carga_horaria($avaliacoes['pesquisa'])? $this->get_carga_horaria($avaliacoes['pesquisa']) : 0;
$professor->ch_extensao = $this->get_carga_horaria($avaliacoes['extensao'])? $this->get_carga_horaria($avaliacoes['extensao']) : 0; $professor->ch_extensao = $this->get_carga_horaria($avaliacoes['extensao'])? $this->get_carga_horaria($avaliacoes['extensao']) : 0;
$professor->ch_gestao = $this->get_carga_horaria($avaliacoes['gestao'])? $this->get_carga_horaria($avaliacoes['gestao']) : 0; $professor->ch_gestao = $this->get_carga_horaria($avaliacoes['gestao'])? $this->get_carga_horaria($avaliacoes['gestao']) : 0;
if($professor->ch_ensino || $professor->ch_pesquisa || $professor->ch_extensao || $professor->ch_gestao ) { if($professor->ch_ensino || $professor->ch_pesquisa || $professor->ch_extensao || $professor->ch_gestao ) {
$professor->status = "Enviado"; $professor->status = "Enviado";
$professor->pad_id = $userPad->{'id'}; $professor->pad_id = $userPad->{'id'};
} }
} }
return view('pad.relatorio.relatorio', [ return view('pad.relatorio.relatorio', [
'pad' => $pad, 'pad' => $pad,
'index_menu' => $index_menu, 'index_menu' => $index_menu,
'professores' => $professores]); 'professores' => $professores]);
} }
...@@ -927,13 +941,13 @@ class PadController extends Controller ...@@ -927,13 +941,13 @@ class PadController extends Controller
foreach ($professores as $professor){ foreach ($professores as $professor){
$userPad = $professor->userPads()->where('pad_id', '=', $pad->id)->first(); $userPad = $professor->userPads()->where('pad_id', '=', $pad->id)->first();
$avaliacoes = $this->get_avaliacoes($userPad, $avaliador_pad); $avaliacoes = $this->get_avaliacoes($userPad, $avaliador_pad);
$professor->ch_ensino = $this->get_carga_horaria($avaliacoes['ensino'])? $this->get_carga_horaria($avaliacoes['ensino']) : 0; $professor->ch_ensino = $this->get_carga_horaria($avaliacoes['ensino'])? $this->get_carga_horaria($avaliacoes['ensino']) : 0;
$professor->ch_pesquisa = $this->get_carga_horaria($avaliacoes['pesquisa'])? $this->get_carga_horaria($avaliacoes['pesquisa']) : 0; $professor->ch_pesquisa = $this->get_carga_horaria($avaliacoes['pesquisa'])? $this->get_carga_horaria($avaliacoes['pesquisa']) : 0;
$professor->ch_extensao = $this->get_carga_horaria($avaliacoes['extensao'])? $this->get_carga_horaria($avaliacoes['extensao']) : 0; $professor->ch_extensao = $this->get_carga_horaria($avaliacoes['extensao'])? $this->get_carga_horaria($avaliacoes['extensao']) : 0;
$professor->ch_gestao = $this->get_carga_horaria($avaliacoes['gestao'])? $this->get_carga_horaria($avaliacoes['gestao']) : 0; $professor->ch_gestao = $this->get_carga_horaria($avaliacoes['gestao'])? $this->get_carga_horaria($avaliacoes['gestao']) : 0;
if($professor->ch_ensino || $professor->ch_pesquisa || $professor->ch_extensao || $professor->ch_gestao ) { if($professor->ch_ensino || $professor->ch_pesquisa || $professor->ch_extensao || $professor->ch_gestao ) {
$resource = tmpfile(); $resource = tmpfile();
$path = stream_get_meta_data($resource)['uri']; $path = stream_get_meta_data($resource)['uri'];
...@@ -947,12 +961,12 @@ class PadController extends Controller ...@@ -947,12 +961,12 @@ class PadController extends Controller
$zipFile = storage_path(random_int(1000, 9999) . ".zip"); $zipFile = storage_path(random_int(1000, 9999) . ".zip");
$zip = new \ZipArchive(); $zip = new \ZipArchive();
$zip->open($zipFile, \ZipArchive::CREATE); $zip->open($zipFile, \ZipArchive::CREATE);
foreach ($pads as $profName=>$file) foreach ($pads as $profName=>$file)
{ {
$zip->addFile($file, "PAD - Professor ".$profName."_.pdf"); $zip->addFile($file, "PAD - Professor ".$profName."_.pdf");
} }
$zip->close(); $zip->close();
foreach ($pads as $profName=>$file) foreach ($pads as $profName=>$file)
{ {
unlink($file); unlink($file);
} }
...@@ -965,7 +979,7 @@ class PadController extends Controller ...@@ -965,7 +979,7 @@ class PadController extends Controller
private function get_carga_horaria($avaliacoes){ private function get_carga_horaria($avaliacoes){
$ch = 0; $ch = 0;
foreach ($avaliacoes as $avaliacao){ foreach ($avaliacoes as $avaliacao){
$ch += $avaliacao->tarefa->ch_semanal; $ch += $avaliacao->tarefa->ch_semanal;
} }
......
...@@ -21,11 +21,15 @@ class Pad extends Model ...@@ -21,11 +21,15 @@ class Pad extends Model
/** @var array */ /** @var array */
protected $dates = ['deleted_at']; protected $dates = ['deleted_at'];
const STATUS_ATIVO = 1;
const STATUS_INATIVO = 2;
const STATUS_ARQUIVADO = 3;
/** /**
* @return string * @return string
* */ * */
public function statusAsString() { public function statusAsString() {
return Status::listStatus($this->status); return self::listStatus($this->status);
} }
/** /**
...@@ -57,5 +61,16 @@ class Pad extends Model ...@@ -57,5 +61,16 @@ class Pad extends Model
public function avaliadorPads(){ public function avaliadorPads(){
return $this->hasMany(AvaliadorPad::class, 'pad_id'); return $this->hasMany(AvaliadorPad::class, 'pad_id');
} }
public static function listStatus($value = null) {
$values = [
self::STATUS_ATIVO => 'Ativo',
self::STATUS_INATIVO => 'Inativo',
self::STATUS_ARQUIVADO => 'Arquivado',
];
return $value !== null? $values[$value] : $values;
}
} }
...@@ -31,6 +31,7 @@ use App\Models\Pad; ...@@ -31,6 +31,7 @@ use App\Models\Pad;
use App\Models\Util\Status; use App\Models\Util\Status;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use DateTime;
//remover tabela de user_pad //remover tabela de user_pad
...@@ -68,13 +69,13 @@ class UserPad extends Model ...@@ -68,13 +69,13 @@ class UserPad extends Model
public static function messages() { public static function messages() {
return [ return [
]; ];
} }
public function totalHoras() public function totalHoras()
{ {
$ensinoTotalHoras = $ensinoTotalHoras =
EnsinoAtendimentoDiscente::whereUserPadId($this->id)->sum('ch_semanal') EnsinoAtendimentoDiscente::whereUserPadId($this->id)->sum('ch_semanal')
+ EnsinoAula::whereUserPadId($this->id)->sum('ch_semanal') + EnsinoAula::whereUserPadId($this->id)->sum('ch_semanal')
+ EnsinoCoordenacaoRegencia::whereUserPadId($this->id)->sum('ch_semanal') + EnsinoCoordenacaoRegencia::whereUserPadId($this->id)->sum('ch_semanal')
...@@ -84,8 +85,8 @@ class UserPad extends Model ...@@ -84,8 +85,8 @@ class UserPad extends Model
+ EnsinoParticipacao::whereUserPadId($this->id)->sum('ch_semanal') + EnsinoParticipacao::whereUserPadId($this->id)->sum('ch_semanal')
+ EnsinoProjeto::whereUserPadId($this->id)->sum('ch_semanal') + EnsinoProjeto::whereUserPadId($this->id)->sum('ch_semanal')
+ EnsinoSupervisao::whereUserPadId($this->id)->sum('ch_semanal'); + EnsinoSupervisao::whereUserPadId($this->id)->sum('ch_semanal');
$gestaoTotalHoras = $gestaoTotalHoras =
GestaoCoordenacaoLaboratoriosDidaticos::whereUserPadId($this->id)->sum('ch_semanal') GestaoCoordenacaoLaboratoriosDidaticos::whereUserPadId($this->id)->sum('ch_semanal')
+ GestaoCoordenacaoProgramaInstitucional::whereUserPadId($this->id)->sum('ch_semanal') + GestaoCoordenacaoProgramaInstitucional::whereUserPadId($this->id)->sum('ch_semanal')
+ GestaoMembroCamaras::whereUserPadId($this->id)->sum('ch_semanal') + GestaoMembroCamaras::whereUserPadId($this->id)->sum('ch_semanal')
...@@ -94,7 +95,7 @@ class UserPad extends Model ...@@ -94,7 +95,7 @@ class UserPad extends Model
+ GestaoMembroTitularConselho::whereUserPadId($this->id)->sum('ch_semanal') + GestaoMembroTitularConselho::whereUserPadId($this->id)->sum('ch_semanal')
+ GestaoOutros::whereUserPadId($this->id)->sum('ch_semanal') + GestaoOutros::whereUserPadId($this->id)->sum('ch_semanal')
+ GestaoRepresentanteUnidadeEducacao::whereUserPadId($this->id)->sum('ch_semanal'); + GestaoRepresentanteUnidadeEducacao::whereUserPadId($this->id)->sum('ch_semanal');
$pesquisaTotalHoras = $pesquisaTotalHoras =
PesquisaCoordenacao::whereUserPadId($this->id)->sum('ch_semanal') PesquisaCoordenacao::whereUserPadId($this->id)->sum('ch_semanal')
+ PesquisaLideranca::whereUserPadId($this->id)->sum('ch_semanal') + PesquisaLideranca::whereUserPadId($this->id)->sum('ch_semanal')
...@@ -111,7 +112,21 @@ class UserPad extends Model ...@@ -111,7 +112,21 @@ class UserPad extends Model
return $totalHoras; return $totalHoras;
} }
/* public function total_horas()
{
$date_interval = TaskTime::float_to_date_interval($this->totalHoras());
[$hours, $minutes] = [$date_interval->format('%h'), $date_interval->format('%i')];
$hours = strlen($hours) < 2 ? str_pad($hours, 2, '0', STR_PAD_LEFT) : $hours;
$minutes = strlen($minutes) < 2 ? str_pad($minutes, 2, '0', STR_PAD_LEFT) : $minutes;
$date_format = "{$hours}:{$minutes}";
return $date_format;
}
/*
* @RELATIONS (relações entre tarefas) * @RELATIONS (relações entre tarefas)
*/ */
public function ensinoAtendimentoDiscentes() { public function ensinoAtendimentoDiscentes() {
...@@ -150,7 +165,7 @@ class UserPad extends Model ...@@ -150,7 +165,7 @@ class UserPad extends Model
return $this->hasMany(EnsinoSupervisao::class, 'user_pad_id', 'id'); return $this->hasMany(EnsinoSupervisao::class, 'user_pad_id', 'id');
} }
public function extensaoCoordenacoes() { public function extensaoCoordenacoes() {
return $this->hasMany(ExtensaoCoordenacao::class, 'user_pad_id', 'id'); return $this->hasMany(ExtensaoCoordenacao::class, 'user_pad_id', 'id');
} }
...@@ -163,7 +178,7 @@ class UserPad extends Model ...@@ -163,7 +178,7 @@ class UserPad extends Model
return $this->hasMany(ExtensaoOutros::class, 'user_pad_id', 'id'); return $this->hasMany(ExtensaoOutros::class, 'user_pad_id', 'id');
} }
public function gestaoCoordenacaoLaboratoriosDidaticos() { public function gestaoCoordenacaoLaboratoriosDidaticos() {
return $this->hasMany(GestaoCoordenacaoLaboratoriosDidaticos::class, 'user_pad_id', 'id'); return $this->hasMany(GestaoCoordenacaoLaboratoriosDidaticos::class, 'user_pad_id', 'id');
} }
...@@ -196,7 +211,7 @@ class UserPad extends Model ...@@ -196,7 +211,7 @@ class UserPad extends Model
return $this->hasMany(GestaoRepresentanteUnidadeEducacao::class, 'user_pad_id', 'id'); return $this->hasMany(GestaoRepresentanteUnidadeEducacao::class, 'user_pad_id', 'id');
} }
public function pesquisaCoordenacoes() { public function pesquisaCoordenacoes() {
return $this->hasMany(PesquisaCoordenacao::class, 'user_pad_id', 'id'); return $this->hasMany(PesquisaCoordenacao::class, 'user_pad_id', 'id');
} }
...@@ -204,11 +219,11 @@ class UserPad extends Model ...@@ -204,11 +219,11 @@ class UserPad extends Model
public function pesquisaLiderancas() { public function pesquisaLiderancas() {
return $this->hasMany(PesquisaLideranca::class, 'user_pad_id', 'id'); return $this->hasMany(PesquisaLideranca::class, 'user_pad_id', 'id');
} }
public function pesquisaOrientacoes() { public function pesquisaOrientacoes() {
return $this->hasMany(PesquisaOrientacao::class, 'user_pad_id', 'id'); return $this->hasMany(PesquisaOrientacao::class, 'user_pad_id', 'id');
} }
public function pesquisaOutros() { public function pesquisaOutros() {
return $this->hasMany(PesquisaOutros::class, 'user_pad_id', 'id'); return $this->hasMany(PesquisaOutros::class, 'user_pad_id', 'id');
} }
......
<?php
namespace App\Search;
use App\Models\AvaliadorPad;
use App\Models\Pad;
use App\Models\User;
use App\Models\UserPad;
use Illuminate\Database\Eloquent\Model;
class AvaliadorPadSearch extends Model
{
/** @var string */
public $name;
/** @var string */
public $email;
/** @var integer */
public $user_id;
/** @var integer */
public $pad_id;
/** @var integer */
public $paginate;
/** @var array */
public $_attributes = ['name', 'email', 'user_id', 'pad_id', 'paginate'];
/** @return void */
public function load($params = [])
{
foreach($this->_attributes as $_attribute)
{
if(isset($this->$_attribute)) {
$this->$_attribute = $this->$_attribute;
} else if(isset($params[$_attribute])) {
$this->$_attribute = $params[$_attribute];
} else {
$this->$_attribute = null;
}
}
}
/** @return Illuminate\Database\Eloquent\Collection */
public function search($params = [])
{
/** @var Illuminate\Database\Eloquent\Builder */
$query = AvaliadorPad::where([]);
$query->join('users', 'users.id', '=', 'avaliador_pad.user_id');
$this->load($params);
if($this->name) {
$name = $this->name;
$query->where('users.name', "like", "%{$name}%");
}
if($this->email) {
$email = $this->email;
$query->where('users.email', "like", "%{$email}%");
}
if($this->user_id) {
$user_id = $this->user_id;
$query->where("user_id", '=', "{$user_id}");
}
if($this->pad_id) {
$pad_id = $this->pad_id;
$query->where("pad_id", '=', "{$pad_id}");
}
return $this->paginate ? $query->get()->paginate($this->paginate) : $query->get();
}
/** @return Illuminate\Database\Eloquent\Relations\BelongsTo */
public function user() {
return $this->belongsTo(User::class);
}
/** @return Illuminate\Database\Eloquent\Relations\BelongsTo */
public function pad() {
return $this->belongsTo(Pad::class);
}
}
<?php
namespace App\Search;
use App\Models\Pad;
use App\Models\User;
use App\Models\UserPad;
use Illuminate\Database\Eloquent\Model;
class UserPadSearch extends Model
{
/** @var string */
public $name;
/** @var string */
public $email;
/** @var integer */
public $user_id;
/** @var integer */
public $pad_id;
/** @var integer */
public $paginate;
/** @var array */
public $_attributes = ['name', 'email', 'user_id', 'pad_id', 'paginate'];
/** @return void */
public function load($params = [])
{
foreach($this->_attributes as $_attribute)
{
if(isset($this->$_attribute)) {
$this->$_attribute = $this->$_attribute;
} else if(isset($params[$_attribute])) {
$this->$_attribute = $params[$_attribute];
} else {
$this->$_attribute = null;
}
}
}
/** @return Illuminate\Database\Eloquent\Collection */
public function search($params = [])
{
/** @var Illuminate\Database\Eloquent\Builder */
$query = UserPad::where([]);
$query->join('users', 'users.id', '=', 'user_pad.user_id');
$this->load($params);
if($this->name) {
$name = $this->name;
$query->where('users.name', "like", "%{$name}%");
}
if($this->email) {
$email = $this->email;
$query->where('users.email', "like", "%{$email}%");
}
if($this->user_id) {
$user_id = $this->user_id;
$query->where("user_id", '=', "{$user_id}");
}
if($this->pad_id) {
$pad_id = $this->pad_id;
$query->where("pad_id", '=', "{$pad_id}");
}
return $this->paginate ? $query->get()->paginate($this->paginate) : $query->get();
}
/** @return Illuminate\Database\Eloquent\Relations\BelongsTo */
public function user() {
return $this->belongsTo(User::class);
}
/** @return Illuminate\Database\Eloquent\Relations\BelongsTo */
public function pad() {
return $this->belongsTo(Pad::class);
}
}
@php
/**
* @var $pad App\Models\Pad
* @var $menu integer
* @var $status integer
* @var $user_pads Illuminate\Database\Eloquent\Collection<App\Models\UserPad>
* @var $avaliador_pads Illuminate\Database\Eloquent\Collection<App\Models\AvaliadorPad>
* @var $user_pad_search App\Search\UserPadSearch
* @var $avaliador_pad_search App\Search\AvaliadorPadSearch
*/
@endphp
@extends('layouts.main') @extends('layouts.main')
@section('title', 'Novo') @section('title', 'Novo')
...@@ -110,6 +122,8 @@ ...@@ -110,6 +122,8 @@
<div class="border rounded px-2"> <div class="border rounded px-2">
@include('pad/admin/search/_user_pad_search', ['model' => $user_pad_search])
{{-- Create Professor --}} {{-- Create Professor --}}
<div class="text-end my-2"> <div class="text-end my-2">
<button type="button" class="btn btn-success user-pad-create"> Cadastrar Professor </button> <button type="button" class="btn btn-success user-pad-create"> Cadastrar Professor </button>
...@@ -122,17 +136,19 @@ ...@@ -122,17 +136,19 @@
<tr> <tr>
<th scope="col"> Professor </th> <th scope="col"> Professor </th>
<th scope="col"> PDA </th> <th scope="col"> PDA </th>
<th scope="col"> E-mail </th>
<th scope="col"> C.H </th> <th scope="col"> C.H </th>
<th scope="col"> Opções </th> <th scope="col"> Opções </th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach($userPads as $userPad) @foreach($user_pads as $user_pad)
<tr> <tr>
<td>{{ $userPad->user }}</td> <td>{{ $user_pad->user }}</td>
<td>{{ $userPad->pad->nome }}</td> <td>{{ $user_pad->pad->nome }}</td>
<td> <span class="badge bg-primary">{{ $userPad->totalHoras() }}</span> </td> <td>{{ $user_pad->user->email }}</td>
<td> <span class="badge bg-primary">{{ $user_pad->total_horas() }}</span> </td>
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>
...@@ -140,18 +156,19 @@ ...@@ -140,18 +156,19 @@
{{-- Table --}} {{-- Table --}}
{{-- Pagination --}} {{-- Pagination --}}
<ul class="pagination justify-content-end"> @if($user_pads->hasPages())
<ul class="pagination justify-content-end">
</ul> @if(!$user_pads->onFirstPage())
<li class="page-item"> <a class="page-link" href="{{ $user_pads->previousPageUrl() }}" tabindex="-1" aria-disabled="true">< Anterior</a> </li>
@endif
<ul class="pagination justify-content-end"> @if($user_pads->hasMorePages())
<li class="page-item"> <a class="page-link" href="#" tabindex="-1" aria-disabled="true">Anterior</a> </li> <li class="page-item"> <a class="page-link" href="{{ $user_pads->nextPageUrl() }}">Próximo > </a> </li>
<li class="page-item"><a class="page-link" href="">1</a></li> @endif
<li class="page-item"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li> </ul>
<li class="page-item"> <a class="page-link" href="#">Próximo</a> </li> @endif
</ul>
{{-- Pagination --}}
</div> </div>
...@@ -161,6 +178,8 @@ ...@@ -161,6 +178,8 @@
<div class="border rounded px-2"> <div class="border rounded px-2">
@include('pad/admin/search/_avaliador_pad_search', ['model' => $avaliador_pad_search])
<div class="text-end my-2"> <div class="text-end my-2">
<button type="button" class="btn btn-success avaliator-pad-create"> Cadastrar Avaliador </button> <button type="button" class="btn btn-success avaliator-pad-create"> Cadastrar Avaliador </button>
</div> </div>
...@@ -169,6 +188,7 @@ ...@@ -169,6 +188,7 @@
<thead> <thead>
<tr> <tr>
<th scope="col"> Avaliador </th> <th scope="col"> Avaliador </th>
<th scope="col"> E-mail </th>
<th scope="col"> PDA </th> <th scope="col"> PDA </th>
<th scope="col"> Dimensão </th> <th scope="col"> Dimensão </th>
<th scope="col"> Opções </th> <th scope="col"> Opções </th>
...@@ -176,12 +196,13 @@ ...@@ -176,12 +196,13 @@
</thead> </thead>
<tbody> <tbody>
@foreach($avaliatorsPads as $avaliatorPad) @foreach($avaliador_pads as $avaliador_pad)
<tr> <tr>
<td>{{ $avaliatorPad->user->name ?? 'UserID não selecionado!' }}</td> <td>{{ $avaliador_pad->user->name ?? 'UserID não selecionado!' }}</td>
<td>{{ $avaliatorPad->pad->nome }}</td> <td>{{ $avaliador_pad->user->email }}</td>
<td>{{ $avaliador_pad->pad->nome }}</td>
<td> <td>
@foreach($avaliatorPad->dimensions as $dimension) @foreach($avaliador_pad->dimensions as $dimension)
<span class="badge bg-primary">{{ $dimension }}</span> <span class="badge bg-primary">{{ $dimension }}</span>
@endforeach @endforeach
</td> </td>
...@@ -190,13 +211,13 @@ ...@@ -190,13 +211,13 @@
<div class="me-1"> <div class="me-1">
@include('components.buttons.btn-edit-task', [ @include('components.buttons.btn-edit-task', [
'btn_class' => 'btn-edit_avaliador_pad', 'btn_class' => 'btn-edit_avaliador_pad',
'btn_id' => $avaliatorPad->id, 'btn_id' => $avaliador_pad->id,
]) ])
</div> </div>
<div class="me-1"> <div class="me-1">
@include('components.buttons.btn-delete', [ @include('components.buttons.btn-delete', [
'id' => $avaliatorPad->id, 'id' => $avaliador_pad->id,
'route' => route('avaliador-pad_delete', ['id' => $avaliatorPad->id]) 'route' => route('avaliador-pad_delete', ['id' => $avaliador_pad->id])
]) ])
</div> </div>
</div> </div>
......
<?php
/**
* @var $model App\Search\AvaliadorPadSearch;
*/
?>
<div class="m-2 p-2">
<form action="{{ route('pad_edit', ['id' => $model->pad_id]) }}" method="get">
<div class="row">
<div>
<input type="hidden" name="search_tab" value="avaliador_pad">
</div>
<div>
<input type="hidden" name="pad_id" value="{{ $model->pad_id }}">
</div>
<div class="mb-3 col-6">
<div class="form-group">
<label class="form-label" for="name"> Nome </label>
<input type="text" name="name" id="name" class="form-control" placeholder="Nome" value="{{ $model->name }}">
</div>
</div>
<div class="mb-3 col-6">
<div class="form-group">
<label class="form-label" for="email"> E-Mail </label>
<input type="email" name="email" id="email" class="form-control" placeholder="E-Mail" value="{{ $model->email }}">
</div>
</div>
</div>
<button type="submit" class="btn btn-primary"> Buscar </button>
</form>
</div>
<hr>
<?php
/**
* @var $model App\Search\UserPadSearch;
*/
?>
<div class="m-2 p-2">
<form action="{{ route('pad_edit', ['id' => $model->pad_id]) }}" method="get">
<div class="row">
<div>
<input type="hidden" name="search_tab" value="user_pad">
</div>
<div>
<input type="hidden" name="pad_id" value="{{ $model->pad_id }}">
</div>
<div class="mb-3 col-6">
<div class="form-group">
<label class="form-label" for="name"> Nome </label>
<input type="text" name="name" id="name" class="form-control" placeholder="Nome" value="{{ $model->name }}">
</div>
</div>
<div class="mb-3 col-6">
<div class="form-group">
<label class="form-label" for="email"> E-Mail </label>
<input type="email" name="email" id="email" class="form-control" placeholder="E-Mail" value="{{ $model->email }}">
</div>
</div>
</div>
<button type="submit" class="btn btn-primary"> Buscar </button>
</form>
</div>
<hr>
...@@ -18,6 +18,8 @@ Route::prefix('/pad')->group(function () { ...@@ -18,6 +18,8 @@ Route::prefix('/pad')->group(function () {
Route::get('/{id}/professor/{professor_id}/atividades/pesquisa', [PadController::class, 'professor_atividades'])->name('pad_professor_atividades_pesquisa'); Route::get('/{id}/professor/{professor_id}/atividades/pesquisa', [PadController::class, 'professor_atividades'])->name('pad_professor_atividades_pesquisa');
Route::get('/{id}/professor/{professor_id}/atividades/gestao', [PadController::class, 'professor_atividades'])->name('pad_professor_atividades_gestao'); Route::get('/{id}/professor/{professor_id}/atividades/gestao', [PadController::class, 'professor_atividades'])->name('pad_professor_atividades_gestao');
Route::get('/{id}/professor/{professor_id}/atividades/extensao', [PadController::class, 'professor_atividades'])->name('pad_professor_atividades_extensao'); Route::get('/{id}/professor/{professor_id}/atividades/extensao', [PadController::class, 'professor_atividades'])->name('pad_professor_atividades_extensao');
// Route::get('/{id}/professor/{professor_id}/atividades/extensao', [PadController::class, 'professor_atividades'])->name('pad_professor_atividades_extensao');
}); });
/** PadProfessor */ /** PadProfessor */
......
...@@ -54,8 +54,11 @@ require __DIR__ . '/task_time.php'; ...@@ -54,8 +54,11 @@ require __DIR__ . '/task_time.php';
require __DIR__ . '/dimensao/dimensao.php'; require __DIR__ . '/dimensao/dimensao.php';
require __DIR__ . '/dimensao/ensino.php'; require __DIR__ . '/dimensao/ensino.php';
require __DIR__ . '/dimensao/gestao.php'; require __DIR__ . '/dimensao/gestao.php';
require __DIR__ . '/dimensao/pesquisa.php'; require __DIR__ . '/dimensao/pesquisa.php';
require __DIR__ . '/dimensao/extensao.php'; require __DIR__ . '/dimensao/extensao.php';
require __DIR__ . '/import/update_user.php'; require __DIR__ . '/import/update_user.php';
......
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