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

Merge pull request #5 from lmts-ufape/submeter

Funcionalidades básicas
parents 5de5a599 96ffb16f
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
/node_modules
/public/hot
/public/storage
/storage/*.key
/vendor
.env
.env.backup
.phpunit.result.cache
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Administrador extends Model
{
protected $fillable = ['matricula'];
public function user(){
return $this->belongsTo('App\User');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class AdministradorResponsavel extends Model
{
public function user(){
return $this->belongsTo('App\User');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Avaliador extends Model
{
public function user(){
return $this->belongsTo('App\User');
}
public function trabalhos(){
return $this->belongsToMany('App\Trabalho');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class CoordenadorComissao extends Model
{
public function user(){
return $this->belongsTo('App\User');
}
public function editais(){
return $this->hasMany('App\Evento');
}
public function trabalho(){
return $this->hasMany('App\Trabalho');
}
}
......@@ -12,11 +12,10 @@ class Evento extends Model
* @var array
*/
protected $fillable = [
'nome', 'descricao', 'tipo', 'dataInicio', 'dataFim',
'nome', 'descricao', 'tipo',
'inicioSubmissao', 'fimSubmissao', 'inicioRevisao', 'fimRevisao',
'inicioResultado', 'fimResultado', 'possuiTaxa', 'valorTaxa', 'fotoEvento',
'enderecoId', 'coordenadorId',
'numMaxTrabalhos', 'numMaxCoautores', 'hasResumo',
'resultado', 'coordenadorId',
'numMaxTrabalhos', 'numMaxCoautores', 'hasResumo', 'criador_id'
];
public function endereco(){
......@@ -35,5 +34,9 @@ class Evento extends Model
return $this->belongsTo('App\User', 'coordenadorId');
}
public function coordenadorComissao(){
return $this->belongsTo('App\CoordenadorComissao', 'coordenadorId');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class FuncaoParticipantes extends Model
{
//
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class GrandeArea extends Model
{
//
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Administrador;
use App\User;
use App\GrandeArea;
use App\Avaliador;
use App\AdministradorResponsavel;
use App\Participante;
use App\Proponente;
use Illuminate\Support\Facades\Hash;
use App\Evento;
class AdministradorController extends Controller
{
public function index(){
return view('administrador.index');
}
public function naturezas(){
return view('naturezas.index');
}
public function usuarios(){
$users = User::orderBy('name')->get();
return view('administrador.usersAdmin')->with(['users' => $users]);
}
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();
return view('administrador.editais', ['eventos'=> $eventos]);
}
public function create() {
$grandesAreas = GrandeArea::orderBy('nome')->get();
return view('administrador.novo_user')->with(['grandeAreas' => $grandesAreas]);
}
public function salvar(Request $request) {
if ($request->tipo != "proponente") {
$validated = $request->validate([
'nome' => 'required',
'tipo' => 'required',
'email' => 'required|unique:users',
'senha' => 'required',
'confirmar_senha' => 'required',
'cpf' => 'required|cpf|unique:users',
]);
} else {
$validated = $request->validate([
'nome' => 'required',
'tipo' => 'required',
'email' => 'required|unique:users',
'senha' => 'required',
'confirmar_senha' => 'required',
'cpf' => 'required|cpf|unique:users',
'cargo' => 'required',
'titulacaoMaxima' => 'required',
'anoTitulacao' => 'required',
'area' => 'required',
'bolsistaProdutividade' => 'required',
'nivel' => 'required',
'linkLattes' => 'required',
]);
}
if (!($request->senha === $request->confirmar_senha)) {
return redirect()->back()->withErrors(['senha' => 'Senhas diferentes']);
}
$user = new User();
$user->name = $request->nome;
$user->tipo = $request->tipo;
$user->cpf = $request->cpf;
$user->email = $request->email;
$user->password = bcrypt($request->senha);
$user->save();
switch ($request->tipo) {
case "administradorResponsavel":
$adminResp = new AdministradorResponsavel();
$adminResp->user_id = $user->id;
$adminResp->save();
break;
case "avaliador":
$avaliador = new Avaliador();
$avaliador->user_id = $user->id;
$avaliador->save();
break;
case "proponente":
$proponente = new Proponente();
$proponente->SIAPE = $request->SIAPE;
$proponente->cargo = $request->cargo;
$proponente->vinculo = $request->vinculo;
$proponente->titulacaoMaxima = $request->titulacaoMaxima;
$proponente->anoTitulacao = $request->anoTitulacao;
$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 = $user->id;
$proponente->save();
break;
case "participante":
$participante = new Participante();
$participante->user_id = $user->id;
$participante->save();
break;
}
return redirect( route('admin.usuarios') )->with(['mensagem' => 'Usuário cadastrado com sucesso']);
}
public function edit($id) {
$user = User::find($id);
$adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first();
$avaliador = Avaliador::where('user_id', '=', $id)->first();
$proponente = Proponente::where('user_id', '=', $id)->first();
$participante = Participante::where('user_id', '=', $id)->first();
return view ('administrador.editar_user')->with(['user' => $user,
'adminResp' => $adminResp,
'proponente' => $proponente,
'participante' => $participante,]);
}
public function update(Request $request, $id) {
$user = User::find($id);
if ($request->tipo != "proponente") {
$validated = $request->validate([
'nome' => 'required',
'tipo' => 'required',
'email' => 'required',
// 'senha' => 'required',
// 'confirmar_senha' => 'required',
'cpf' => 'required|cpf',
]);
} else {
$validated = $request->validate([
'nome' => 'required',
'tipo' => 'required',
'email' => 'required',
// 'senha' => 'required',
// 'confirmar_senha' => 'required',
'cpf' => 'required|cpf',
'cargo' => 'required',
'titulacaoMaxima' => 'required',
'anoTitulacao' => 'required',
'grandeArea' => 'required',
'bolsistaProdutividade' => 'required',
'nivel' => 'required',
'linkLattes' => 'required',
]);
}
// if (!(Hash::check($request->senha_atual, $user->password))) {
// return redirect()->back()->withErrors(['senha_atual' => 'Senha atual não correspondente']);
// }
// if (!($request->nova_senha === $request->confirmar_senha)) {
// return redirect()->back()->withErrors(['nova_senha' => 'Senhas diferentes']);
// }
switch ($request->tipo) {
case "administradorResponsavel":
$adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first();
$adminResp->user_id = $user->id;
$adminResp->update();
break;
case "avaliador":
$avaliador = Avaliador::where('user_id', '=', $id)->first();
$avaliador->user_id = $user->id;
$avaliador->update();
break;
case "proponente":
$proponente = Proponente::where('user_id', '=', $id)->first();
$proponente->SIAPE = $request->SIAPE;
$proponente->cargo = $request->cargo;
$proponente->vinculo = $request->vinculo;
$proponente->titulacaoMaxima = $request->titulacaoMaxima;
$proponente->anoTitulacao = $request->anoTitulacao;
$proponente->grandeArea = $request->grandeArea;
$proponente->area = "teste";
$proponente->subArea = "teste";
$proponente->bolsistaProdutividade = $request->bolsistaProdutividade;
$proponente->nivel = $request->nivel;
$proponente->linkLattes = $request->linkLattes;
$proponente->user_id = $user->id;
$proponente->update();
break;
case "participante":
$participante = Participante::where('user_id', '=', $id)->first();
$participante->user_id = $user->id;
$participante->update();
break;
}
$user->name = $request->nome;
$user->tipo = $request->tipo;
$user->email = $request->email;
$user->cpf = $request->cpf;
// $user->password = bcrypt($request->nova_senha);
$user->update();
return redirect( route('admin.usuarios') )->with(['mensagem' => 'Usuário atualizado com sucesso']);
}
public function destroy($id) {
$user = User::find($id);
$adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first();
$avaliador = Avaliador::where('user_id', '=', $id)->first();
$proponente = Proponente::where('user_id', '=', $id)->first();
$participante = Participante::where('user_id', '=', $id)->first();
if (!(is_null($adminResp))) {
$adminResp->delete();
} else if (!(is_null($avaliador))) {
$avaliador->delete();
} else if (!(is_null($proponente))) {
$proponente->delete();
} else if (!(is_null($participante))) {
$participante->delete();
}
$user->delete();
return redirect( route('admin.usuarios') )->with(['mensagem' => 'Usuário deletado com sucesso']);
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\AdministradorResponsavel;
use App\User;
use App\Evento;
use App\Avaliador;
class AdministradorResponsavelController extends Controller
{
public function index(){
return view('administradorResponsavel.index');
}
public function editais(){
//$admResponsavel = AdministradorResponsavel::with('user')->where('user_id', Auth()->user()->id)->first();
$eventos = Evento::where('criador_id',Auth()->user()->id )->get();
return view('administradorResponsavel.editais', ['eventos'=> $eventos]);
}
public function usuarios(){
return view('administradorResponsavel.usuarios');
}
public function atribuirPermissao(Request $request){
$user = User::where('id', $request->user_id)->first();
$isAvaliador = Avaliador::where('user_id', $request->user_id )->count();
$avaliador = new Avaliador();
$avaliador->save();
if($isAvaliador == 0){
//$user->avaliadors()->save($user);
$avaliador->user()->associate($user); // um avaliador tem um usuario
$avaliador->save();
//$user->avaliadors()->save($avaliador); //um usuario pode ter muitos avaliadores
//$user->save();
//$avaliador->user_id = $user->id;
$success = true;
}else{
$avaliador = Avaliador::where('user_id', $request->user_id )->first();
$avaliador->user()->dissociate($user); // um avaliador tem um usuario
$avaliador->save();
$success = false;
}
return response()->json( $success );
}
public function verPermissao(Request $request){
$user = User::where('id', $request->user_id)->first();
$isAvaliador = Avaliador::where('user_id', $request->user_id)->count();
if($isAvaliador != 0){
$success = true;
}else{
$success = false;
}
return response()->json( [$success] );
//return response()->json( $request->user_id );
}
}
......@@ -3,6 +3,8 @@
namespace App\Http\Controllers;
use App\Area;
use App\GrandeArea;
use App\SubArea;
use App\AreaModalidade;
use App\Pertence;
use App\Revisor;
......@@ -18,7 +20,8 @@ class AreaController extends Controller
*/
public function index()
{
//
$areas = Area::orderBy('nome')->get();
return view('naturezas.area.index')->with(['areas' => $areas]);
}
/**
......@@ -26,9 +29,9 @@ class AreaController extends Controller
*
* @return \Illuminate\Http\Response
*/
public function create()
public function create($grandeAreaid)
{
//
return view('naturezas.area.nova_area')->with(['grandeAreaId' => $grandeAreaid]);
}
/**
......@@ -37,18 +40,18 @@ class AreaController extends Controller
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
public function store(Request $request, $id)
{
$validatedData = $request->validate([
'nome' => ['required', 'string'],
'nome' => 'required',
]);
Area::create([
'nome' => $request->nome,
'eventoId' => $request->eventoId,
]);
$area = new Area();
$area->nome = $request->nome;
$area->grande_area_id = $id;
$area->save();
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
return redirect( route('grandearea.show', ['id' => $id]) )->with(['mensagem' => 'Nova área cadastrada com sucesso']);
}
/**
......@@ -57,9 +60,12 @@ class AreaController extends Controller
* @param \App\Area $area
* @return \Illuminate\Http\Response
*/
public function show(Area $area)
public function show($id)
{
//
$area = Area::find($id);
$subAreas = SubArea::where('area_id', '=', $id)->orderBy('nome')->get();
return view('naturezas.area.detalhes')->with(['area' => $area, 'subAreas' => $subAreas]);
}
/**
......@@ -68,9 +74,10 @@ class AreaController extends Controller
* @param \App\Area $area
* @return \Illuminate\Http\Response
*/
public function edit(Area $area)
public function edit($id)
{
//
$area = Area::find($id);
return view('naturezas.area.editar_area')->with(['area' => $area]);
}
/**
......@@ -80,9 +87,18 @@ class AreaController extends Controller
* @param \App\Area $area
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Area $area)
public function update(Request $request, $id)
{
//
$validated = $request->validate([
'nome' => 'required',
]);
$area = Area::find($id);
$grandeArea = GrandeArea::find($area->grande_area_id);
$area->nome = $request->nome;
$area->update();
return redirect( route('grandearea.show', ['id' => $area->grande_area_id]) )->with(['grandeArea' => $grandeArea,'mensagem' => 'Área atualizada com sucesso']);
}
/**
......@@ -94,26 +110,11 @@ class AreaController extends Controller
public function destroy($id)
{
$area = Area::find($id);
$area_modalidade = AreaModalidade::where('areaId', $id);
$pertence = Pertence::where('areaId', $id);
$revisores = Revisor::where('areaId', $id);
$trabalhos = Trabalho::where('areaId', $id);
if(isset($area_modalidade)){
$area_modalidade->delete();
}
if(isset($pertence)){
$pertence->delete();
}
if(isset($revisores)){
$revisores->delete();
}
if(isset($trabalhos)){
$trabalhos->delete();
}
$id = $area->grande_area_id;
$area->delete();
//ver a questão de chave estrangeira para a tabela sub-áreas
return redirect()->back();
$grandeArea = GrandeArea::find($id);
return redirect( route('grandearea.show', ['id' => $id]) )->with(['grandeArea' => $grandeArea,'mensagem' => 'Área deletada com sucesso']);
}
}
......@@ -9,7 +9,9 @@ use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use App\User;
use App\Participante;
use App\Endereco;
class RegisterController extends Controller
{
/*
......@@ -98,10 +100,14 @@ class RegisterController extends Controller
$user->cpf = $data['cpf'];
$user->celular = $data['celular'];
$user->instituicao = $data['instituicao'];
$user->tipo = 'participante';
$user->enderecoId = $end->id;
$user->save();
$participante = new Participante();
$user->participantes()->save($participante);
return $user;
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Evento;
use App\CoordenadorComissao;
use App\Avaliador;
use App\Proponente;
use App\Participante;
use Illuminate\Support\Facades\Log;
class CoordenadorComissaoController extends Controller
{
public function index(){
return view('coordenadorComissao.index');
}
public function usuarios(){
return view('coordenadorComissao.usuarios');
}
public function editais(){
$coordenador = CoordenadorComissao::with('user')->where('user_id', Auth()->user()->id)->first();
$eventos = Evento::where('coordenadorId',$coordenador->id )->get();
return view('coordenadorComissao.editais', ['eventos'=> $eventos]);
}
public function coordenadorComite(){
$usuarios = CoordenadorComissao::all();
return view('coordenadorComissao.listarUsuarios', ['usuarios' => $usuarios]);
}
public function avaliador(){
$usuarios = Avaliador::all();
return view('coordenadorComissao.listarUsuarios', ['usuarios' => $usuarios]);
}
public function proponente(){
$usuarios = Proponente::all();
return view('coordenadorComissao.listarUsuarios', ['usuarios' => $usuarios]);
}
public function participante(){
$usuarios = Participante::all();
return view('coordenadorComissao.listarUsuarios', ['usuarios' => $usuarios]);
}
}
......@@ -11,8 +11,10 @@ use App\Atribuicao;
use App\Modalidade;
use App\ComissaoEvento;
use App\User;
use App\Proponente;
use App\Trabalho;
use App\AreaModalidade;
use App\CoordenadorComissao;
use Illuminate\Http\Request;
use Carbon\Carbon;
use Illuminate\Support\Facades\Storage;
......@@ -36,6 +38,17 @@ class EventoController extends Controller
}
public function listar()
{
//
$eventos = Evento::all();
// $comissaoEvento = ComissaoEvento::all();
// $eventos = Evento::where('coordenadorId', Auth::user()->id)->get();
return view('evento.listarEvento',['eventos'=>$eventos]);
}
/**
* Show the form for creating a new resource.
*
......@@ -43,8 +56,8 @@ class EventoController extends Controller
*/
public function create()
{
//
return view('evento.criarEvento');
$coordenadors = CoordenadorComissao::with('user')->get();
return view('evento.criarEvento', ['coordenadors' => $coordenadors]);
}
/**
......@@ -59,106 +72,64 @@ class EventoController extends Controller
$mytime = Carbon::now('America/Recife');
$yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString();
//$admResponsavel = AdministradorResponsavel::with('user')->where('user_id', Auth()->user()->id)->first();
$user_id = Auth()->user()->id;
// dd($request);
//dd($user_id);
// validar datas nulas antes, pois pode gerar um bug
if(
$request->dataInicio == null ||
$request->dataFim == null ||
$request->inicioSubmissao == null ||
$request->fimSubmissao == null ||
$request->inicioRevisao == null ||
$request->fimRevisao == null ||
$request->inicioResultado == null ||
$request->fimResultado == null
$request->resultado == null
){
$validatedData = $request->validate([
'nome' => ['required', 'string'],
// 'numeroParticipantes' => ['required', 'integer', 'gt:0'],
'descricao' => ['required', 'string'],
'tipo' => ['required', 'string'],
'dataInicio' => ['required', 'date','after:'. $yesterday],
'dataFim' => ['required', 'date'],
'tipo' => ['required', 'string'],
'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'],
'inicioRevisao' => ['required', 'date'],
'fimRevisao' => ['required', 'date'],
'inicioResultado' => ['required', 'date'],
'fimResultado' => ['required', 'date'],
// 'valorTaxa' => ['required', 'integer'],
'fotoEvento' => ['file', 'mimes:png'],
'resultado' => ['required', 'date'],
'pdfEdital' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
'modeloDocumento' => ['required', 'file', 'mimes:zip,doc,docx,odt,pdf', 'max:2000000'],
]);
}
// validacao normal
$validatedData = $request->validate([
'nome' => ['required', 'string'],
// 'numeroParticipantes' => ['required', 'integer', 'gt:0'],
'nome' => ['required', 'string'],
'descricao' => ['required', 'string'],
'tipo' => ['required', 'string'],
'dataInicio' => ['required', 'date', 'after:' . $yesterday],
'dataFim' => ['required', 'date', 'after:' . $request->dataInicio],
'inicioSubmissao' => ['required', 'date', 'after:' . $yesterday],
'fimSubmissao' => ['required', 'date', 'after:' . $request->inicioSubmissao],
'inicioRevisao' => ['required', 'date', 'after:' . $yesterday],
'fimRevisao' => ['required', 'date', 'after:' . $request->inicioRevisao],
'inicioResultado' => ['required', 'date', 'after:' . $yesterday],
'fimResultado' => ['required', 'date', 'after:' . $request->inicioResultado],
// 'valorTaxa' => ['required', 'integer'],
'fotoEvento' => ['file', 'mimes:png'],
]);
// validar endereco
$validatedData = $request->validate([
'rua' => ['required', 'string'],
'numero' => ['required', 'string'],
'bairro' => ['required', 'string'],
'cidade' => ['required', 'string'],
'uf' => ['required', 'string'],
'cep' => ['required', 'string'],
]);
$endereco = Endereco::create([
'rua' => $request->rua,
'numero' => $request->numero,
'bairro' => $request->bairro,
'cidade' => $request->cidade,
'uf' => $request->uf,
'cep' => $request->cep,
'resultado' => ['required', 'date', 'after:' . $yesterday],
'pdfEdital' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
'modeloDocumento' => ['required', 'file', 'mimes:zip,doc,docx,odt,pdf', 'max:2000000'],
]);
$evento = Evento::create([
'nome' => $request->nome,
// 'numeroParticipantes' => $request->numeroParticipantes,
'descricao' => $request->descricao,
'tipo' => $request->tipo,
'dataInicio' => $request->dataInicio,
'dataFim' => $request->dataFim,
'inicioSubmissao' => $request->inicioSubmissao,
'fimSubmissao' => $request->fimSubmissao,
'inicioRevisao' => $request->inicioRevisao,
'fimRevisao' => $request->fimRevisao,
'inicioResultado' => $request->inicioResultado,
'fimResultado' => $request->fimResultado,
// 'possuiTaxa' => $request->possuiTaxa,
// 'valorTaxa' => $request->valorTaxa,
'enderecoId' => $endereco->id,
'coordenadorId' => Auth::user()->id,
'resultado' => $request->resultado,
'coordenadorId' => $request->coordenador_id,
'criador_id' => $user_id,
]);
// se o evento tem foto
if($request->fotoEvento != null){
$file = $request->fotoEvento;
$path = 'public/eventos/' . $evento->id;
$nome = '/logo.png';
Storage::putFileAs($path, $file, $nome);
$evento->fotoEvento = $path . $nome;
$evento->save();
}
//dd($evento);
// $user = User::find($request->coordenador_id);
// $user->coordenadorComissao()->editais()->save($evento);
// se vou me tornar coordenador do Evento
......@@ -167,13 +138,29 @@ class EventoController extends Controller
// $evento->save();
// }
$evento->coordenadorId = Auth::user()->id;
//$evento->coordenadorId = Auth::user()->id;
$pdfEdital = $request->pdfEdital;
$path = 'pdfEdital/' . $evento->id . '/';
$nome = "edital.pdf";
Storage::putFileAs($path, $pdfEdital, $nome);
$evento->pdfEdital = $path . $nome;
$modeloDocumento = $request->modeloDocumento;
$extension = $modeloDocumento->extension();
$path = 'modeloDocumento/' . $evento->id . '/';
$nome = "modelo" . "." . $extension;
Storage::putFileAs($path, $modeloDocumento, $nome);
$evento->modeloDocumento = $path . $nome;
$evento->save();
$user = Auth::user();
$subject = "Evento Criado";
Mail::to($user->email)
->send(new EventoCriado($user, $subject));
// $user = Auth::user();
// $subject = "Evento Criado";
// Mail::to($user->email)
// ->send(new EventoCriado($user, $subject));
return redirect()->route('coord.home');
}
......@@ -187,32 +174,43 @@ class EventoController extends Controller
public function show($id)
{
$evento = Evento::find($id);
$hasTrabalho = false;
$hasTrabalhoCoautor = false;
$hasFile = false;
$trabalhos = Trabalho::where('autorId', Auth::user()->id)->get();
$trabalhosCount = Trabalho::where('autorId', Auth::user()->id)->count();
$trabalhosId = Trabalho::where('eventoId', $evento->id)->select('id')->get();
$trabalhosIdCoautor = Coautor::whereIn('trabalhoId', $trabalhosId)->where('autorId', Auth::user()->id)->select('trabalhoId')->get();
$coautorCount = Coautor::whereIn('trabalhoId', $trabalhosId)->where('autorId', Auth::user()->id)->count();
$trabalhosCoautor = Trabalho::whereIn('id', $trabalhosIdCoautor)->get();
if($trabalhosCount != 0){
$hasTrabalho = true;
$hasFile = true;
}
if($coautorCount != 0){
$hasTrabalhoCoautor = true;
$hasFile = true;
$proponente = Proponente::where('user_id', Auth::user()->id)->first();
if($proponente != null){
$hasTrabalho = false;
$hasFile = false;
$trabalhos = $proponente->trabalhos()->get();
$trabalhosCount = $proponente->trabalhos()->count();
if($trabalhosCount != 0){
$hasTrabalho = true;
$hasFile = true;
}
}else{
$hasTrabalho = false;
$hasFile = false;
$trabalhos = 0;
$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);
return view('evento.visualizarEvento', [
'evento' => $evento,
'trabalhos' => $trabalhos,
'trabalhosCoautor' => $trabalhosCoautor,
// 'trabalhosCoautor' => $trabalhosCoautor,
'hasTrabalho' => $hasTrabalho,
'hasTrabalhoCoautor' => $hasTrabalhoCoautor,
// 'hasTrabalhoCoautor' => $hasTrabalhoCoautor,
'hasFile' => $hasFile,
'mytime' => $mytime
]);
......@@ -249,9 +247,8 @@ class EventoController extends Controller
public function edit($id)
{
// dd($id);
$evento = Evento::find($id);
$endereco = Endereco::find($evento->enderecoId);
return view('evento.editarEvento',['evento'=>$evento,'endereco'=>$endereco]);
$evento = Evento::find($id);
return view('evento.editarEvento',['evento'=>$evento]);
}
/**
......@@ -263,33 +260,35 @@ class EventoController extends Controller
*/
public function update(Request $request, $id)
{
$evento = Evento::find($id);
$endereco = Endereco::find($evento->enderecoId);
//dd($request);
$evento = Evento::find($id);
$evento->nome = $request->nome;
// $evento->numeroParticipantes = $request->numeroParticipantes;
$evento->nome = $request->nome;
$evento->descricao = $request->descricao;
$evento->tipo = $request->tipo;
$evento->dataInicio = $request->dataInicio;
$evento->dataFim = $request->dataFim;
$evento->tipo = $request->tipo;
$evento->inicioSubmissao = $request->inicioSubmissao;
$evento->fimSubmissao = $request->fimSubmissao;
$evento->inicioRevisao = $request->inicioRevisao;
$evento->fimRevisao = $request->fimRevisao;
$evento->inicioResultado = $request->inicioResultado;
$evento->fimResultado = $request->fimResultado;
// $evento->possuiTaxa = $request->possuiTaxa;
// $evento->valorTaxa = $request->valorTaxa;
$evento->enderecoId = $endereco->id;
$evento->save();
$evento->resultado = $request->resultado;
if($request->pdfEdital != null){
$pdfEdital = $request->pdfEdital;
$path = 'pdfEdital/' . $evento->id . '/';
$nome = "edital.pdf";
Storage::putFileAs($path, $pdfEdital, $nome);
}
if($request->modeloDocumento != null){
$modeloDocumento = $request->modeloDocumento;
$extension = $modeloDocumento->extension();
$path = 'modeloDocumento/' . $evento->id . '/';
$nome = "modelo" . "." . $extension;
Storage::putFileAs($path, $modeloDocumento, $nome);
$evento->modeloDocumento = $path . $nome;
}
$endereco->rua = $request->rua;
$endereco->numero = $request->numero;
$endereco->bairro = $request->bairro;
$endereco->cidade = $request->cidade;
$endereco->uf = $request->uf;
$endereco->cep = $request->cep;
$endereco->save();
$evento->save();
$eventos = Evento::all();
return view('coordenador.home',['eventos'=>$eventos]);
......@@ -304,7 +303,6 @@ class EventoController extends Controller
public function destroy($id)
{
$evento = Evento::find($id);
$endereco = Endereco::find($evento->enderecoId);
$areas = Area::where('eventoId', $id);
$atividades = Atividade::where('eventoId', $id);
......@@ -328,8 +326,10 @@ class EventoController extends Controller
$trabalhos->delete();
}
Storage::deleteDirectory('pdfEdital/' . $evento->id );
Storage::deleteDirectory('modeloDocumento/' . $evento->id);
$evento->delete();
$endereco->delete();
return redirect()->back();
}
......
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\GrandeArea;
use App\Area;
class GrandeAreaController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$grandesAreas = GrandeArea::orderBy('nome')->get();
return view('naturezas.grandeArea.index')->with(['grandesAreas' => $grandesAreas]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('naturezas.grandeArea.nova_grande_area');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$validatedData = $request->validate([
'nome' => 'required',
]);
$GrandeArea = new GrandeArea();
$GrandeArea->nome = $request->nome;
$GrandeArea->save();
return redirect( route('grandearea.index') )->with(['mensagem' => 'Área cadastrada com sucesso']);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$grandeArea = GrandeArea::find($id);
$areas = Area::where('grande_area_id', '=', $id)->orderBy('nome')->get();
return view('naturezas.grandeArea.detalhes')->with(['grandeArea' => $grandeArea, 'areas' => $areas]);
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$grandeArea = GrandeArea::find($id);
return view('naturezas.grandeArea.editar_grande_area')->with(['grandeArea' => $grandeArea]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$grandeArea = GrandeArea::find($id);
$grandeArea->nome = $request->nome;
$grandeArea->update();
return redirect( route('grandearea.index') )->with(['mensagem' => 'Área editada com sucesso']);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$grandeArea = GrandeArea::find($id);
$grandeArea->delete();
return redirect( route('grandearea.index') )->with(['mensagem' => 'Área excluida com sucesso']);
}
}
\ No newline at end of file
......@@ -3,6 +3,8 @@
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;
use Illuminate\Support\Facades\Log;
class HomeController extends Controller
{
......@@ -13,7 +15,7 @@ class HomeController extends Controller
*/
public function __construct()
{
$this->middleware(['auth','verified']);
$this->middleware(['auth']);
}
/**
......@@ -22,8 +24,27 @@ class HomeController extends Controller
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
return view('home');
{
$eventos = \App\Evento::all();
if(Auth::check()){
if(Auth::user()->tipo == 'administrador'){
return view('administrador.index');
}
else if (Auth::user()->tipo == 'administradorResponsavel') {
return view('administradorResponsavel.index');
}
else if (Auth::user()->tipo == 'coordenador') {
return view('coordenadorComissao.index');
}
else if (Auth::user()->tipo == 'proponente') {
return view('proponente.index');
}
else if (Auth::user()->tipo == 'participante') {
return view('participante.index');
}
}
Log::debug('HomeController');
return view('index', ['eventos' => $eventos]);
}
public function downloadArquivo(Request $request){
......
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ProponenteController extends Controller
{
//
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Area;
use App\SubArea;
class SubAreaController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$subAreas = SubArea::orderBy('nome')->get();
return view('naturezas.subArea.index')->with(['subAreas' => $subAreas]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create($areaId)
{
return view('naturezas.subArea.nova_subarea')->with(['areaId' => $areaId]);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request, $id)
{
$validated = $request->validate([
'nome' => 'required',
]);
$subarea = new SubArea();
$subarea->nome = $request->nome;
$subarea->area_id = $id;
$subarea->save();
return redirect( route('area.show', ['id' => $id]) )->with(['mensagem' => 'Subárea cadastrada 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)
{
$subarea = SubArea::find($id);
return view('naturezas.subArea.editar_subarea')->with(['subarea' => $subarea]);
}
/**
* 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([
'nome' => 'required',
]);
$subarea = SubArea::find($id);
$subarea->nome = $request->nome;
$subarea->update();
return redirect( route('area.show', ['id' => $subarea->area_id]) )->with(['mensagem' => 'Subárea atualizada com sucesso']);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$subarea = SubArea::find($id);
$areaId = $subarea->area_id;
$subarea->delete();
return redirect( route('area.show', ['id' => $areaId]) )->with(['mensagem' => 'Subárea deletada com sucesso']);
}
}
......@@ -5,13 +5,19 @@ namespace App\Http\Controllers;
use App\Trabalho;
use App\Coautor;
use App\Evento;
use App\CoordenadorComissao;
use App\User;
use App\Proponente;
use App\AreaModalidade;
use App\Area;
use App\Revisor;
use App\Modalidade;
use App\Atribuicao;
use App\Arquivo;
use App\GrandeArea;
use App\SubArea;
use App\FuncaoParticipantes;
use App\Participante;
use Carbon\Carbon;
use Auth;
use Illuminate\Http\Request;
......@@ -31,31 +37,18 @@ class TrabalhoController extends Controller
*/
public function index($id)
{
$evento = Evento::find($id);
$areas = Area::where('eventoId', $evento->id)->get();
$areasId = Area::where('eventoId', $evento->id)->select('id')->get();
$revisores = Revisor::where('eventoId', $evento->id)->get();
$modalidades = Modalidade::all();
$areaModalidades = AreaModalidade::whereIn('areaId', $areasId)->get();
$areasEnomes = Area::wherein('id', $areasId)->get();
$modalidadesIDeNome = [];
foreach ($areaModalidades as $key) {
array_push($modalidadesIDeNome,['areaId' => $key->area->id,
'modalidadeId' => $key->modalidade->id,
'modalidadeNome' => $key->modalidade->nome]);
}
$trabalhos = Trabalho::where('autorId', Auth::user()->id)->whereIn('areaId', $areasId)->get();
// dd($evento);
$edital = Evento::find($id);
$grandeAreas = GrandeArea::all();
$areas = Area::all();
$subAreas = SubArea::all();
$funcaoParticipantes = FuncaoParticipantes::all();
return view('evento.submeterTrabalho',[
'evento' => $evento,
'areas' => $areas,
'revisores' => $revisores,
'modalidades' => $modalidades,
'areaModalidades' => $areaModalidades,
'trabalhos' => $trabalhos,
'areasEnomes' => $areasEnomes,
'modalidadesIDeNome' => $modalidadesIDeNome,
'edital' => $edital,
'grandeAreas' => $grandeAreas,
'areas' => $areas,
'subAreas' => $subAreas,
'funcaoParticipantes'=> $funcaoParticipantes
]);
}
......@@ -76,104 +69,193 @@ class TrabalhoController extends Controller
* @return \Illuminate\Http\Response
*/
public function store(Request $request){
// dd($request->all());
$mytime = Carbon::now('America/Recife');
$mytime = $mytime->toDateString();
$evento = Evento::find($request->eventoId);
$evento = Evento::find($request->editalId);
$coordenador = CoordenadorComissao::find($evento->coordenadorId);
//dd($coordenador->id);
if($evento->inicioSubmissao > $mytime){
if($mytime >= $evento->fimSubmissao){
return redirect()->route('home');
}
}
$validatedData = $request->validate([
'nomeTrabalho' => ['required', 'string',],
'areaId' => ['required', 'integer'],
'modalidadeId' => ['required', 'integer'],
'eventoId' => ['required', 'integer'],
'resumo' => ['nullable','string'],
'nomeCoautor.*' => ['string'],
'emailCoautor.*' => ['string'],
'arquivo' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
]);
//O anexo de Decisão do CONSU dependo do tipo de edital
if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM'){
$validatedData = $request->validate([
'editalId' => ['required', 'integer'],
'nomeProjeto' => ['required', 'string'],
'grandeAreaId' => ['required', 'integer'],
'areaId' => ['required', 'integer'],
'subAreaId' => ['required', 'integer'],
'pontuacaoPlanilha' => ['required', 'integer'],
'linkGrupo' => ['required', 'string'],
'linkLattesEstudante' => ['required', 'string'],
'nomeParticipante.*' => ['required', 'string'],
'emailParticipante.*' => ['string'],
'nomePlanoTrabalho.*' => ['string'],
'anexoProjeto' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
//'anexoCONSU' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
'anexoLatterCoordenador' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
'anexoPlanilha' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
'anexoPlanoTrabalho.*' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
]);
$autor = Auth::user();
$trabalhosDoAutor = Trabalho::where('eventoId', $request->eventoId)->where('autorId', Auth::user()->id)->count();
$areaModalidade = AreaModalidade::where('areaId', $request->areaId)->where('modalidadeId', $request->modalidadeId)->first();
Log::debug('Numero de trabalhos' . $evento);
if($trabalhosDoAutor >= $evento->numMaxTrabalhos){
return redirect()->back()->withErrors(['numeroMax' => 'Número máximo de trabalhos permitidos atingido.']);
}
$trabalho = Trabalho::create([
'titulo' => $request->nomeProjeto,
'coordenador_id' => $coordenador->id,
'grande_area_id' => $request->grandeAreaId,
'area_id' => $request->areaId,
'sub_area_id' => $request->subAreaId,
'pontuacaoPlanilha' => $request->pontuacaoPlanilha,
'linkGrupoPesquisa' => $request->linkGrupo,
'linkLattesEstudante' => $request->linkLattesEstudante,
'data' => $mytime,
'evento_id' => $request->editalId,
'avaliado' => 0,
//Anexos
'anexoDecisaoCONSU' => $request->anexoCONSU,
'anexoProjeto' => $request->anexoProjeto,
'anexoAutorizacaoComiteEtica' => $request->anexoComiteEtica,
'anexoLattesCoordenador' => $request->anexoLatterCoordenador,
'anexoPlanilhaPontuacao' => $request->anexoPlanilha,
]);
//dd($request->all());
}else{
//Caso em que o anexo da Decisão do CONSU não necessário
$validatedData = $request->validate([
'editalId' => ['required', 'integer'],
'nomeProjeto' => ['required', 'string',],
'grandeAreaId' => ['required', 'integer'],
'areaId' => ['required', 'integer'],
'subAreaId' => ['required', 'integer'],
'pontuacaoPlanilha' => ['required', 'integer'],
'linkGrupo' => ['required', 'string'],
'linkLattesEstudante' => ['required', 'string'],
'nomeCoordenador' => ['required', 'string'],
'nomeParticipante.*' => ['required', 'string'],
'emailParticipante.*' => ['string'],
'nomePlanoTrabalho.*' => ['string'],
'anexoProjeto' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
'anexoLatterCoordenador' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
'anexoPlanilha' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
'anexoPlanoTrabalho.*' => ['required', 'file', 'mimes:pdf', 'max:2000000'],
]);
$trabalho = Trabalho::create([
'titulo' => $request->nomeProjeto,
'coordenador_id' => $coordenador->id,
'grande_area_id' => $request->grandeAreaId,
'area_id' => $request->areaId,
'sub_area_id' => $request->subAreaId,
'coordenador' => $request->nomeCoordenador,
'pontuacaoPlanilha' => $request->pontuacaoPlanilha,
'linkGrupoPesquisa' => $request->linkGrupo,
'linkLattesEstudante' => $request->linkLattesEstudante,
'data' => $mytime,
'evento_id' => $request->editalId,
'avaliado' => 0,
//Anexos
'anexoProjeto' => $request->anexoProjeto,
'anexoAutorizacaoComiteEtica' => $request->anexoComiteEtica,
'anexoLattesCoordenador' => $request->anexoLatterCoordenador,
'anexoPlanilhaPontuacao' => $request->anexoPlanilha,
]);
if($request->emailCoautor != null){
$i = 0;
foreach ($request->emailCoautor as $key) {
$i++;
}
if($i > $evento->numMaxCoautores){
return redirect()->back()->withErrors(['numeroMax' => 'Número de coautores deve ser menor igual a '.$evento->numMaxCoautores]);
}
}
if($request->emailCoautor != null){
$i = 0;
foreach ($request->emailCoautor as $key) {
$userCoautor = User::where('email', $key)->first();
if($userCoautor == null){
//Relaciona o projeto criado com o proponente que criou o projeto
$proponente = Proponente::where('user_id', Auth::user()->id)->first();
$trabalho->proponentes()->save($proponente);
//Envia email com senha temp para cada participante do projeto
if($request->emailParticipante != null){
foreach ($request->emailParticipante as $key => $value) {
$userParticipante = User::where('email', $value)->first();
if($userParticipante == null){
$passwordTemporario = Str::random(8);
Mail::to($key)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, ' ', 'Coautor', $evento->nome, $passwordTemporario));
Mail::to($value)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, ' ', 'Participante', $evento->nome, $passwordTemporario));
$usuario = User::create([
'email' => $key,
'email' => $value,
'password' => bcrypt($passwordTemporario),
'usuarioTemp' => true,
'name' => $request->nomeCoautor[$i],
'name' => $request->nomeParticipante[$key],
'tipo' => 'participante',
'funcao_participante_id' => $request->funcaoParticipante[$key],
]);
$participante = $usuario->participantes()->create([
'trabalho_id' => $trabalho->id,
]);
$participante->trabalhos()->save($trabalho);
}else{
$subject = "Participante de Projeto";
$email = $value;
Mail::to($email)
->send(new SubmissaoTrabalho($userParticipante, $subject));
}
$i++;
}
}
$anexos = array(
$request->anexoCONSU,
$request->anexoProjeto,
$request->anexoComiteEtica,
$request->anexoLatterCoordenador,
$request->anexoPlanilha,
);
$trabalho = Trabalho::create([
'titulo' => $request->nomeTrabalho,
'modalidadeId' => $areaModalidade->modalidade->id,
'areaId' => $areaModalidade->area->id,
'autorId' => $autor->id,
'eventoId' => $evento->id,
'avaliado' => 'nao'
]);
foreach ($anexos as $key => $value) {
$file = $value;
$path = 'trabalhos/' . $request->editalId . '/' . $trabalho->id .'/';
$nome = "1.pdf";
Storage::putFileAs($path, $file, $nome);
$arquivo = Arquivo::create([
'nome' => $path . $nome,
'trabalhoId' => $trabalho->id,
'data' => $mytime,
'versaoFinal' => true,
]);
}
if($request->anexoPlanoTrabalho != null){
foreach ($request->anexoPlanoTrabalho as $key => $value) {
$file = $value;
$path = 'trabalhos/' . $request->editalId . '/' . $trabalho->id .'/';
$nome = $request->nomePlanoTrabalho[$key] .".pdf";
Storage::putFileAs($path, $file, $nome);
if($request->emailCoautor != null){
foreach ($request->emailCoautor as $key) {
$userCoautor = User::where('email', $key)->first();
Coautor::create([
'ordem' => '-',
'autorId' => $userCoautor->id,
$arquivo = Arquivo::create([
'nome' => $path . $nome,
'trabalhoId' => $trabalho->id,
'data' => $mytime,
'versaoFinal' => true,
]);
}
}
$file = $request->arquivo;
$path = 'trabalhos/' . $request->eventoId . '/' . $trabalho->id .'/';
$nome = "1.pdf";
Storage::putFileAs($path, $file, $nome);
//dd($trabalho);
$arquivo = Arquivo::create([
'nome' => $path . $nome,
'trabalhoId' => $trabalho->id,
'versaoFinal' => true,
]);
$subject = "Submissão de Trabalho";
$autor = Auth()->user();
Mail::to($autor->email)
->send(new SubmissaoTrabalho($autor, $subject));
if($request->emailCoautor != null){
foreach ($request->emailCoautor as $key) {
$userCoautor = User::where('email', $key)->first();
Mail::to($userCoautor->email)
->send(new SubmissaoTrabalho($userCoautor, $subject));
}
}
return redirect()->route('evento.visualizar',['id'=>$request->eventoId]);
return redirect()->route('evento.visualizar',['id'=>$request->editalId]);
}
/**
......
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