Commit 5de5a599 authored by Gabriel-31415's avatar Gabriel-31415
Browse files

first commit

parents
# EventosCientificos_ModuloTrabalhos
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Area extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'nome', 'eventoId',
];
public function modalidade(){
return $this->hasMany('App\Modalidade', 'areaId');
}
public function trabalho(){
return $this->hasMany('App\Trabalho', 'areaId');
}
public function pertence(){
return $this->hasMany('App\Pertence', 'areaId');
}
public function evento(){
return $this->belongsTo('App\Evento', 'eventoId');
}
public function revisor(){
return $this->hasMany('App\User', 'eventoId');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class AreaModalidade extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'areaId', 'modalidadeId',
];
public function area(){
return $this->belongsTo('App\Area', 'areaId');
}
public function modalidade(){
return $this->belongsTo('App\Modalidade', 'modalidadeId');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Arquivo extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'nome', 'versao', 'versaoFinal', 'data', 'trabalhoId',
];
public function trabalho(){
return $this->belongsTo('App\Trabalho', 'trabalhoId');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Atividade extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'nome', 'versao', 'versaoFinal', 'data', 'eventoId',
];
public function evento(){
return $this->belongsTo('App\Evento', 'eventoId');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Atribuicao extends Model
{
use SoftDeletes;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'confirmacao', 'parecer','revisorId', 'trabalhoId',
];
public function revisor(){
return $this->belongsTo('App\Revisor', 'revisorId');
}
public function trabalho(){
return $this->belongsTo('App\Trabalho', 'trabalhoId');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Coautor extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'ordem','autorId', 'trabalhoId',
];
public function user(){
return $this->belongsTo('App\User', 'autorId');
}
public function trabalho(){
return $this->belongsTo('App\Trabalho', 'trabalhoId');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class ComissaoEvento extends Model
{
//
protected $fillable = [
'especProfissional',
'eventosId',
'userId',
];
function comissao(){
return $this->belongsToMany('App\User','comissao_eventos','userId');
}
}
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
//
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')
// ->hourly();
}
/**
* Register the commands for the application.
*
* @return void
*/
protected function commands()
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Endereco extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'rua', 'numero', 'bairro', 'cidade','uf', 'cep',
];
public function user(){
return $this->hasOne('App\User', 'enderecoId');
}
public function evento(){
return $this->hasOne('App\Evento', 'enderecoId');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Evento extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'nome', 'descricao', 'tipo', 'dataInicio', 'dataFim',
'inicioSubmissao', 'fimSubmissao', 'inicioRevisao', 'fimRevisao',
'inicioResultado', 'fimResultado', 'possuiTaxa', 'valorTaxa', 'fotoEvento',
'enderecoId', 'coordenadorId',
'numMaxTrabalhos', 'numMaxCoautores', 'hasResumo',
];
public function endereco(){
return $this->belongsTo('App\Endereco', 'enderecoId');
}
public function atividade(){
return $this->hasOne('App\Atividade', 'eventoId');
}
public function area(){
return $this->hasOne('App\Area', 'eventoId');
}
public function coordenador(){
return $this->belongsTo('App\User', 'coordenadorId');
}
}
<?php
namespace App\Exceptions;
use Exception;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
class Handler extends ExceptionHandler
{
/**
* A list of the exception types that are not reported.
*
* @var array
*/
protected $dontReport = [
//
];
/**
* A list of the inputs that are never flashed for validation exceptions.
*
* @var array
*/
protected $dontFlash = [
'password',
'password_confirmation',
];
/**
* Report or log an exception.
*
* @param \Exception $exception
* @return void
*
* @throws \Exception
*/
public function report(Exception $exception)
{
parent::report($exception);
}
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
* @return \Symfony\Component\HttpFoundation\Response
*
* @throws \Exception
*/
public function render($request, Exception $exception)
{
return parent::render($request, $exception);
}
}
<?php
namespace App\Http\Controllers;
use App\Area;
use App\AreaModalidade;
use App\Pertence;
use App\Revisor;
use App\Trabalho;
use Illuminate\Http\Request;
class AreaController 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)
{
$validatedData = $request->validate([
'nome' => ['required', 'string'],
]);
Area::create([
'nome' => $request->nome,
'eventoId' => $request->eventoId,
]);
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
}
/**
* Display the specified resource.
*
* @param \App\Area $area
* @return \Illuminate\Http\Response
*/
public function show(Area $area)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Area $area
* @return \Illuminate\Http\Response
*/
public function edit(Area $area)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Area $area
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Area $area)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Area $area
* @return \Illuminate\Http\Response
*/
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();
}
$area->delete();
return redirect()->back();
}
}
<?php
namespace App\Http\Controllers;
use App\AreaModalidade;
use Illuminate\Http\Request;
class AreaModalidadeController 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)
{
$validatedData = $request->validate([
'modalidadeId' => ['required', 'integer',],
'areaId' => ['required', 'integer',],
]);
$modalidade = AreaModalidade::create([
'areaId' => $request->areaId,
'modalidadeId' => $request->modalidadeId,
]);
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
}
/**
* Display the specified resource.
*
* @param \App\AreaModalidade $areaModalidade
* @return \Illuminate\Http\Response
*/
public function show(AreaModalidade $areaModalidade)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\AreaModalidade $areaModalidade
* @return \Illuminate\Http\Response
*/
public function edit(AreaModalidade $areaModalidade)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\AreaModalidade $areaModalidade
* @return \Illuminate\Http\Response
*/
public function update(Request $request, AreaModalidade $areaModalidade)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\AreaModalidade $areaModalidade
* @return \Illuminate\Http\Response
*/
public function destroy(AreaModalidade $areaModalidade)
{
//
}
}
<?php
namespace App\Http\Controllers;
use App\Arquivo;
use Illuminate\Http\Request;
class ArquivoController 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\Arquivo $arquivo
* @return \Illuminate\Http\Response
*/
public function show(Arquivo $arquivo)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Arquivo $arquivo
* @return \Illuminate\Http\Response
*/
public function edit(Arquivo $arquivo)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Arquivo $arquivo
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Arquivo $arquivo)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Arquivo $arquivo
* @return \Illuminate\Http\Response
*/
public function destroy(Arquivo $arquivo)
{
//
}
}
<?php
namespace App\Http\Controllers;
use App\Atividade;
use Illuminate\Http\Request;
class AtividadeController 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\Atividade $atividade
* @return \Illuminate\Http\Response
*/
public function show(Atividade $atividade)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Atividade $atividade
* @return \Illuminate\Http\Response
*/
public function edit(Atividade $atividade)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Atividade $atividade
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Atividade $atividade)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Atividade $atividade
* @return \Illuminate\Http\Response
*/
public function destroy(Atividade $atividade)
{
//
}
}
<?php
namespace App\Http\Controllers;
use App\Atribuicao;
use Illuminate\Http\Request;
use App\Evento;
use App\Revisor;
use App\User;
use App\Trabalho;
use App\Area;
use App\Mail\EmailLembrete;
use Illuminate\Support\Facades\Mail;
class AtribuicaoController 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)
{
$validatedData = $request->validate([
'revisorId' => ['required', 'integer',],
'trabalhoId' => ['required', 'integer'],
]);
$atribuicao = Atribuicao::create([
'confirmacao' => false,
'parecer' => 'processando',
'revisorId' => $request->revisorId,
'trabalhoId' => $request->trabalhoId,
]);
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
}
/**
* Display the specified resource.
*
* @param \App\Atribuicao $atribuicao
* @return \Illuminate\Http\Response
*/
public function show(Atribuicao $atribuicao)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Atribuicao $atribuicao
* @return \Illuminate\Http\Response
*/
public function edit(Atribuicao $atribuicao)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Atribuicao $atribuicao
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Atribuicao $atribuicao)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Atribuicao $atribuicao
* @return \Illuminate\Http\Response
*/
public function destroy(Atribuicao $atribuicao)
{
//
}
public function distribuicaoAutomatica(Request $request){
$this->authorize('isCoordenador', $evento);
$validatedData = $request->validate([
'eventoId' => ['required', 'integer'],
]);
$evento = Evento::find($request->eventoId);
$areas = Area::where('eventoId', $evento->id)->get();
$areasId = Area::where('eventoId', $evento->id)->select('id')->get();
$revisores = Revisor::where('eventoId', $evento->id)->get();
$trabalhos = Trabalho::whereIn('areaId', $areasId)->get();
foreach ($areas as $area) {
$trabalhosArea = Trabalho::where('areaId', $area->id)->get();
$revisoresArea = Revisor::where('areaId', $area->id)->get();
$numRevisores = count($revisoresArea);
$i = 0;
foreach ($trabalhosArea as $trabalho) {
$atribuicao = Atribuicao::create([
'confirmacao' => false,
'parecer' => 'processando',
'revisorId' => $revisoresArea[$i]->id,
'trabalhoId' => $trabalho->id,
]);
$i++;
if($i == $numRevisores){
$i = 0;
}
}
}
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
}
public function distribuicaoPorArea(Request $request){
$validatedData = $request->validate([
'eventoId' => ['required', 'integer'],
'areaId' => ['required', 'integer', 'min:1'],
'numeroDeRevisoresPorTrabalho' => ['required', 'integer']
]);
$evento = Evento::find($request->eventoId);
$this->authorize('isCoordenador', $evento);
$evento = Evento::find($request->eventoId);
$area = Area::find($request->areaId);
$revisores = Revisor::where('areaId', $area->id)->get();
$trabalhos = Trabalho::where('areaId', $area->id)->get();
$trabalhosArea = Trabalho::where('areaId', $area->id)->get();
$revisoresArea = Revisor::where('areaId', $area->id)->get();
$numRevisores = count($revisores);
$i = 0;
foreach ($trabalhosArea as $trabalho) {
for($j = 0; $j < $request->numeroDeRevisoresPorTrabalho; $j++){
//checar se ja existe atribuicao para esse revisor se sim entao vai pro proximo
$atribuicao = Atribuicao::where('revisorId', $revisoresArea[$i]->id)->where('trabalhoId', $trabalho->id)->first();
if($atribuicao != null){
$i++;
if($i == $numRevisores){
$i = 0;
}
continue;
}
// atribui para um revisor
$atribuicao = Atribuicao::create([
'confirmacao' => false,
'parecer' => 'processando',
'revisorId' => $revisoresArea[$i]->id,
'trabalhoId' => $trabalho->id,
]);
$aux = Revisor::find($revisoresArea[$i]->id);
$aux->correcoesEmAndamento = $aux->correcoesEmAndamento + 1;
$aux->save();
$trabalho = Trabalho::find($trabalho->id);
$trabalho->avaliado = 'processando';
$trabalho->save();
$i++;
if($i == $numRevisores){
$i = 0;
}
}
}
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
}
public function distribuicaoManual(Request $request){
$validatedData = $request->validate([
'eventoId' => ['required', 'integer'],
'trabalhoId'=> ['required', 'integer'],
'revisorId' => ['required', 'integer']
]);
$evento = Evento::find($request->eventoId);
$this->authorize('isCoordenador', $evento);
$atribuicao = Atribuicao::create([
'confirmacao' => false,
'parecer' => 'processando',
'revisorId' => $request->revisorId,
'trabalhoId' => $request->trabalhoId
]);
$trabalho = Trabalho::find($request->trabalhoId);
$trabalho->avaliado = 'processando';
$trabalho->save();
$revisor = Revisor::find($request->revisorId);
$revisor->correcoesEmAndamento = $revisor->correcoesEmAndamento + 1;
$revisor->save();
$subject = "Trabalho atribuido";
$informacoes = $trabalho->titulo;
Mail::to($revisor->user->email)
->send(new EmailLembrete($revisor->user, $subject, $informacoes));
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
}
public function deletePorRevisores(Request $request){
$validatedData = $request->validate([
'eventoId' => ['required', 'integer'],
'trabalhoId' => ['required', 'integer'],
'revisores.*' => ['required', 'integer']
]);
$evento = Evento::find($request->eventoId);
$this->authorize('isCoordenador', $evento);
foreach ($request->revisores as $key) {
$atribuicao = Atribuicao::where('trabalhoId', $request->trabalhoId)->where('revisorId', $key)->first();
if($atribuicao != null){
$atribuicao->delete();
$trabalho = Trabalho::find($request->trabalhoId);
$trabalho->avaliado = 'nao';
$trabalho->save();
$revisor = Revisor::find($key);
$revisor->correcoesEmAndamento = $revisor->correcoesEmAndamento - 1;
$revisor->save();
}
}
return redirect()->route('coord.detalhesEvento', ['eventoId' => $request->eventoId]);
}
}
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\ConfirmsPasswords;
class ConfirmPasswordController extends Controller
{
/*
|--------------------------------------------------------------------------
| Confirm Password Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling password confirmations and
| uses a simple trait to include the behavior. You're free to explore
| this trait and override any functions that require customization.
|
*/
use ConfirmsPasswords;
/**
* Where to redirect users when the intended url fails.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
}
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
class ForgotPasswordController extends Controller
{
/*
|--------------------------------------------------------------------------
| Password Reset Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling password reset emails and
| includes a trait which assists in sending these notifications from
| your application to your users. Feel free to explore this trait.
|
*/
use SendsPasswordResetEmails;
}
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
}
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