Unverified Commit 6ea824cf authored by Laboratório Multidisciplinar de Tecnologias Sociais's avatar Laboratório Multidisciplinar de Tecnologias Sociais Committed by GitHub
Browse files

Merge pull request #184 from GuilhermeGz/master

Atualizações do Sistema
parents b3f9089b 5fd7aa87
...@@ -13,6 +13,7 @@ class Avaliador extends Model ...@@ -13,6 +13,7 @@ class Avaliador extends Model
'parecer', 'parecer',
'AnexoParecer', 'AnexoParecer',
'pivot', 'pivot',
'tipo',
]; ];
public function user(){ public function user(){
return $this->belongsTo('App\User'); return $this->belongsTo('App\User');
...@@ -29,5 +30,8 @@ class Avaliador extends Model ...@@ -29,5 +30,8 @@ class Avaliador extends Model
public function area(){ public function area(){
return $this->belongsTo('App\Area'); return $this->belongsTo('App\Area');
} }
public function parecer_internos(){
return $this->hasMany(ParecerInterno::class, 'avali_id', 'id');
}
} }
...@@ -2,9 +2,11 @@ ...@@ -2,9 +2,11 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Substituicao;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Administrador; use App\Administrador;
use App\User; use App\User;
use App\ParecerInterno;
use App\Avaliador; use App\Avaliador;
use App\AdministradorResponsavel; use App\AdministradorResponsavel;
use App\Area; use App\Area;
...@@ -63,7 +65,12 @@ class AdministradorController extends Controller ...@@ -63,7 +65,12 @@ class AdministradorController extends Controller
$evento = Evento::where('id', $request->evento_id)->first(); $evento = Evento::where('id', $request->evento_id)->first();
$trabalhosSubmetidos = $evento->trabalhos->where('status', 'submetido'); $trabalhosSubmetidos = $evento->trabalhos->where('status', 'submetido');
$trabalhosAvaliados = $evento->trabalhos->Where('status', 'avaliado'); $trabalhosAvaliados = $evento->trabalhos->Where('status', 'avaliado');
$trabalhos = $trabalhosSubmetidos->merge($trabalhosAvaliados)->sortBy('titulo'); $trabalhosAprovados = $evento->trabalhos->Where('status', 'aprovado');
$trabalhosReprovados = $evento->trabalhos->Where('status', 'reprovado');
$trabalhosCorrigidos = $evento->trabalhos->Where('status', 'corrigido');
$trabalhos = $trabalhosSubmetidos
->merge($trabalhosAvaliados)->merge($trabalhosAprovados)
->merge($trabalhosReprovados)->merge($trabalhosCorrigidos)->sortBy('titulo');
$funcaoParticipantes = FuncaoParticipantes::all(); $funcaoParticipantes = FuncaoParticipantes::all();
// $participantes = Participante::where('trabalho_id', $id)->get(); // $participantes = Participante::where('trabalho_id', $id)->get();
...@@ -73,13 +80,33 @@ class AdministradorController extends Controller ...@@ -73,13 +80,33 @@ class AdministradorController extends Controller
return view('administrador.analisar')->with(['trabalhos' => $trabalhos, 'evento' => $evento, 'funcaoParticipantes' => $funcaoParticipantes]); return view('administrador.analisar')->with(['trabalhos' => $trabalhos, 'evento' => $evento, 'funcaoParticipantes' => $funcaoParticipantes]);
} }
public function analisarProposta(Request $request){
$trabalho = Trabalho::where('id',$request->id)->first();
$evento = Evento::where('id', $trabalho->evento_id)->first();
$funcaoParticipantes = FuncaoParticipantes::all();
$substituicoesProjeto = Substituicao::where('trabalho_id', $trabalho->id)->orderBy('created_at', 'DESC')->get();
$substituicoesPendentes = Substituicao::where('trabalho_id', $trabalho->id)->where('status', 'Em Aguardo')->orderBy('created_at', 'DESC')->get();
$avalSelecionadosId = $trabalho->avaliadors->pluck('id');
$avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get();
$trabalho->aval = $avalProjeto;
return view('administrador.analisarProposta')->with(
[ 'trabalho' => $trabalho,
'funcaoParticipantes' => $funcaoParticipantes,
'evento' => $evento,
'substituicoesPendentes' => $substituicoesPendentes,
'substituicoesProjeto' => $substituicoesProjeto,]);
}
public function showProjetos(Request $request){ public function showProjetos(Request $request){
$evento = Evento::where('id', $request->evento_id)->first(); $projetos = Trabalho::all()->where('status','<>','rascunho');
$editais = Evento::with('trabalhos')->get(); $funcaoParticipantes = FuncaoParticipantes::all();
$projetos = Trabalho::all();
return view('administrador.listaProjetos', compact('projetos', 'evento','editais')); return view('administrador.listaProjetos')->with(['projetos'=>$projetos,'funcaoParticipantes'=>$funcaoParticipantes]);
} }
public function showResultados(Request $request){ public function showResultados(Request $request){
...@@ -99,6 +126,17 @@ class AdministradorController extends Controller ...@@ -99,6 +126,17 @@ class AdministradorController extends Controller
return view('administrador.visualizarParecer')->with(['trabalho' => $trabalho, 'parecer' => $parecer, 'avaliador' => $avaliador]); return view('administrador.visualizarParecer')->with(['trabalho' => $trabalho, 'parecer' => $parecer, 'avaliador' => $avaliador]);
} }
public function visualizarParecerInterno(Request $request){
$avaliador = Avaliador::find($request->avaliador_id);
$trabalho = $avaliador->trabalhos->where('id', $request->trabalho_id)->first();
$parecerInterno = ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
$evento = Evento::find($trabalho->evento_id);
//dd($parecer);
return view('administrador.visualizarParecerInterno')->with(['parecer' => $parecerInterno, 'avaliador' => $avaliador,'trabalho' => $trabalho,'evento' => $evento]);
}
public function create() { public function create() {
return view('administrador.novo_user'); return view('administrador.novo_user');
} }
...@@ -182,6 +220,7 @@ class AdministradorController extends Controller ...@@ -182,6 +220,7 @@ class AdministradorController extends Controller
case "avaliador": case "avaliador":
$avaliador = new Avaliador(); $avaliador = new Avaliador();
$avaliador->user_id = $user->id; $avaliador->user_id = $user->id;
$avaliador->tipo = $request->tipoAvaliador;
$avaliador->save(); $avaliador->save();
break; break;
case "proponente": case "proponente":
......
...@@ -2,6 +2,13 @@ ...@@ -2,6 +2,13 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Area;
use App\Arquivo;
use App\FuncaoParticipantes;
use App\GrandeArea;
use App\ParecerInterno;
use App\Participante;
use App\SubArea;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use App\Trabalho; use App\Trabalho;
...@@ -14,6 +21,36 @@ use Illuminate\Support\Facades\Storage; ...@@ -14,6 +21,36 @@ use Illuminate\Support\Facades\Storage;
class AvaliadorController extends Controller class AvaliadorController extends Controller
{ {
public $estados = array(
'AC' => 'Acre',
'AL' => 'Alagoas',
'AP' => 'Amapá',
'AM' => 'Amazonas',
'BA' => 'Bahia',
'CE' => 'Ceará',
'DF' => 'Distrito Federal',
'ES' => 'Espirito Santo',
'GO' => 'Goiás',
'MA' => 'Maranhão',
'MS' => 'Mato Grosso do Sul',
'MT' => 'Mato Grosso',
'MG' => 'Minas Gerais',
'PA' => 'Pará',
'PB' => 'Paraíba',
'PR' => 'Paraná',
'PE' => 'Pernambuco',
'PI' => 'Piauí',
'RJ' => 'Rio de Janeiro',
'RN' => 'Rio Grande do Norte',
'RS' => 'Rio Grande do Sul',
'RO' => 'Rondônia',
'RR' => 'Roraima',
'SC' => 'Santa Catarina',
'SP' => 'São Paulo',
'SE' => 'Sergipe',
'TO' => 'Tocantins',
);
public function index(){ public function index(){
return view('avaliador.index'); return view('avaliador.index');
...@@ -50,6 +87,86 @@ class AvaliadorController extends Controller ...@@ -50,6 +87,86 @@ class AvaliadorController extends Controller
return view('avaliador.parecer', ['trabalho'=>$trabalho, 'evento'=>$evento]); return view('avaliador.parecer', ['trabalho'=>$trabalho, 'evento'=>$evento]);
} }
public function parecerInterno(Request $request){
$user = User::find(Auth::user()->id);
$avaliador = $user->avaliadors->where('user_id',$user->id)->first();
$trabalho = $avaliador->trabalhos->find($request->trabalho_id);
$evento = Evento::find($request->evento);
$parecerInterno = ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
//Gerais
$grandeAreas = GrandeArea::all();
$areas = Area::all();
$subareas = Subarea::all();
//
$participantes = $trabalho->participantes;
$arquivos = Arquivo::where('trabalhoId', $trabalho->id)->get();
return view('avaliador.parecerInterno',
['trabalho'=>$trabalho,
'evento'=>$evento,
'parecer'=>$parecerInterno,
'grandeAreas' => $grandeAreas,
'areas' => $areas,
'subAreas' => $subareas,
'participantes' => $participantes,
'enum_turno' => Participante::ENUM_TURNO,
'arquivos' => $arquivos,
'estados' => $this->estados,
]);
}
public function enviarParecerInterno(Request $request){
$user = User::find(Auth::user()->id);
$evento = Evento::where('id', $request->evento_id)->first();
$trabalhos = $user->avaliadors->where('user_id',$user->id)->first()->trabalhos->where('evento_id', $request->evento_id);
$avaliador = $user->avaliadors->where('user_id',$user->id)->first();
$trabalho = $avaliador->trabalhos->find($request->trabalho_id);
$parecerInterno = ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
$statusParecer = "NAO-RECOMENDADO";
if(
$request->anexoLinkLattes=='aceito' && $request->anexoGrupoPesquisa=='aceito' && $request->anexoProjeto=='aceito' &&
$request->anexoConsu=='aceito' && $request->anexoPlanilha=='aceito' && $request->anexoLattesCoordenador=='aceito' &&
$request->anexoGrupoPesquisa=='aceito' && $request->anexoComiteEtica=='aceito' && $request->anexoJustificativa=='aceito' &&
$request->anexoPlano=='aceito'){
$statusParecer = "RECOMENDADO";
}
if($parecerInterno == null) {
$parecerInterno = ParecerInterno::create([
'statusLinkLattesProponente' => $request->anexoLinkLattes,
'statusLinkGrupoPesquisa' => $request->anexoGrupoPesquisa,
'statusAnexoProjeto' => $request->anexoProjeto,
'statusAnexoDecisaoCONSU' => $request->anexoConsu,
'statusAnexoPlanilhaPontuacao' => $request->anexoPlanilha,
'statusAnexoLattesCoordenador' => $request->anexoLattesCoordenador,
'statusAnexoGrupoPesquisa' => $request->anexoGrupoPesquisa,
'statusAnexoAtuorizacaoComiteEtica' => $request->anexoComiteEtica,
'statusJustificativaAutorizacaoEtica' => $request->anexoJustificativa,
'statusPlanoTrabalho' => $request->anexoPlano,
'statusParecer' => $statusParecer,
'trabalho_id' => $request->trabalho_id,
'avaliador_id' => $request->avaliador_id,
]);
$parecerInterno->save();
}else{
$parecerInterno->statusLinkLattesProponente = $request->anexoLinkLattes;
$parecerInterno->statusLinkGrupoPesquisa = $request->anexoGrupoPesquisa;
$parecerInterno->statusAnexoProjeto = $request->anexoProjeto;
$parecerInterno->statusAnexoDecisaoCONSU = $request->anexoConsu;
$parecerInterno->statusAnexoPlanilhaPontuacao = $request->anexoPlanilha;
$parecerInterno->statusAnexoLattesCoordenador = $request->anexoLattesCoordenador;
$parecerInterno->statusAnexoGrupoPesquisa = $request->anexoLinkLattes;
$parecerInterno->statusAnexoAtuorizacaoComiteEtica = $request->anexoComiteEtica;
$parecerInterno->statusJustificativaAutorizacaoEtica = $request->anexoJustificativa;
$parecerInterno->statusPlanoTrabalho = $request->anexoPlano;
$parecerInterno->statusParecer = $statusParecer;
$parecerInterno->update();
}
return view('avaliador.listarTrabalhos', ['trabalhos'=>$trabalhos, 'evento'=>$evento]);
}
public function parecerPlano(Request $request){ public function parecerPlano(Request $request){
$user = User::find(Auth::user()->id); $user = User::find(Auth::user()->id);
......
<?php
namespace App\Http\Controllers;
use App\Notificacao;
use Illuminate\Http\Request;
class NotificacaoController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param \App\Notificacao $notificacao
* @return \Illuminate\Http\Response
*/
public function show(Notificacao $notificacao)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Notificacao $notificacao
* @return \Illuminate\Http\Response
*/
public function edit(Notificacao $notificacao)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Notificacao $notificacao
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Notificacao $notificacao)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Notificacao $notificacao
* @return \Illuminate\Http\Response
*/
public function destroy(Notificacao $notificacao)
{
//
}
public function listar()
{
$notificacoes = Notificacao::all()->sortByDesc('created_at');
return view('notificacao.listar',['notificacoes'=>$notificacoes]);
}
public function listarTrab()
{
$destinatarios = Notificacao::where('destinatario_id',Auth()->user()->id)->get();
$remetentes = Notificacao::where('remetente_id',Auth()->user()->id)->get();
$notificacoes = $destinatarios->merge($remetentes)->sortByDesc('created_at');
return view('notificacao.listar',['notificacoes'=>$notificacoes]);
}
}
<?php
namespace App\Http\Controllers;
use App\ParecerInterno;
use Illuminate\Http\Request;
class ParecerInternoController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param \App\ParecerInterno $parecer
* @return \Illuminate\Http\Response
*/
public function show(ParecerInterno $parecer)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\ParecerInterno $parecer
* @return \Illuminate\Http\Response
*/
public function edit(ParecerInterno $parecer)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\ParecerInterno $parecer
* @return \Illuminate\Http\Response
*/
public function update(Request $request, ParecerInterno $parecer)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\ParecerInterno $parecer
* @return \Illuminate\Http\Response
*/
public function destroy(ParecerInterno $parecer)
{
//
}
}
...@@ -85,4 +85,29 @@ class ParticipanteController extends Controller ...@@ -85,4 +85,29 @@ class ParticipanteController extends Controller
} }
return abort(404); return abort(404);
} }
public function listarParticipanteEdital(){
$participantes = Participante::all();
$trabalhos = Trabalho::all();
return view('administrador.listarBolsas')->with(['participantes' => $participantes, 'trabalhos' => $trabalhos]);
}
public function alterarBolsa($id,$tipo){
$participante = Participante::find($id);
if($participante->tipoBolsa ==null){
if($tipo==1){
$participante->tipoBolsa = "Voluntario";
}else{
$participante->tipoBolsa = "Bolsista";
}
}else{
if($participante->tipoBolsa == "Bolsista"){
$participante->tipoBolsa = "Voluntario";
}else{
$participante->tipoBolsa = "Bolsista";
}
}
$participante->save();
return redirect()->back()->with(['mensagem' => 'Alteração da bolsa realizada com sucesso!']);
}
} }
...@@ -958,6 +958,7 @@ class TrabalhoController extends Controller ...@@ -958,6 +958,7 @@ class TrabalhoController extends Controller
// $participante = Participante::create($data); // $participante = Participante::create($data);
// } // }
$participante = Participante::create($data); $participante = Participante::create($data);
$participante->data_entrada = $participante->created_at;
$user->participantes()->save($participante); $user->participantes()->save($participante);
$participante->trabalho_id = $trabalho->id; $participante->trabalho_id = $trabalho->id;
...@@ -981,8 +982,18 @@ class TrabalhoController extends Controller ...@@ -981,8 +982,18 @@ class TrabalhoController extends Controller
} }
} }
$evento->trabalhos()->save($trabalho); $notificacao = App\Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $evento->coordenadorComissao->user_id,
'trabalho_id' => $trabalho->id,
'lido' => false,
'tipo' => 1,
]);
$notificacao->save();
$evento->trabalhos()->save($trabalho);
$pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id; $pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id;
$trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento); $trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento);
$trabalho->save(); $trabalho->save();
...@@ -1388,6 +1399,7 @@ class TrabalhoController extends Controller ...@@ -1388,6 +1399,7 @@ class TrabalhoController extends Controller
$data['email'] = $request->email; $data['email'] = $request->email;
$data['password'] = bcrypt($passwordTemporario); $data['password'] = bcrypt($passwordTemporario);
$data['data_de_nascimento'] = $request->data_de_nascimento; $data['data_de_nascimento'] = $request->data_de_nascimento;
$data['data_entrada'] = $request->data_entrada;
$data['cpf'] = $request->cpf; $data['cpf'] = $request->cpf;
$data['tipo'] = 'participante'; $data['tipo'] = 'participante';
$data['funcao_participante_id'] = 4; $data['funcao_participante_id'] = 4;
...@@ -1452,6 +1464,11 @@ class TrabalhoController extends Controller ...@@ -1452,6 +1464,11 @@ class TrabalhoController extends Controller
//$participanteSubstituido->delete(); //$participanteSubstituido->delete();
$substituicao = new Substituicao(); $substituicao = new Substituicao();
$substituicao->observacao = $request->textObservacao; $substituicao->observacao = $request->textObservacao;
if($participanteSubstituido->data_entrada > $request->data_entrada){
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => "Escolha uma data de entrada posterior a entrada do discente substituído"]);
}
$participanteSubstituido->data_saida = $request->data_entrada;
\App\Validator\CpfValidator::validate ($request->all()); \App\Validator\CpfValidator::validate ($request->all());
$user = User::where('email' , $data['email'])->first(); $user = User::where('email' , $data['email'])->first();
...@@ -1464,6 +1481,7 @@ class TrabalhoController extends Controller ...@@ -1464,6 +1481,7 @@ class TrabalhoController extends Controller
$participante = $user->participantes->where('trabalho_id', $trabalho->id)->first(); $participante = $user->participantes->where('trabalho_id', $trabalho->id)->first();
if (!$participante){ if (!$participante){
$participante = Participante::create($data); $participante = Participante::create($data);
$participanteSubstituido->save();
} }
$pasta = 'participantes/' . $participante->id; $pasta = 'participantes/' . $participante->id;
...@@ -1526,10 +1544,18 @@ class TrabalhoController extends Controller ...@@ -1526,10 +1544,18 @@ class TrabalhoController extends Controller
$evento->trabalhos()->save($trabalho); $evento->trabalhos()->save($trabalho);
$trabalho->save(); $trabalho->save();
$notificacao = App\Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $evento->coordenadorComissao->user_id,
'trabalho_id' => $trabalho->id,
'lido' => false,
'tipo' => 2,
]);
$notificacao->save();
DB::commit(); DB::commit();
Mail::to($evento->coordenadorComissao->user->email)->send(new SolicitacaoSubstituicao($evento, $trabalho)); Mail::to($evento->coordenadorComissao->user->email)->send(new SolicitacaoSubstituicao($evento, $trabalho));
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['sucesso' => 'Pedido de substituição enviado com sucesso!']); return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['sucesso' => 'Pedido de substituição enviado com sucesso!']);
}catch (\App\Validator\ValidationException $th){ }catch (\App\Validator\ValidationException $th){
DB::rollback(); DB::rollback();
...@@ -1636,4 +1662,12 @@ class TrabalhoController extends Controller ...@@ -1636,4 +1662,12 @@ class TrabalhoController extends Controller
} }
} public function aprovarProposta(Request $request,$id){
\ No newline at end of file $trabalho = Trabalho::find($id);
$trabalho->status = $request->statusProp;
$trabalho->comentario = $request->comentario;
$trabalho->save();
return redirect()->back()->with(['sucesso' => 'Proposta avaliada com sucesso']);
}}
\ No newline at end of file
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Notificacao extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'lido', 'tipo', 'destinatario_id', 'remetente_id', 'perfil_id', 'trabalho_id',
];
public function destinatario(){
return $this->belongsTo(User::class,'destinatario_id','id');
}
public function remetente(){
return $this->belongsTo(User::class,'remetente_id','id');
}
public function trabalho(){
return $this->belongsTo(Trabalho::class,'trabalho_id','id');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class ParecerInterno extends Model
{
protected $fillable = [
'statusLinkGrupoPesquisa',
'statusLinkLattesProponente',
'statusAnexoProjeto',
'statusAnexoDecisaoCONSU',
'statusAnexoPlanilhaPontuacao',
'statusAnexoLattesCoordenador',
'statusAnexoGrupoPesquisa',
'statusAnexoAtuorizacaoComiteEtica',
'statusJustificativaAutorizacaoEtica',
'statusParecer',
'statusPlanoTrabalho',
'trabalho_id',
'avaliador_id',
];
public function trabalho(){
return $this->belongsTo(Trabalho::class, 'trab_id', 'id');
}
public function avaliador(){
return $this->belongsTo(Avaliador::class, 'avali_id', 'id');
}
}
...@@ -10,7 +10,9 @@ class Participante extends Model ...@@ -10,7 +10,9 @@ class Participante extends Model
use SoftDeletes; use SoftDeletes;
public const ENUM_TURNO = ['Matutino', 'Vespertino', 'Noturno', 'Integral']; public const ENUM_TURNO = ['Matutino', 'Vespertino', 'Noturno', 'Integral'];
protected $fillable = ['rg', 'data_de_nascimento', 'curso', 'participante_id', 'turno', 'ordem_prioridade', 'periodo_atual', 'total_periodos', 'media_do_curso', 'linkLattes']; protected $fillable = ['rg', 'data_de_nascimento', 'curso', 'participante_id', 'turno',
'ordem_prioridade', 'periodo_atual', 'total_periodos', 'media_do_curso', 'linkLattes',
'tipoBolsa', 'data_entrada', 'data_saida'];
public function user(){ public function user(){
return $this->belongsTo('App\User'); return $this->belongsTo('App\User');
......
...@@ -18,7 +18,8 @@ class Trabalho extends Model ...@@ -18,7 +18,8 @@ class Trabalho extends Model
'decisaoCONSU', 'decisaoCONSU',
'pontuacaoPlanilha', 'pontuacaoPlanilha',
'linkGrupoPesquisa', 'linkGrupoPesquisa',
'linkLattesEstudante', 'linkLattesEstudante',
'comentario',
'anexoDecisaoCONSU', 'anexoDecisaoCONSU',
'anexoAutorizacaoComiteEtica', 'anexoAutorizacaoComiteEtica',
...@@ -101,4 +102,12 @@ class Trabalho extends Model ...@@ -101,4 +102,12 @@ class Trabalho extends Model
public function substituicaos(){ public function substituicaos(){
return $this->hasMany('App\Substituicao'); return $this->hasMany('App\Substituicao');
} }
public function parecer_internos(){
return $this->hasMany(ParecerInterno::class, 'trab_id', 'id');
}
public function notificacoes(){
return $this->hasMany(Notificacao::class, 'trabalho_id', 'id');
}
} }
...@@ -106,4 +106,8 @@ class User extends Authenticatable implements MustVerifyEmail ...@@ -106,4 +106,8 @@ class User extends Authenticatable implements MustVerifyEmail
$this->notify(new VerifyNotification()); $this->notify(new VerifyNotification());
} }
public function notificacoes(){
return $this->hasMany(Notificacao::class, 'destinatario_id')->orderBy('created_at', 'desc')->take(5);
}
} }
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AlterTableParticipantes3 extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('participantes', function (Blueprint $table) {
$table->string('tipoBolsa')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('participantes', function (Blueprint $table) {
$table->dropColumn('tipoBolsa');
});
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AlterTableAvaliadors extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('avaliadors', function (Blueprint $table) {
$table->string('tipo')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('avaliadors', function (Blueprint $table) {
$table->dropColumn('tipo');
});
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateParecerInternosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('parecer_internos', function (Blueprint $table) {
$table->bigIncrements('id');
$table->timestamps();
$table->string('statusLinkGrupoPesquisa');
$table->string('statusLinkLattesProponente');
$table->string('statusAnexoProjeto');
$table->string('statusAnexoDecisaoCONSU');
$table->string('statusAnexoPlanilhaPontuacao');
$table->string('statusAnexoLattesCoordenador');
$table->string('statusAnexoGrupoPesquisa');
$table->string('statusAnexoAtuorizacaoComiteEtica');
$table->string('statusJustificativaAutorizacaoEtica');
$table->string('statusPlanoTrabalho');
$table->string('statusParecer');
$table->unsignedBigInteger('trabalho_id');
$table->unsignedBigInteger('avaliador_id');
$table->foreign('trabalho_id')->references('id')->on('trabalhos');
$table->foreign('avaliador_id')->references('id')->on('avaliadors');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('parecer_internos');
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AlterTableParticipantesDatas extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('participantes', function (Blueprint $table) {
$table->string('data_entrada')->nullable();
$table->string('data_saida')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('participantes', function (Blueprint $table) {
$table->dropColumn('data_entrada');
$table->dropColumn('data_saida');
});
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateNotificacaosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('notificacaos', function (Blueprint $table) {
$table->bigIncrements('id');
$table->integer('remetente_id');
$table->integer('destinatario_id');
$table->integer('trabalho_id');
$table->boolean('lido');
$table->integer('tipo');
$table->foreign('remetente_id')->references('id')->on('users');
$table->foreign('trabalho_id')->references('id')->on('trabalhos');
$table->foreign('destinatario_id')->references('id')->on('users');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('notificacaos');
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddTrabalhoComentario extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('trabalhos', function (Blueprint $table) {
$table->text('comentario')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('trabalhos', function (Blueprint $table) {
$table->dropColumn('comentario');
});
}
}
...@@ -17,8 +17,9 @@ class AvaliadorSeeder extends Seeder ...@@ -17,8 +17,9 @@ class AvaliadorSeeder extends Seeder
DB::table('avaliadors')->insert([ DB::table('avaliadors')->insert([
'user_id' => $user_id[0], 'user_id' => $user_id[0],
'area_id' => 1, 'area_id' => 1,
'tipo' => 'Externo',
]); ]);
// $aval = App\Avaliador::find(1); // $aval = App\Avaliador::find(1);
// $evento = App\Evento::find(1); // $evento = App\Evento::find(1);
// $trabalho = App\Trabalho::find(1); // $trabalho = App\Trabalho::find(1);
...@@ -37,6 +38,7 @@ class AvaliadorSeeder extends Seeder ...@@ -37,6 +38,7 @@ class AvaliadorSeeder extends Seeder
DB::table('avaliadors')->insert([ DB::table('avaliadors')->insert([
'user_id' => $user_id[0], 'user_id' => $user_id[0],
'area_id' => 1, 'area_id' => 1,
'tipo' => 'Externo',
]); ]);
// $aval = App\Avaliador::find(2); // $aval = App\Avaliador::find(2);
// $evento = App\Evento::find(1); // $evento = App\Evento::find(1);
...@@ -52,6 +54,7 @@ class AvaliadorSeeder extends Seeder ...@@ -52,6 +54,7 @@ class AvaliadorSeeder extends Seeder
DB::table('avaliadors')->insert([ DB::table('avaliadors')->insert([
'user_id' => $user_id[0], 'user_id' => $user_id[0],
'area_id' => 1, 'area_id' => 1,
'tipo' => 'Externo',
]); ]);
// $aval = App\Avaliador::find(2); // $aval = App\Avaliador::find(2);
...@@ -65,6 +68,7 @@ class AvaliadorSeeder extends Seeder ...@@ -65,6 +68,7 @@ class AvaliadorSeeder extends Seeder
DB::table('avaliadors')->insert([ DB::table('avaliadors')->insert([
'user_id' => $user_id[0], 'user_id' => $user_id[0],
'area_id' => 1, 'area_id' => 1,
'tipo' => 'Interno',
]); ]);
} }
} }
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