Unverified Commit 561a6f19 authored by Gabriel Antônio da Silva's avatar Gabriel Antônio da Silva Committed by GitHub
Browse files

Merge pull request #13 from lmts-ufape/carlos

Carlos
parents 7387b6c8 9f414dff
......@@ -34,4 +34,7 @@ class Area extends Model
public function revisor(){
return $this->hasMany('App\User', 'eventoId');
}
public function avaliador(){
return $this->hasMany('App\Area');
}
}
......@@ -6,10 +6,23 @@ use Illuminate\Database\Eloquent\Model;
class Avaliador extends Model
{
protected $fillable = [
'status',
'parecer',
'AnexoParecer',
'pivot',
];
public function user(){
return $this->belongsTo('App\User');
}
public function trabalhos(){
return $this->belongsToMany('App\Trabalho');
return $this->belongsToMany('App\Trabalho')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao');
}
public function eventos(){
return $this->belongsToMany('App\Evento');
}
public function area(){
return $this->belongsTo('App\Area');
}
}
......@@ -40,6 +40,9 @@ class Evento extends Model
public function trabalhos(){
return $this->hasMany('App\Trabalho');
}
public function avaliadors(){
return $this->belongsToMany('App\Avaliador');
}
}
......@@ -10,8 +10,14 @@ use App\Avaliador;
use App\AdministradorResponsavel;
use App\Participante;
use App\Proponente;
use App\Natureza;
use App\Trabalho;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Hash;
use App\Evento;
use App\Mail\EmailParaUsuarioNaoCadastrado;
use Illuminate\Support\Facades\Mail;
use App\Mail\EventoCriado;
class AdministradorController extends Controller
{
......@@ -20,8 +26,8 @@ class AdministradorController extends Controller
return view('administrador.index');
}
public function naturezas(){
return view('naturezas.index');
$naturezas = Natureza::orderBy('nome')->get();
return view('naturezas.index')->with(['naturezas' => $naturezas]);
}
public function usuarios(){
$users = User::orderBy('name')->get();
......@@ -31,11 +37,29 @@ class AdministradorController extends Controller
public function editais(){
//$admin = Administrador::with('user')->where('user_id', Auth()->user()->id)->first();
//$eventos = Evento::where('coordenadorId',$admin->id )->get();
$eventos = Evento::where('criador_id',Auth()->user()->id )->get();
$eventos = Evento::all();
return view('administrador.editais', ['eventos'=> $eventos]);
}
public function pareceres(Request $request){
$evento = Evento::where('id', $request->evento_id)->first();
$trabalhos = $evento->trabalhos;
return view('administrador.projetos')->with(['trabalhos' => $trabalhos, 'evento' => $evento]);
}
public function visualizarParecer(Request $request){
$avaliador = Avaliador::find($request->avaliador_id);
$trabalho = $avaliador->trabalhos->where('id', $request->trabalho_id)->first();
$parecer = $avaliador->trabalhos->where('id', $request->trabalho_id)->first()->pivot;
//dd($parecer);
return view('administrador.visualizarParecer')->with(['trabalho' => $trabalho, 'parecer' => $parecer, 'avaliador' => $avaliador]);
}
public function create() {
$grandesAreas = GrandeArea::orderBy('nome')->get();
return view('administrador.novo_user')->with(['grandeAreas' => $grandesAreas]);
......@@ -62,6 +86,7 @@ class AdministradorController extends Controller
'cargo' => 'required',
'titulacaoMaxima' => 'required',
'anoTitulacao' => 'required',
'areaFormacao' => 'required',
'area' => 'required',
'bolsistaProdutividade' => 'required',
'nivel' => 'required',
......@@ -100,6 +125,7 @@ class AdministradorController extends Controller
$proponente->vinculo = $request->vinculo;
$proponente->titulacaoMaxima = $request->titulacaoMaxima;
$proponente->anoTitulacao = $request->anoTitulacao;
$proponente->areaFormacao = $request->areaFormacao;
$proponente->grandeArea = $request->area;
$proponente->area = "teste";
$proponente->subArea = "teste";
......@@ -156,6 +182,7 @@ class AdministradorController extends Controller
'cargo' => 'required',
'titulacaoMaxima' => 'required',
'anoTitulacao' => 'required',
'areaFormacao' => 'required',
'grandeArea' => 'required',
'bolsistaProdutividade' => 'required',
'nivel' => 'required',
......@@ -189,6 +216,7 @@ class AdministradorController extends Controller
$proponente->vinculo = $request->vinculo;
$proponente->titulacaoMaxima = $request->titulacaoMaxima;
$proponente->anoTitulacao = $request->anoTitulacao;
$proponente->areaFormacao = $request->areaFormacao;
$proponente->grandeArea = $request->grandeArea;
$proponente->area = "teste";
$proponente->subArea = "teste";
......@@ -238,4 +266,130 @@ class AdministradorController extends Controller
$user->delete();
return redirect( route('admin.usuarios') )->with(['mensagem' => 'Usuário deletado com sucesso']);
}
public function atribuir(Request $request){
$evento = Evento::where('id', $request->evento_id)->first();
//dd($request->all());
return view('administrador.atribuirAvaliadores', ['evento'=> $evento]);
}
public function selecionar(Request $request){
$evento = Evento::where('id', $request->evento_id)->first();
$avalSelecionados = $evento->avaliadors;
$avalNaoSelecionadosId = $evento->avaliadors->pluck('id');
$avaliadores = Avaliador::whereNotIn('id', $avalNaoSelecionadosId)->get();
//dd($avaliadores);
return view('administrador.selecionarAvaliadores', [
'evento'=> $evento,
'avaliadores'=>$avaliadores,
'avalSelecionados'=>$avalSelecionados
]);
}
public function projetos(Request $request){
$evento = Evento::where('id', $request->evento_id)->first();
$trabalhos = $evento->trabalhos;
$avaliadores = $evento->avaliadors;
foreach ($trabalhos as $key => $trabalho) {
$avalSelecionadosId = $trabalho->avaliadors->pluck('id');
$avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get();
$trabalho->aval = $avalProjeto;
}
//dd($avaliadores->teste);
return view('administrador.selecionarProjetos', [
'evento'=> $evento,
'trabalhos'=>$trabalhos,
'avaliadores'=>$avaliadores
]);
}
public function adicionar(Request $request){
$evento = Evento::where('id', $request->evento_id)->first();
$aval = Avaliador::where('id', $request->avaliador_id)->first();
$aval->eventos()->attach($evento);
$aval->save();
return redirect()->back();
}
public function remover(Request $request){
$evento = Evento::where('id', $request->evento_id)->first();
$aval = Avaliador::where('id', $request->avaliador_id)->first();
$aval->eventos()->detach($evento);
$aval->trabalhos()->detach();
$aval->save();
return redirect()->back();
}
public function buscar(Request $request){
$trabalho = Trabalho::where('id', $request->item)->first();
$avalSelecionadosId = $trabalho->avaliadors->pluck('id');
$avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get();
//dd($avaliadores);
return response()->json($avalProjeto);
}
public function atribuicao(Request $request){
$trabalho = Trabalho::where('id', $request->trabalho_id)->first();
$evento = Evento::where('id', $request->evento_id)->first();
$avaliadores = Avaliador::whereIn('id', $request->avaliadores_id)->get();
$trabalho->avaliadors()->attach($avaliadores);
$evento->avaliadors()->syncWithoutDetaching($avaliadores);
$trabalho->save();
return redirect()->back();
}
public function enviarConvite(Request $request){
$evento = Evento::where('id', $request->evento_id)->first();
$nomeAvaliador = $request->nomeAvaliador;
$emailAvaliador = $request->emailAvaliador;
$tipo = $request->tipo;
$passwordTemporario = Str::random(8);
Mail::to($emailAvaliador)
->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador', $evento->nome, $passwordTemporario));
$user = User::create([
'email' => $emailAvaliador,
'password' => bcrypt($passwordTemporario),
'usuarioTemp' => true,
'name' => $nomeAvaliador,
'tipo' => 'avaliador',
]);
$avaliador = new Avaliador();
$avaliador->save();
$avaliador->user()->associate($user);
$avaliador->eventos()->attach($evento);
$user->save();
$avaliador->save();
return redirect()->back();
}
}
......@@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use App\Arquivo;
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Request;
class ArquivoController extends Controller
......@@ -82,4 +83,9 @@ class ArquivoController extends Controller
{
//
}
public function baixarPlano($id) {
$arquivo = Arquivo::find($id);
return Storage::download($arquivo->nome);
}
}
......@@ -62,13 +62,6 @@ class RegisterController extends Controller
'cpf' => ['required', 'cpf'],
'celular' => ['required','string'],
'instituicao' => ['required','string','max:255'],
// 'especProfissional' => [],
'rua' => ['required','string','max:255'],
'numero' => ['nullable','string'],
'bairro' => ['required','string','max:255'],
'cidade' => ['required','string','max:255'],
'uf' => ['required','string'],
'cep' => ['required','string'],
]);
}
......@@ -81,18 +74,6 @@ class RegisterController extends Controller
protected function create(array $data)
{
// endereço
$end = new Endereco();
$end->rua = $data['rua'];
$end->numero = $data['numero'];
$end->bairro = $data['bairro'];
$end->cidade = $data['cidade'];
$end->uf = $data['uf'];
$end->cep = $data['cep'];
$end->save();
// dd($end)
$user = new User();
$user->name = $data['name'];
$user->email = $data['email'];
......@@ -102,7 +83,6 @@ class RegisterController extends Controller
$user->instituicao = $data['instituicao'];
$user->tipo = 'participante';
$user->enderecoId = $end->id;
$user->save();
$participante = new Participante();
......
......@@ -4,6 +4,11 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;
use App\Trabalho;
use App\Evento;
use App\Recomendacao;
use App\User;
use App\Avaliador;
class AvaliadorController extends Controller
{
......@@ -12,13 +17,60 @@ class AvaliadorController extends Controller
return view('avaliador.index');
}
public function editais(){
$user = User::find(Auth::user()->id);
$eventos = $user->avaliadors->where('user_id',$user->id)->first()->eventos;
return view('avaliador.editais', ["eventos"=>$eventos]);
}
public function visualizarTrabalhos(Request $request){
$trabalhos = Auth::user()->avaliadors->first()->trabalhos;
//dd($trabalhos);
$user = User::find(Auth::user()->id);
$evento = Evento::where('id', $request->evento_id)->first();
$trabalhos = $user->avaliadors->where('user_id',$user->id)->first()->trabalhos;
//dd();
return view('avaliador.listarTrabalhos', ['trabalhos'=>$trabalhos, 'evento'=>$evento]);
}
public function parecer(Request $request){
//$trabalho = Trabalho::find($request->trabalho_id);
$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);
$recomendacaos = Recomendacao::all();
//dd($request->all());
return view('avaliador.parecer', ['trabalho'=>$trabalho, 'evento'=>$evento, 'recomendacaos'=>$recomendacaos]);
}
public function enviarParecer(Request $request){
$user = User::find(Auth::user()->id);
$evento = Evento::find($request->evento_id);
$trabalhos = $user->avaliadors->where('user_id',$user->id)->first()->trabalhos;
$avaliador = $user->avaliadors->where('user_id',$user->id)->first();
$trabalho = $avaliador->trabalhos->find($request->trabalho_id);
if($request->anexoParecer == ''){
$avaliador
->trabalhos()
->updateExistingPivot($trabalho->id,['status'=> 1,'parecer'=>$request->textParecer, 'recomendacao'=>$request->recomendacao]);
}else{
$avaliador
->trabalhos()
->updateExistingPivot($trabalho->id,['status'=> 1,'parecer'=>$request->textParecer,'AnexoParecer'=> $request->anexoParecer, 'recomendacao'=>$request->recomendacao]);
}
return view('avaliador.listarTrabalhos', ['trabalhos'=>$trabalhos]);
// dd($trabalho);
return view('avaliador.listarTrabalhos', ['trabalhos'=>$trabalhos, 'evento'=>$evento ]);
}
}
......@@ -14,6 +14,7 @@ use App\User;
use App\Proponente;
use App\Trabalho;
use App\AreaModalidade;
use App\Natureza;
use App\CoordenadorComissao;
use Illuminate\Http\Request;
use Carbon\Carbon;
......@@ -57,7 +58,8 @@ class EventoController extends Controller
public function create()
{
$coordenadors = CoordenadorComissao::with('user')->get();
return view('evento.criarEvento', ['coordenadors' => $coordenadors]);
$naturezas = Natureza::orderBy('nome')->get();
return view('evento.criarEvento', ['coordenadors' => $coordenadors, 'naturezas' => $naturezas]);
}
/**
......@@ -90,6 +92,7 @@ class EventoController extends Controller
'nome' => ['required', 'string'],
'descricao' => ['required', 'string'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'],
'inicioRevisao' => ['required', 'date'],
......@@ -106,6 +109,7 @@ class EventoController extends Controller
'nome' => ['required', 'string'],
'descricao' => ['required', 'string'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'inicioSubmissao' => ['required', 'date', 'after:' . $yesterday],
'fimSubmissao' => ['required', 'date', 'after:' . $request->inicioSubmissao],
'inicioRevisao' => ['required', 'date', 'after:' . $yesterday],
......@@ -119,6 +123,7 @@ class EventoController extends Controller
'nome' => $request->nome,
'descricao' => $request->descricao,
'tipo' => $request->tipo,
'natureza_id' => $request->natureza,
'inicioSubmissao' => $request->inicioSubmissao,
'fimSubmissao' => $request->fimSubmissao,
'inicioRevisao' => $request->inicioRevisao,
......@@ -192,16 +197,7 @@ class EventoController extends Controller
$trabalhosCount = 0;
}
$trabalhosId = Trabalho::where('evento_id', $evento->id)->select('id')->get();
//$trabalhosIdCoautor = Proponente::whereIn('trabalhoId', $trabalhosId)->where('proponente_id', Auth::user()->id)->select('trabalhoId')->get();
//$coautorCount = Coautor::whereIn('trabalhoId', $trabalhosId)->where('proponente_id', Auth::user()->id)->count();
//$trabalhosCoautor = Trabalho::whereIn('id', $trabalhosIdCoautor)->get();
// if($coautorCount != 0){
// $hasTrabalhoCoautor = true;
// $hasFile = true;
// }
$mytime = Carbon::now('America/Recife');
// dd(false);
......@@ -304,15 +300,15 @@ class EventoController extends Controller
{
$evento = Evento::find($id);
$areas = Area::where('eventoId', $id);
// $areas = Area::where('eventoId', $id);
$atividades = Atividade::where('eventoId', $id);
$comissao = ComissaoEvento::where('eventosId', $id);
$revisores = Revisor::where('eventoId', $id);
$trabalhos = Trabalho::where('eventoId', $id);
$trabalhos = Trabalho::where('evento_id', $id);
if(isset($areas)){
$areas->delete();
}
// if(isset($areas)){
// $areas->delete();
// }
if(isset($atividades)){
$atividades->delete();
}
......@@ -467,5 +463,8 @@ class EventoController extends Controller
return view('user.areaComissao', ['trabalhos' => $trabalhos]);
}
public function baixarEdital($id) {
$evento = Evento::find($id);
return Storage::download($evento->pdfEdital);
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Natureza;
class NaturezaController 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)
{
$validated = $request->validate([
'nome' => 'required'
]);
$natureza = new Natureza();
$natureza->nome = $request->nome;
$natureza->save();
return redirect( route('admin.naturezas') )->with(['mensagem' => 'Natureza salva com sucesso']);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$validated = $request->validate([
'nomeEditavel' => 'required',
]);
$natureza = Natureza::find($id);
$natureza->nome = $request->nomeEditavel;
$natureza->update();
return redirect( route('admin.naturezas') )->with(['mensagem' => "Natureza editada com sucesso"]);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$natureza = Natureza::find($id);
$natureza->delete();
return redirect( route('admin.naturezas') )->with(['mensagem' => "Natureza deletada com sucesso"]);
}
}
......@@ -3,6 +3,11 @@
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;
use App\User;
use App\Proponente;
use App\GrandeArea;
use App\Evento;
class ProponenteController extends Controller
{
......@@ -10,4 +15,51 @@ class ProponenteController extends Controller
return view('proponente.index');
}
public function create(){
$grandesAreas = GrandeArea::orderBy('nome')->get();
return view('proponente.cadastro')->with(['grandeAreas' => $grandesAreas]);;
}
public function store(Request $request){
if (Auth::user()->proponentes == null) {
$validated = $request->validate([
'senha' => 'required',
'cargo' => 'required',
'titulacaoMaxima' => 'required',
'anoTitulacao' => 'required',
'areaFormacao' => 'required',
'area' => 'required',
'bolsistaProdutividade' => 'required',
'nivel' => 'required',
'linkLattes' => 'required',
]);
$proponente = new Proponente();
$proponente->SIAPE = $request->SIAPE;
$proponente->cargo = $request->cargo;
$proponente->vinculo = $request->vinculo;
$proponente->titulacaoMaxima = $request->titulacaoMaxima;
$proponente->anoTitulacao = $request->anoTitulacao;
$proponente->areaFormacao = $request->areaFormacao;
$proponente->grandeArea = $request->area;
$proponente->area = "teste";
$proponente->subArea = "teste";
$proponente->bolsistaProdutividade = $request->bolsistaProdutividade;
$proponente->nivel = $request->nivel;
$proponente->linkLattes = $request->linkLattes;
$proponente->user_id = Auth::user()->id;
$proponente->save();
$user = User::find(Auth()->user()->id);
$user->tipo = "proponente";
$user->save();
}
$eventos = Evento::all();
return redirect( route('admin.editais', ['eventos'=> $eventos]))->with(['mensagem' => 'Usuário cadastrado com sucesso']);
}
}
This diff is collapsed.
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Natureza extends Model
{
//
}
......@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
class Participante extends Model
{
protected $fillable = ['name', 'user_id', 'trabalho_id'];
protected $fillable = ['name', 'user_id', 'trabalho_id', 'participante_id'];
public function user(){
return $this->belongsTo('App\User');
......
......@@ -10,6 +10,6 @@ class Proponente extends Model
return $this->belongsTo('App\User');
}
public function trabalhos(){
return $this->belongsToMany('App\Trabalho', 'trabalho_proponente');
return $this->hasMany('App\Trabalho');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Recomendacao extends Model
{
protected $fillable = ['nome'];
}
......@@ -14,7 +14,7 @@ class Trabalho extends Model
protected $fillable = [
'titulo',
'data',
'avaliado',
'aprovado',
'decisaoCONSU',
'pontuacaoPlanilha',
'linkGrupoPesquisa',
......@@ -22,6 +22,7 @@ class Trabalho extends Model
'anexoDecisaoCONSU',
'anexoAutorizacaoComiteEtica',
'JustificativaAutorizacaoEtica',
'anexoLattesCoordenador',
'anexoPlanilhaPontuacao',
'anexoProjeto',
......@@ -32,6 +33,8 @@ class Trabalho extends Model
'evento_id',
'proponente_id',
'coordenador_id',
'proponente_id',
'pivot',
];
public function recurso(){
......@@ -47,7 +50,7 @@ class Trabalho extends Model
}
public function area(){
return $this->belongsTo('App\Area', 'areaId');
return $this->belongsTo('App\Area');
}
public function autor(){
......@@ -75,13 +78,13 @@ class Trabalho extends Model
public function participantes(){
return $this->belongsToMany('App\Participante', 'trabalho_participante');
}
public function proponentes(){
return $this->belongsToMany('App\Proponente', 'trabalho_proponente');
public function proponente(){
return $this->belongsTo('App\Proponente');
}
public function coordenador(){
return $this->belongsTo('App\CoordenadorComissao');
}
public function avaliadors(){
return $this->belongsToMany('App\Avaliador');
return $this->belongsToMany('App\Avaliador')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao');
}
}
This diff is collapsed.
......@@ -133,4 +133,11 @@ return [
'log_channel' => env('MAIL_LOG_CHANNEL'),
'stream' => [
'ssl' => [
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
],
],
];
......@@ -16,7 +16,7 @@ class CreateTrabalhosTable extends Migration
Schema::create('trabalhos', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('titulo');
$table->boolean('avaliado')->nullable();
$table->boolean('aprovado')->nullable();
$table->string('linkGrupoPesquisa');
$table->string('linkLattesEstudante');
$table->string('pontuacaoPlanilha');
......@@ -26,13 +26,15 @@ class CreateTrabalhosTable extends Migration
$table->string('anexoDecisaoCONSU')->nullable();
$table->string('anexoPlanilhaPontuacao');
$table->string('anexoLattesCoordenador');
$table->string('anexoAutorizacaoComiteEtica');
$table->string('anexoAutorizacaoComiteEtica')->nullable();;
$table->string('JustificativaAutorizacaoEtica')->nullable();;
//chaves estrangeiras
$table->unsignedBigInteger('grande_area_id');
$table->unsignedBigInteger('area_id');
$table->unsignedBigInteger('sub_area_id');
$table->unsignedBigInteger('evento_id');
$table->unsignedBigInteger('coordenador_id');
$table->unsignedBigInteger('proponente_id');
$table->timestamps();
});
......
......@@ -22,6 +22,7 @@ class CreateArquivosTable extends Migration
$table->date('data')->nullable();
$table->integer('trabalhoId');
$table->integer('participanteId');
});
}
......
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