Commit 95dfd753 authored by alissonalbuquerque's avatar alissonalbuquerque
Browse files

Merge branch 'update_dashboard' of...

Merge branch 'update_dashboard' of https://github.com/alissonalbuquerque/pad-upe into update_dashboard
parents 06692c26 61006e34
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\PAD;
use App\Queries\UnidadeQuery; use App\Queries\UnidadeQuery;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
...@@ -17,6 +18,11 @@ class DashboardController extends Controller ...@@ -17,6 +18,11 @@ class DashboardController extends Controller
{ {
return view('dashboard', ['unidades' => UnidadeQuery::all(), 'unidade_index' => 1]); return view('dashboard', ['unidades' => UnidadeQuery::all(), 'unidade_index' => 1]);
} }
if($user->isTypeTeacher())
{
return view('dashboard', ['PADs' => PAD::all(), 'menu_index'=> 0]);
}
} }
} }
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\PAD;
use Exception;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
class PADController extends Controller
{
/**
* Show last PAD.
*
* @return \Illuminate\View\View
*/
public function index()
{
$PADs = PAD::where('professor_id', '=', Auth::user()->id);
return view('pad.index', ["PADs" => $PADs, 'index_menu' => 1 ]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('pad.create', ['index_menu' => 1 ]);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$rules = [
'first_name' => 'required|string|min:3|max:255',
'city_name' => 'required|string|min:3|max:255',
'email' => 'required|string|email|max:255'
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
return redirect('insert')
->withInput()
->withErrors($validator);
}
else{
$data = $request->input();
try{
$student = new StudInsert;
$student->first_name = $data['first_name'];
$student->last_name = $data['last_name'];
$student->city_name = $data['city_name'];
$student->email = $data['email'];
$student->save();
return redirect('insert')->with('status',"Insert successfully");
}
catch(Exception $e){
return redirect('insert')->with('failed',"operation failed");
}
}
return redirect('/dashboard');
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$model = PAD::find($id);
return view('pad.update', ['pad' => $model]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$model = PAD::find($id);
$model->name = $request->name;
$model->save();
return redirect('/pad/index');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$model = PAD::find($id);
$model->delete();
return redirect('/pad/index');
}
}
\ No newline at end of file
...@@ -14,7 +14,7 @@ class Curso extends Model ...@@ -14,7 +14,7 @@ class Curso extends Model
* *
* @var string * @var string
*/ */
protected $table = 'curso'; protected $table = 'cursos';
/** /**
* The attributes that are mass assignable. * The attributes that are mass assignable.
......
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PAD extends Model
{
use HasFactory;
/**
* References table PADs
*
* @var string
*/
protected $table = 'PADs';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['ano', 'semestre', 'carga_horaria', 'categoria', 'afastamento_total', 'afastamento_parcial', 'exerce_funcao_admin', 'exerce_funcao_sindical', 'licenca_de_acor_legais', 'outras_observacoes', 'professor_id', 'curso_id'];
/**
* Get User with user.id = user.campus_id
*
* @return User
*/
public function professor()
{
return $this->belongsTo(User::class);
}
/**
* Get Curso with curso.id = curso.curso_id
*
* @return Curso
*/
public function curso()
{
return $this->belongsTo(Curso::class);
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Planejamento extends Model
{
use HasFactory;
const ENSINO = 1;
const PESQUISA = 2;
const EXTENSAO = 3;
const GESTAO = 4;
/**
* @return string
*/
public function listDimensao($value = null) {
$values = [
self::ENSINO => 'Ensino',
self::PESQUISA => 'Pesquisa',
self::EXTENSAO => 'Extensão',
self::GESTAO => 'Gestão',
];
return $value !== null? $values[$value] : $values;
}
/**
* References table planejamentos
*
* @var string
*/
protected $table = "planejamentos";
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['cod_dimensao', 'dimensao', 'descricao', 'ch_semanal, ch_maxima'];
/**
* @return string
*/
public function dimensaoAsText() {
return $this->listDimensao($this->dimensao);
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class RefPlanejamentoCh extends Model
{
use HasFactory;
}
<?php
namespace App\Models\Tabelas\Ensino;
use App\Queries\PlanejamentoQuery;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class EnsinoAula extends Model
{
use HasFactory;
const NIVEL_GRADUACAO = 1;
const NIVEL_POS_GRADUACAO_LATO_SENSU = 2;
const NIVEL_POS_GRADUACAO_STRICTO_SENSU = 3;
const MODALIDADE_EAD = 1;
const MODALIDADE_PRESENCIAL = 2;
/**
* References table ensino_aulas
*
* @var string
*/
protected $table = 'ensino_aulas';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['cod_atividade', 'componente_curricular', 'curso_id', 'nivel', 'modalidade', 'ch_semanal', 'ch_total', 'pad_id'];
private $codesDimensao = ['E-1', 'E-2', 'E-3'];
/**
* @return array|string
*/
public function listNivel($value = null) {
$values = [
self::NIVEL_GRADUACAO => 'Graduação',
self::NIVEL_POS_GRADUACAO_LATO_SENSU => 'Pós-graduação Stricto Sensu',
self::NIVEL_POS_GRADUACAO_STRICTO_SENSU => 'Pós-Graduação Lato Sensu',
];
return $value !== null? $values[$value] : $values;
}
/**
* @return array|string
*/
public function listModalidade($value = null) {
$values = [
self::MODALIDADE_EAD => 'EAD',
self::MODALIDADE_PRESENCIAL => 'Presencial',
];
return $value !== null? $values[$value] : $values;
}
/**
* @return array
*/
public function orientacaoPreenchimento() {
return [
'descricao' => 'Ensino (Aulas em componentes curriculares)',
'componente_curricular' => 'Nome do Componente: Nome do componente curricular como descrito no PPC do curso',
'curso' => 'Curso: Nome do curso ao qual o componente curricular pertence',
'nivel' => 'Nível: Preencher o nível do curso ao qual o componente curricular pertence, sendo as opções: Graduação, Pós-graduação Stricto Sensu, Pós-Graduação Lato Sensu',
'modalidade' => 'Modalidade: Preencher a modalidade que o componente curricular é ofertado, sendo as opções: Presencial e EAD',
'ch_semanal' => 'Carga Horária Semanal: Carga horária total efetiva exercida pelo docente dentro do componente curricular dividida pelo número de semanas que o mesmo ocorre',
'ch_total' => 'Carga Horária Total: Carga horária total efetiva exercida pelo docente dentro do(s) componente(s) curricular (es)',
];
}
/**
* Get PAD with pad.id = ensino_aulas.pad_id
*
* @return PAD
*/
public function pad() {
return $this->belongsTo(PAD::class);
}
/**
* Get Curso with curso.id = ensino_aulas.curso_id
*
* @return Curso
*/
public function curso()
{
return $this->belongsTo(Curso::class);
}
/**
* @return array
*/
public function getPlanejamentos() {
$query = new PlanejamentoQuery();
return $query->whereInCodDimensao($this->codesDimensao)->get();
}
}
<?php
namespace App\Queries;
use App\Models\PAD;
class PADQuery extends PAD {
/**
* @param integer $id
* @param string $expression
* @return PAD|null
*/
public static function whereUnidadeId(int $id, string $expression = '=')
{
return PAD::where('unidade_id', $expression, $id);
}
}
\ No newline at end of file
<?php
namespace App\Queries;
use App\Models\Planejamento;
class PlanejamentoQuery extends Query {
public function __construct($init = []) {
$this->query = Planejamento::where($init);
}
/**
* @param integer $dimensao
* @param string $expression
* @return Builder
*/
public function whereDimensao(int $dimensao, string $expression = '=') {
return $this->query->where('dimensao', $expression, $dimensao);
}
/**
* @param integer $cod_dimensao
* @param string $expression
* @return Builder
*/
public function whereCodDimensao(string $cod_dimensao, string $expression = '=') {
return $this->query->where('cod_dimensao', $expression, $cod_dimensao);
}
/**
* @param array $codes_dimensao
* @param string $expression
* @return Builder
*/
public function whereInCodDimensao($codes_dimensao) {
return $this->query->whereIn('cod_dimensao', $codes_dimensao);
}
}
\ No newline at end of file
<?php <?php
namespace App\Queries;
class Query { class Query {
protected $query;
public function getQuery(){
return $this->query;
}
} }
<?php
namespace App\Queries\Tabelas\Ensino;
use App\Models\EnsinoAula;
use App\Queries\Query;
class EnsinoAulaQuery extends Query {
public function __construct($init = []) {
$this->query = EnsinoAula::where($init);
}
/**
* @param integer $pad_id
* @param string $expression
* @return Builder
*/
public function wherePadId(int $pad_id, string $expression = '=') {
$this->query->where('pad_id', $expression, $pad_id);
}
}
\ No newline at end of file
...@@ -13,7 +13,7 @@ class CreateCursoTable extends Migration ...@@ -13,7 +13,7 @@ class CreateCursoTable extends Migration
*/ */
public function up() public function up()
{ {
Schema::create('curso', function (Blueprint $table) { Schema::create('cursos', function (Blueprint $table) {
$table->id(); $table->id();
$table->string('name'); $table->string('name');
$table->foreignId('campus_id'); $table->foreignId('campus_id');
......
...@@ -17,9 +17,6 @@ class UpdateUserTable extends Migration ...@@ -17,9 +17,6 @@ class UpdateUserTable extends Migration
$table->integer('type')->default(0)->change(); $table->integer('type')->default(0)->change();
$table->string('document')->default("")->change(); $table->string('document')->default("")->change();
$table->integer('status')->default(1)->change(); $table->integer('status')->default(1)->change();
$table->string('unidade')->default("")->change();
$table->integer('curso_id')->default(0)->change();
}); });
} }
......
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePADSTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('PADs', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->integer('ano');
$table->integer('semestre');
$table->integer('carga_horaria');
$table->string('categoria', 20);
$table->boolean('afastamento_total')->default(false);
$table->boolean('afastamento_parcial')->default(false);
$table->boolean('exerce_funcao_admin')->default(false);
$table->boolean('exerce_funcao_sindical')->default(false);
$table->string('licenca_de_acor_legais', 50)->default(null);
$table->string('outras_observacoes', 200)->nullable(true);
$table->unsignedBigInteger('professor_id');
$table->foreign('professor_id')->references('id')->on('users');
$table->unsignedBigInteger('curso_id');
$table->foreign('curso_id')->references('id')->on('cursos');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('PADs');
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateRefPlanejamentoChesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('ref_planejamento_ches', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->string("descricao_atividade", 50);
$table->float("ch_semanal", 5, 2);
$table->float("ch_maxima", 5, 2);
$table->foreignId('PAD_id')
->constrained()
->onUpdate('cascade')
->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('ref_planejamento_ches');
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePlanejamentosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('planejamentos', function (Blueprint $table) {
$table->id();
$table->string('cod_dimensao')->notNull();
$table->tinyInteger('dimensao')->notNull();
$table->string('descricao')->notNull();
$table->integer('ch_semanal')->nullable();
$table->integer('ch_maxima')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('planejamentos');
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateEnsinoAulasTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('ensino_aulas', function (Blueprint $table) {
$table->id();
$table->string('cod_atividade')->notNull();
$table->string('componente_curricular')->notNull();
$table->foreignId('curso_id')->notNull();
$table->tinyInteger('nivel')->notNull();
$table->tinyInteger('modalidade')->notNull();
$table->integer('ch_semanal')->notNull();
$table->integer('ch_total')->notNull();
$table->foreignId('pad_id');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('ensino_aulas');
}
}
...@@ -5,7 +5,7 @@ namespace Database\Seeders; ...@@ -5,7 +5,7 @@ namespace Database\Seeders;
use App\Models\Campus; use App\Models\Campus;
use App\Models\Curso; use App\Models\Curso;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class CursoSeeder extends Seeder class CursoSeeder extends Seeder
{ {
...@@ -29,6 +29,5 @@ class CursoSeeder extends Seeder ...@@ -29,6 +29,5 @@ class CursoSeeder extends Seeder
]); ]);
} }
} }
} }
} }
...@@ -21,6 +21,7 @@ class DatabaseSeeder extends Seeder ...@@ -21,6 +21,7 @@ class DatabaseSeeder extends Seeder
CampusSeeder::class, CampusSeeder::class,
CursoSeeder::class, CursoSeeder::class,
UserSeeder::class, UserSeeder::class,
PlanejamentoSeeder::class,
]); ]);
} }
} }
<?php
namespace Database\Seeders;
use App\Models\Planejamento;
use Illuminate\Database\Seeder;
class PlanejamentoSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$list_ensino = [
['cod_dimensao' => 'E-1', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Aula na graduação e/ou pós-graduação stricto sensu', 'ch_semanal' => null, 'ch_maxima' => null],
['cod_dimensao' => 'E-2', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Aula em cursos de especialização lato sensu dentro da carga horária contratual e/ou programas de residência na UPE', 'ch_semanal' => null, 'ch_maxima' => null],
['cod_dimensao' => 'E-3', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Aula na graduação e/ou pós-graduação lato sensu na modalidade EAD dentro da carga contratual da UPE', 'ch_semanal' => null, 'ch_maxima' => null],
['cod_dimensao' => 'E-4', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Supervisão/Preceptoria de estágio de estudantes de graduação da UPE', 'ch_semanal' => 2, 'ch_maxima' => 8],
['cod_dimensao' => 'E-5', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Orientação de estágio de estudantes de graduação da UPE', 'ch_semanal' => 2, 'ch_maxima' => 8],
['cod_dimensao' => 'E-6', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Orientação de TCC de graduação e/ou de cursos de especialização lato sensu dentro da carga horária contratual e/ou programas de residência na UPE', 'ch_semanal' => 2, 'ch_maxima' => 8],
['cod_dimensao' => 'E-7', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Orientação de dissertação de mestrado e tese de doutorado na UPE', 'ch_semanal' => 2, 'ch_maxima' => 8],
['cod_dimensao' => 'E-8', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Coorientação de dissertação de mestrado e tese de doutorado na UPE', 'ch_semanal' => 1, 'ch_maxima' => 4],
['cod_dimensao' => 'E-9', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Coorientação de TCC de graduação e/ou de cursos de especialização lato sensu dentro da carga horária contratual e/ou programas de residência na UPE', 'ch_semanal' => 1, 'ch_maxima' => 4],
['cod_dimensao' => 'E-10', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Supervisão de estágio docente de estudante de stricto sensu da UPE', 'ch_semanal' => 1, 'ch_maxima' => 2],
['cod_dimensao' => 'E-11', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Coordenação e/ou participação de Projetos/ações de Ensino (inovações pedagógicas, monitoria e apoio a vivência de componentes curriculares)', 'ch_semanal' => null, 'ch_maxima' => 8],
['cod_dimensao' => 'E-12', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Plenos de cursos (graduação e pós-graduação)', 'ch_semanal' => 1, 'ch_maxima' => null],
['cod_dimensao' => 'E-13', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Coordenação e/ou membro de Núcleo Docente Estruturante ou Núcleo Docente Estruturante Assistencial', 'ch_semanal' => 2, 'ch_maxima' => null],
['cod_dimensao' => 'E-14', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Coordenação de componente curricular (a partir de dois professores por componente curricular)', 'ch_semanal' => 2, 'ch_maxima' => 4],
['cod_dimensao' => 'E-15', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Coordenação de estágio de curso de graduação', 'ch_semanal' => 2, 'ch_maxima' => null],
['cod_dimensao' => 'E-16', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Atendimento ao estudante', 'ch_semanal' => 1, 'ch_maxima' => 4],
['cod_dimensao' => 'E-17', 'dimensao' => Planejamento::ENSINO, 'descricao' => 'Preceptoria/Tutoria de residência de estudantes', 'ch_semanal' => 2, 'ch_maxima' => 8],
];
$list_pesquisa = [
['cod_dimensao' => 'P-1', 'dimensao' => Planejamento::PESQUISA, 'descricao' => 'Liderança e/ou participação em grupos de pesquisa cadastrados no CNPq e certificados pela UPE', 'ch_semanal' => 1, 'ch_maxima' => 1],
['cod_dimensao' => 'P-2', 'dimensao' => Planejamento::PESQUISA, 'descricao' => 'Coordenação e/ou participação em Projetos de Pesquisa cadastrados no SISPG', 'ch_semanal' => null, 'ch_maxima' => 12],
['cod_dimensao' => 'P-3', 'dimensao' => Planejamento::PESQUISA, 'descricao' => 'Orientação de Iniciação Científica oriunda de projeto/subprojeto cadastrado no SISPG', 'ch_semanal' => 2, 'ch_maxima' => 6],
['cod_dimensao' => 'P-4', 'dimensao' => Planejamento::PESQUISA, 'descricao' => 'Co-orientação de Iniciação Científica oriunda de projeto/subprojeto cadastrado no SISPG', 'ch_semanal' => 1, 'ch_maxima' => 3],
];
$list_extensao = [
['cod_dimensao' => 'X-1', 'dimensao' => Planejamento::EXTENSAO, 'descricao' => 'Coordenação e/ou participação em atividades de Extensão homologadas na PROEC', 'ch_semanal' => null, 'ch_maxima' => 12],
['cod_dimensao' => 'X-2', 'dimensao' => Planejamento::EXTENSAO, 'descricao' => 'Orientação ou acompanhamento de estudantes em atividades de extensão  homologados na PROEC', 'ch_semanal' => 2, 'ch_maxima' => 6],
];
$list_gestao = [
['cod_dimensao' => 'G-1', 'dimensao' => Planejamento::GESTAO, 'descricao' => 'Membro de Comissão / Comitê / Núcleo, formalmente designado (a) no âmbito da UPE ou para representação da UPE', 'ch_semanal' => 2, 'ch_maxima' => 6],
['cod_dimensao' => 'G-2', 'dimensao' => Planejamento::GESTAO, 'descricao' => 'Membro titular dos Conselhos da UPE (CEPE, CONSUN ou CGA)', 'ch_semanal' => 1, 'ch_maxima' => null],
['cod_dimensao' => 'G-3', 'dimensao' => Planejamento::GESTAO, 'descricao' => 'Representante nas unidades de educação e educação e saúde formalmente designado (a) pela entidade sindical', 'ch_semanal' => 1, 'ch_maxima' => null],
['cod_dimensao' => 'G-4', 'dimensao' => Planejamento::GESTAO, 'descricao' => 'Participação como membro nas câmaras consultivas dos Conselhos Superiores', 'ch_semanal' => 1, 'ch_maxima' => null],
['cod_dimensao' => 'G-5', 'dimensao' => Planejamento::GESTAO, 'descricao' => 'Coordenação de laboratórios didáticos, de informática, de ensino ou pesquisa', 'ch_semanal' => 2, 'ch_maxima' => null],
['cod_dimensao' => 'G-6', 'dimensao' => Planejamento::GESTAO, 'descricao' => 'Coordenação de Programa Institucional', 'ch_semanal' => 2, 'ch_maxima' => null],
];
foreach($list_ensino as $ensino) {
Planejamento::create($ensino);
}
foreach($list_pesquisa as $pesquisa) {
Planejamento::create($pesquisa);
}
foreach($list_extensao as $extensao) {
Planejamento::create($extensao);
}
foreach($list_gestao as $gestao) {
Planejamento::create($gestao);
}
}
}
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