Commit 4b6417cd authored by alissonalbuquerque's avatar alissonalbuquerque
Browse files

update view from avaliator and teacher

parent 5e7a3582
......@@ -44,7 +44,7 @@ class DashboardController extends Controller
$userPads =
AvaliadorPad::where('user_id', '=', $user->id)
->join('pad', 'avaliador_pad.pad_id', '=', 'pad.id')
->where('pad.status', '=', Status::ATIVO)
->whereIn('pad.status', [Status::ATIVO, Status::ARQUIVADO])
->get();
return view('dashboard', ['userPads' => $userPads, 'menu' => Menu::HOME]);
......
......@@ -213,6 +213,8 @@ class PadController extends Controller
$avaliatorsPads = $pad->avaliadorPads;
$status = Constants::listStatus();
//Se a página atual for 1 remova o previous
//Se a página atual for lastPage remova o next
//Se houver um page="" no query selecionar a opção de professor por padrão [list]
......@@ -298,56 +300,74 @@ class PadController extends Controller
$user = Auth::user();
$pad = Pad::find($id);
$index_menu = MenuItemsAvaliador::HOME;
$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')
->orderBy('name')
->get();
//Informando se o PAD foi enviado ou não
$avaliador_pad = AvaliadorPad::where(function ($query) use ($pad, $user) {
$query->where('user_id', '=', $user->id);
$query->where('pad_id', '=', $pad->id);
})->first();
foreach ($professores as $professor){
$professor->status = "Pendente";
$userPad = $professor->userPads()->where('pad_id', '=', $pad->id)->first();
$avaliacoes = $this->get_avaliacoes($userPad, $avaliador_pad);
$avaliacoes_ensino = !empty($avaliacoes['ensino']) ? $avaliacoes['ensino'] : null;
$avaliacoes_pesquisa = !empty($avaliacoes['pesquisa']) ? $avaliacoes['pesquisa'] : null;
$avaliacoes_extensao = !empty($avaliacoes['extensao']) ? $avaliacoes['extensao'] : null;
$avaliacoes_gestao = !empty($avaliacoes['gestao']) ? $avaliacoes['gestao'] : null;
$avaliacoes_ensino_all = $avaliacoes_ensino? $avaliacoes_ensino->all() : null;
$avaliacoes_pesquisa_all = $avaliacoes_pesquisa? $avaliacoes_pesquisa->all() : null;
$avaliacoes_extensao_all = $avaliacoes_extensao? $avaliacoes_extensao->all() : null;
$avaliacoes_gestao_all = $avaliacoes_gestao? $avaliacoes_gestao->all() : null;
if($avaliacoes_ensino_all || $avaliacoes_pesquisa_all || $avaliacoes_extensao_all || $avaliacoes_gestao_all) {
$professor->status = "Enviado";
}
$professor->ch = $this->get_carga_horaria_total($avaliacoes);
$professor->ch_corrigida = $this->get_carga_horaria_corrigida($avaliacoes_ensino, $avaliacoes_pesquisa, $avaliacoes_extensao, $avaliacoes_gestao);
}
[$user_id, $campus_id, $pad_id, $status_active] = [$user->id, $user->campus_id, $pad->id, PAD::STATUS_ATIVO];
$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, $campus_id, $pad_id, $status_active)
{
$query->where('pad.status', '=', $status_active);
$query->where('users.campus_id', '=', $campus_id);
$query->where('users.id', '!=', $user_id);
$query->where('pad.id', '=', $pad_id);
})
->select('users.id', 'users.name', 'users.email')
->orderBy('users.name')
->limit(10)
->get();
// $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')
// ->orderBy('name')
// ->limit(10)
// ->get();
//
// //Informando se o PAD foi enviado ou não
// $avaliador_pad = AvaliadorPad::where(function ($query) use ($pad, $user) {
// $query->where('user_id', '=', $user->id);
// $query->where('pad_id', '=', $pad->id);
// })->first();
//
//
// foreach ($professores as $professor){
// $professor->status = "Pendente";
// $userPad = $professor->userPads()->where('pad_id', '=', $pad->id)->first();
//
// $avaliacoes = $this->get_avaliacoes($userPad, $avaliador_pad);
//
// $avaliacoes_ensino = !empty($avaliacoes['ensino']) ? $avaliacoes['ensino'] : null;
// $avaliacoes_pesquisa = !empty($avaliacoes['pesquisa']) ? $avaliacoes['pesquisa'] : null;
// $avaliacoes_extensao = !empty($avaliacoes['extensao']) ? $avaliacoes['extensao'] : null;
// $avaliacoes_gestao = !empty($avaliacoes['gestao']) ? $avaliacoes['gestao'] : null;
//
//
// $avaliacoes_ensino_all = $avaliacoes_ensino? $avaliacoes_ensino->all() : null;
// $avaliacoes_pesquisa_all = $avaliacoes_pesquisa? $avaliacoes_pesquisa->all() : null;
// $avaliacoes_extensao_all = $avaliacoes_extensao? $avaliacoes_extensao->all() : null;
// $avaliacoes_gestao_all = $avaliacoes_gestao? $avaliacoes_gestao->all() : null;
//
//
// if($avaliacoes_ensino_all || $avaliacoes_pesquisa_all || $avaliacoes_extensao_all || $avaliacoes_gestao_all) {
// $professor->status = "Enviado";
// }
//
// $professor->ch = $this->get_carga_horaria_total($avaliacoes);
// $professor->ch_corrigida = $this->get_carga_horaria_corrigida($avaliacoes_ensino, $avaliacoes_pesquisa, $avaliacoes_extensao, $avaliacoes_gestao);
// }
return view("pad.avaliacao.professores", compact('professores', 'pad', 'index_menu'));
}
public function professor_atividades($id, $professor_id, $aba=null)
{
{
$pad = Pad::find($id);
$user = Auth::user();
$index_menu = MenuItemsAvaliador::HOME;
......@@ -371,7 +391,7 @@ class PadController extends Controller
$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_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.
$avalPad = $user->avaliadorPad()->first();
......@@ -385,7 +405,7 @@ class PadController extends Controller
} else {
$caminho = 'pad.avaliacao.tarefas_'.$aba;
}
return view($caminho, compact('pad', 'index_menu', 'professor', 'avaliacoes_ensino', 'avaliacoes_pesquisa', 'avaliacoes_extensao', 'avaliacoes_gestao', 'niveis', 'modalidades'));
}
......@@ -466,7 +486,7 @@ class PadController extends Controller
$avaliacoes_ensino_ids = array_merge($avaliacoes_ensino_ids, $avaliacao_ids);
}
$avaliacoes_ensino = Avaliacao::whereIn('id', $avaliacoes_ensino_ids)->orderBy('status')->get();
//
}
......@@ -499,7 +519,7 @@ class PadController extends Controller
$avaliacoes_pesquisa_ids = array_merge($avaliacoes_pesquisa_ids, $avaliacao_ids);
}
$avaliacoes_pesquisa = Avaliacao::whereIn('id', $avaliacoes_pesquisa_ids)->orderBy('status')->get();
}
......@@ -510,7 +530,7 @@ class PadController extends Controller
'ids' => ExtensaoCoordenacao::whereUserPadId($user_pad->id)->pluck('id')->toArray(),
'type' => AvaliacaoUtil::EXTENSAO_COORDENACAO
],
[
[
'ids' => ExtensaoOrientacao::whereUserPadId($user_pad->id)->pluck('id')->toArray(),
'type' => AvaliacaoUtil::EXTENSAO_ORIENTACAO
],
......@@ -519,7 +539,7 @@ class PadController extends Controller
'type' => AvaliacaoUtil::EXTENSAO_OUTROS
]
];
$avaliacoes_extensao_ids = [];
foreach($extensao_grouped_ids as $extensao_group)
{
......@@ -527,7 +547,7 @@ class PadController extends Controller
$avaliacoes_extensao_ids = array_merge($avaliacoes_extensao_ids, $avaliacao_ids);
}
$avaliacoes_extensao = Avaliacao::whereIn('id', $avaliacoes_extensao_ids)->orderBy('status')->get();
}
......@@ -575,19 +595,19 @@ class PadController extends Controller
$avaliacoes_gestao_ids = array_merge($avaliacoes_gestao_ids, $avaliacao_ids);
}
$avaliacoes_gestao = Avaliacao::whereIn('id', $avaliacoes_gestao_ids)->orderBy('status')->get();
}
return [
'ensino' => $avaliacoes_ensino,
'pesquisa' => $avaliacoes_pesquisa,
'extensao' => $avaliacoes_extensao,
'pesquisa' => $avaliacoes_pesquisa,
'extensao' => $avaliacoes_extensao,
'gestao' => $avaliacoes_gestao
];
}
private function get_avaliacoes_with_pagination($user_pad, $avaliador_pad)
{
$avaliacoes_ensino = [];
......@@ -655,7 +675,7 @@ class PadController extends Controller
$avaliacoes_ensino_ids = array_merge($avaliacoes_ensino_ids, $avaliacao_ids);
}
$avaliacoes_ensino = Avaliacao::whereIn('id', $avaliacoes_ensino_ids)->orderBy('status');
//
}
......@@ -688,7 +708,7 @@ class PadController extends Controller
$avaliacoes_pesquisa_ids = array_merge($avaliacoes_pesquisa_ids, $avaliacao_ids);
}
$avaliacoes_pesquisa = Avaliacao::whereIn('id', $avaliacoes_pesquisa_ids)->orderBy('status');
}
......@@ -699,7 +719,7 @@ class PadController extends Controller
'ids' => ExtensaoCoordenacao::whereUserPadId($user_pad->id)->pluck('id')->toArray(),
'type' => AvaliacaoUtil::EXTENSAO_COORDENACAO
],
[
[
'ids' => ExtensaoOrientacao::whereUserPadId($user_pad->id)->pluck('id')->toArray(),
'type' => AvaliacaoUtil::EXTENSAO_ORIENTACAO
],
......@@ -708,7 +728,7 @@ class PadController extends Controller
'type' => AvaliacaoUtil::EXTENSAO_OUTROS
]
];
$avaliacoes_extensao_ids = [];
foreach($extensao_grouped_ids as $extensao_group)
{
......@@ -716,7 +736,7 @@ class PadController extends Controller
$avaliacoes_extensao_ids = array_merge($avaliacoes_extensao_ids, $avaliacao_ids);
}
$avaliacoes_extensao = Avaliacao::whereIn('id', $avaliacoes_extensao_ids)->orderBy('status');
}
......@@ -764,20 +784,20 @@ class PadController extends Controller
$avaliacoes_gestao_ids = array_merge($avaliacoes_gestao_ids, $avaliacao_ids);
}
$avaliacoes_gestao = Avaliacao::whereIn('id', $avaliacoes_gestao_ids)->orderBy('status');
}
return [
'ensino' => $avaliacoes_ensino,
'pesquisa' => $avaliacoes_pesquisa,
'extensao' => $avaliacoes_extensao,
'pesquisa' => $avaliacoes_pesquisa,
'extensao' => $avaliacoes_extensao,
'gestao' => $avaliacoes_gestao
];
}
private function get_carga_horaria_total($avaliacoes)
{
{
//
$ch = 0;
$avaliacoes_ensino = !empty($avaliacoes['ensino']) ? $avaliacoes['ensino'] : null;
......@@ -808,7 +828,7 @@ class PadController extends Controller
$ch += $avaliacoes_gestao[$i]->tarefa()->first()->ch_semanal;
}
}
return $ch;
}
......@@ -879,22 +899,22 @@ class PadController extends Controller
$professor->status = "Pendente";
$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_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_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 ) {
$professor->status = "Enviado";
$professor->pad_id = $userPad->{'id'};
}
}
return view('pad.relatorio.relatorio', [
'pad' => $pad,
'pad' => $pad,
'index_menu' => $index_menu,
'professores' => $professores]);
}
......@@ -927,13 +947,13 @@ class PadController extends Controller
foreach ($professores as $professor){
$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_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_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 ) {
$resource = tmpfile();
$path = stream_get_meta_data($resource)['uri'];
......@@ -947,12 +967,12 @@ class PadController extends Controller
$zipFile = storage_path(random_int(1000, 9999) . ".zip");
$zip = new \ZipArchive();
$zip->open($zipFile, \ZipArchive::CREATE);
foreach ($pads as $profName=>$file)
foreach ($pads as $profName=>$file)
{
$zip->addFile($file, "PAD - Professor ".$profName."_.pdf");
}
$zip->close();
foreach ($pads as $profName=>$file)
foreach ($pads as $profName=>$file)
{
unlink($file);
}
......@@ -965,7 +985,7 @@ class PadController extends Controller
private function get_carga_horaria($avaliacoes){
$ch = 0;
foreach ($avaliacoes as $avaliacao){
$ch += $avaliacao->tarefa->ch_semanal;
}
......
......@@ -12,6 +12,18 @@ class Pad extends Model
{
use HasFactory;
const STATUS_ATIVO = 1;
const STATUS_INATIVO = 2;
const STATUS_ARQUIVADO = 3;
const STATUS_EM_AVALIACAO = 4;
const STATUS_PENDENTE = 3;
const ARQUIVADO = 4;
const FINALIZADO = 5;
const REPROVADO = 6;
const APROVADO = 7;
const EM_REVISAO = 8;
/** @var string */
protected $table = 'pad';
......
......@@ -29,6 +29,7 @@ class Constants {
const STATUS_ATIVO = 1;
const STATUS_INATIVO = 2;
const STATUS_ARQUIVADO = 3;
const STATUS_EM_AVALIACAO = 4;
const DIMENSAO_ENSINO = 1;
const DIMENSAO_PESQUISA = 2;
......@@ -132,6 +133,7 @@ class Constants {
self::STATUS_ATIVO => 'Ativo',
self::STATUS_INATIVO => 'Inativo',
self::STATUS_ARQUIVADO => 'Arquivado',
self::STATUS_EM_AVALIACAO => 'Periodo de Avaliação'
];
return $value !== null? $values[$value] : $values;
......
......@@ -21,7 +21,7 @@ class Status
self::ATIVO => 'Ativo',
self::INATIVO => 'Inativo',
self::PENDENTE => 'Pendente',
self::ARQUIVADO => 'Arquivado',
self::ARQUIVADO => 'Em Avaliação',
self::FINALIZADO => 'Finalizado',
self::REPROVADO => 'Reprovado',
self::APROVADO => 'Aprovado',
......
<?php
use Illuminate\Database\Eloquent\Model;
namespace App\Search;
use App\Models\Campus;
use App\Models\User;
class TeacherAvaliatorSearch extends Model
{
/** @var string */
public $name;
/** @var string */
public $email;
/** @var integer */
public $user_id;
/** @var integer */
public $campus_id;
/** @var integer */
public $pad_id;
/** @var integer */
public $pad_status;
/** @var integer */
public $paginate;
/** @var array */
public $_attributes = ['name', 'email', 'user_id', 'pad_id', 'campus_id', 'pad_status', '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 = User::where([]);
$query->join('user_pad', 'user_pad.user_id', '=', 'users.id')
->join('pad', 'user_pad.pad_id', '=', 'pad.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("users.id", '!=', "{$user_id}");
}
if($this->pad_id) {
$pad_id = $this->pad_id;
$query->where("pad.id", '=', "{$pad_id}");
}
if($this->campus_id) {
$campus_id = $this->campus_id;
$query->where("users.campus_id", '=', "{$campus_id}");
}
if($this->pad_status) {
$pad_status = $this->pad_status;
$query->where("pad.status", '=', "{$pad_status}");
}
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);
}
/** @return Illuminate\Database\Eloquent\Relations\BelongsTo */
public function campus() {
return $this->belongsTo(Campus::class);
}
}
@php
use App\Models\Util\Status;
use App\Models\Pad;
@endphp
<div class="tab-pane active" id="home" role="tabpanel" aria-labelledby="home-tab">
......@@ -31,6 +32,23 @@
</div>
@endif
@if($userPad->pad->status === Pad::STATUS_EM_AVALIACAO)
<div class="card mx-2 bg-secondary" style="width: 12rem;">
<div class="card-body">
<div class="text-end">
<span class="badge bg-primary">{{ $userPad->pad->statusAsString() }}</span>
</div>
<h1 class="text-center"> <i class="bi bi-book-half"></i> </h1>
<h5 class="text-center"> PDA: {{ $userPad->pad->nome }} </h4>
<div class="text-center">
<h4 class="h5"> <span class="badge bg-primary">Horas: {{ $userPad->totalHoras() }}</span> </h4>
</div>
{{-- <a class="stretched-link" href="{{ route('pad_view', ['id' => $userPad->id]) }}"></a> --}}
</div>
</div>
@endif
@endforeach
</div>
</div>
......@@ -23,6 +23,7 @@
<thead class="thead-dark">
<tr>
<th scope="col">Professor</th>
<th scope="col">E-mail</th>
<th scope="col">Status</th>
<th scope="col">CH</th>
<th scope="col">CH Corrigida</th>
......@@ -34,6 +35,7 @@
@foreach ($professores as $professor)
<tr>
<td>{{$professor->name}}</td>
<td>{{$professor->email}}</td>
@if($professor->status === 'Pendente')
<td style="color:red;">{{$professor->status}}</td>
@else
......
<?php
/**
* @var $model App\Models\UserSearch
*/
?>
<form action="{{ route('user_index') }}" method="get">
<div class="row">
<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>
<div class="row">
<div class="mb-3 col-6">
<div class="form-group">
<label class="form-label" for="campus_id"> Status </label>
<select class="form-control" name="campus_id" id="campus_id">
@if($model->campus_id)
<option value="{{$model->campus_id}}" selected> {{$model->campus}} </option>
@endif
</select>
</div>
</div>
</div>
<button type="submit" class="btn btn-primary"> Buscar </button>
</form>
......@@ -38,7 +38,9 @@ require __DIR__ . '/avaliador_pad.php';
require __DIR__ . '/professor_pad.php';
require __DIR__ . '/unidade.php';
require __DIR__ . '/campus.php';
require __DIR__ . '/curso.php';
require __DIR__ . '/anexo.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