Skip to content
This repository has been archived by the owner on May 15, 2022. It is now read-only.

Commit

Permalink
Finalizado CRUD
Browse files Browse the repository at this point in the history
  • Loading branch information
gmarcon83 committed May 1, 2021
1 parent 83e6dbd commit a2011d8
Show file tree
Hide file tree
Showing 17 changed files with 4,342 additions and 24 deletions.
Empty file.
54 changes: 54 additions & 0 deletions Dia 64 - Node - Projeto Escola/controllers/alunosController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
const Aluno = require("../models/aluno");

// Listar
exports.listar = (req, res) => {
Aluno.find((err, resultado) => {
if (err) return console.log(err);

res.render("alunos.ejs", { dados: resultado });
});
};

// Cadastrar
exports.cadastrar = (req, res) => {
res.render("alunosnovo.ejs");
};

exports.cadastrarPOST = async (req, res) => {
try {
const aluno = new Aluno({ ...req.body });
await aluno.save();
res.redirect("/alunos");
} catch (err) {
return console.log(err);
}
};

// Editar
exports.editar = async (req, res) => {
try {
const resultado = await Aluno.findById(req.params.id);
res.render("alunoseditar.ejs", {dados: resultado});
} catch (err) {
res.send(err);
}
};

exports.editarPOST = async (req, res) => {
try {
await Aluno.findOneAndReplace({_id: req.params.id},{ ...req.body });
res.redirect("/alunos");
} catch (err) {
return console.log(err);
}
};

// Apagar
exports.apagar = async (req, res) => {
try {
await Aluno.findByIdAndDelete(req.params.id);
res.redirect("/alunos");
} catch (err) {
return console.log(err);
}
};
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,9 @@ exports.cadastrar = (req, res) => {
res.render("disciplinasnova.ejs");
};

exports.cadastrarPost = async (req, res) => {
exports.cadastrarPOST = async (req, res) => {
try {
const disciplina = new Disciplina({
nome: req.body.nome,
cargahoraria: req.body.cargahoraria,
});
const disciplina = new Disciplina({ ...req.body });
await disciplina.save();
res.redirect("/disciplinas");
} catch (err) {
Expand All @@ -40,10 +37,7 @@ exports.editar = async (req, res) => {
exports.editarPOST = async (req, res) => {
try {
// Acha a entrada pela id e subsitui
await Disciplina.replaceOne({_id: req.params.id},{
nome: req.body.nome,
cargahoraria: req.body.cargahoraria,
});
await Disciplina.replaceOne({ _id: req.params.id }, { ...req.body });
res.redirect("/disciplinas");
} catch (err) {
res.send(err);
Expand All @@ -58,4 +52,4 @@ exports.apagar = async (req, res) => {
} catch (err) {
res.send(err);
}
};
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
const Professor = require("../models/professor");

// Listar
exports.listar = (req, res) => {
Professor.find((err, resultado) => {
if (err) return console.log(err);

res.render("professores.ejs", { dados: resultado });
});
};

// Cadastrar
exports.cadastrar = (req, res) => {
res.render("professoresnovo.ejs");
};

exports.cadastrarPOST = async (req, res) => {
try {
const professor = new Professor({ ...req.body });
await professor.save();
res.redirect("/professores");
} catch (err) {
return console.log(err);
}
};

// Editar
exports.editar = async (req, res) => {
try {
const resultado = await Professor.findById(req.params.id);
res.render("professoreseditar.ejs", {dados: resultado});
} catch (err) {
res.send(err);
}
};

exports.editarPOST = async (req, res) => {
try {
await Professor.findOneAndReplace({_id: req.params.id},{ ...req.body });
res.redirect("/professores");
} catch (err) {
return console.log(err);
}
};

// Apagar
exports.apagar = async (req, res) => {
try {
await Professor.findByIdAndDelete(req.params.id);
res.redirect("/professores");
} catch (err) {
return console.log(err);
}
};
55 changes: 43 additions & 12 deletions Dia 64 - Node - Projeto Escola/routes/index.js
Original file line number Diff line number Diff line change
@@ -1,35 +1,66 @@
const express = require('express');
const express = require("express");
const router = express.Router();
const disciplinas = require('../controllers/disciplinasController.js')
const alunos = require("../controllers/alunosController.js");
const disciplinas = require("../controllers/disciplinasController.js");
const professores = require("../controllers/professoresController.js");

// Página Inicial.
router.get('/', (req, res) => {
router.get("/", (req, res) => {
res.render("index.ejs");
});
});


// Rotas Disciplinas
// ------------ //
// Rotas Alunos //
// ------------ //

// Listar
router.get('/disciplinas', disciplinas.listar)
router.get("/alunos", alunos.listar);

// Cadastrar
router.get('/disciplinas/nova', disciplinas.cadastrar)
router.post('/disciplinas/nova', disciplinas.cadastrarPost)
router.get("/alunos/novo", alunos.cadastrar);
router.post("/alunos/novo", alunos.cadastrarPOST);

// Editar
router.get('/disciplinas/editar/:id', disciplinas.editar)
router.post('/disciplinas/editar/:id', disciplinas.editarPOST)
router.get("/alunos/editar/:id", alunos.editar);
router.post("/alunos/editar/:id", alunos.editarPOST);

// Apagar
router.get('/disciplinas/apagar/:id', disciplinas.apagar)
router.get("/alunos/apagar/:id", alunos.apagar);

// ----------------- //
// Rotas Disciplinas //
// ----------------- //

// Listar
router.get("/disciplinas", disciplinas.listar);

// Cadastrar
router.get("/disciplinas/nova", disciplinas.cadastrar);
router.post("/disciplinas/nova", disciplinas.cadastrarPOST);

// Editar
router.get("/disciplinas/editar/:id", disciplinas.editar);
router.post("/disciplinas/editar/:id", disciplinas.editarPOST);

// Apagar
router.get("/disciplinas/apagar/:id", disciplinas.apagar);

// ----------------- //
// Rotas Professores //
// ----------------- //

// Listar
router.get("/professores", professores.listar);

// Cadastrar
router.get("/professores/novo", professores.cadastrar);
router.post("/professores/novo", professores.cadastrarPOST);

// Editar
router.get("/professores/editar/:id", professores.editar);
router.post("/professores/editar/:id", professores.editarPOST);

// Apagar
router.get("/professores/apagar/:id", professores.apagar);

module.exports = router;
55 changes: 55 additions & 0 deletions Dia 64 - Node - Projeto Escola/views/alunos.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<%- include('head'); -%>

<main>
<div class="container">
<div class="d-flex justify-content-between align-items-end">
<h1 class="my-3">Alunos</h1> <a href="alunos/novo" class="btn btn-primary flex">Cadastrar Novo</a>
</div>
<table class="table table-striped">
<thead>
<tr>
<td scope="col">Nome</td>
<td scope="col">CPF</td>
<td scope="col">RG</td>
<td scope="col">Endereço</td>
<td scope="col">Telefone</td>
<td scope="col">Matrícula</td>
<td scope="col">Ações</td>
</tr>
</thead>
<tbody>
<% dados.forEach(function(dados) { %>
<tr>
<td>
<%= dados.nome %>
</td>
<td>
<%= dados.cpf %>
</td>
<td>
<%= dados.rg %>
</td>
<td>
<%= dados.endereco %>
</td>
<td>
<%= dados.telefone %>
</td>
<td>
<%= dados.matricula %>
</td>
<td>
<a class="btn btn-warning" href="alunos/editar/<%= dados._id %>"> Editar </a>
<a class="btn btn-danger" href="alunos/apagar/<%= dados._id %>"> Apagar </a>
</td>
</tr>
<% }) %>
</tbody>


</div>
</main>

<%- include('foot'); -%>
49 changes: 49 additions & 0 deletions Dia 64 - Node - Projeto Escola/views/alunoseditar.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<%- include('head'); -%>

<main>

<div class="container">
<div class="d-flex justify-content-between align-items-end">
<h1 class="my-3">Editar Aluno</h1> <a href="/alunos" class="btn btn-warning">Voltar</a>
</div>

<form action="/alunos/editar/<%= dados._id %>" method="post">

<div class="mb-3">
<label class="form-label" for="nome">Nome do Aluno</label>
<input class="form-control" type="text" name="nome" id="nome" value="<%= dados.nome %>" required>
</div>

<div class="mb-3">
<label class="form-label" for="cpf">CPF</label>
<input class="form-control" type="text" name="cpf" id="cpf" value="<%= dados.cpf %>" required>
</div>

<div class="mb-3">
<label class="form-label" for="rg">RG</label>
<input class="form-control" type="text" name="rg" id="rg" value="<%= dados.rg %>" required>
</div>

<div class="mb-3">
<label class="form-label" for="endereco">Endereço</label>
<input class="form-control" type="text" name="endereco" id="endereco" value="<%= dados.endereco %>" required>
</div>

<div class="mb-3">
<label class="form-label" for="telefone">Telefone</label>
<input class="form-control" type="text" name="telefone" id="telefone" value="<%= dados.telefone %>" required>
</div>

<div class="mb-3">
<label class="form-label" for="matricula">Matrícula</label>
<input class="form-control" type="text" name="matricula" id="matricula" value="<%= dados.matricula %>"
required>
</div>

<button class="btn btn-success" type="submit">Alterar</button>
</form>

</div>
</main>

<%- include('foot'); -%>
46 changes: 46 additions & 0 deletions Dia 64 - Node - Projeto Escola/views/alunosnovo.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<%- include('head'); -%>

<main>

<div class="container">
<div class="d-flex justify-content-between align-items-end">
<h1 class="my-3">Cadastrar Aluno</h1> <a href="/alunos" class="btn btn-warning">Voltar</a></div>

<form action="/alunos/novo" method="post">
<div class="mb-3">
<label class="form-label" for="nome">Nome do Aluno</label>
<input class="form-control" type="text" name="nome" id="nome" required>
</div>

<div class="mb-3">
<label class="form-label" for="cpf">CPF</label>
<input class="form-control" type="text" name="cpf" id="cpf" required>
</div>

<div class="mb-3">
<label class="form-label" for="rg">RG</label>
<input class="form-control" type="text" name="rg" id="rg" required>
</div>

<div class="mb-3">
<label class="form-label" for="endereco">Endereço</label>
<input class="form-control" type="text" name="endereco" id="endereco" required>
</div>

<div class="mb-3">
<label class="form-label" for="telefone">Telefone</label>
<input class="form-control" type="text" name="telefone" id="telefone" required>
</div>

<div class="mb-3">
<label class="form-label" for="matricula">Matrícula</label>
<input class="form-control" type="text" name="matricula" id="matricula" required>
</div>

<button class="btn btn-success" type="submit">Cadastrar</button>
</form>

</div>
</main>

<%- include('foot'); -%>
6 changes: 4 additions & 2 deletions Dia 64 - Node - Projeto Escola/views/disciplinas.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@
<td>
<%= dados.cargahoraria %>
</td>
<td><a class="btn btn-warning" href="disciplinas/editar/<%= dados._id %>"> Editar </a> <a
class="btn btn-danger" href="disciplinas/apagar/<%= dados._id %>"> Apagar </a></td>
<td>
<a class="btn btn-warning" href="disciplinas/editar/<%= dados._id %>"> Editar </a>
<a class="btn btn-danger" href="disciplinas/apagar/<%= dados._id %>"> Apagar </a>
</td>
</tr>
<% }) %>
</tbody>
Expand Down
Loading

0 comments on commit a2011d8

Please sign in to comment.