Commit 4b17b809 authored by Bruno Meyer's avatar Bruno Meyer 😢

#21: Populate Disciplina, Setor, Departamento, Professor and Curso models

parent 7abbc3b2
......@@ -10,62 +10,52 @@ var ds = app.datasources.ensalamento;
var lbTables = models.models;
var LOG_CREATE = false;
ds.automigrate(lbTables, function(err) {
if (err) throw err;
async.waterfall([criaBloco,criaSala,criaUser,criaDisciplina, criaEquivalencia, criaRecursodesala, criaTipodesala], function(err) {
async.waterfall([
loadModelFromOldDB(old_db.get_salas, app.models.Sala, LOG_CREATE),
loadModelFromOldDB(old_db.get_blocos, app.models.Bloco, LOG_CREATE),
criaUser,
criaDisciplina,
criaEquivalencia,
criaRecursodesala,
criaTipodesala,
loadModelFromOldDB(old_db.get_professores, app.models.Professor, LOG_CREATE),
loadModelFromOldDB(old_db.get_departamentos, app.models.Departamento, LOG_CREATE),
loadModelFromOldDB(old_db.get_setores, app.models.Setor, LOG_CREATE),
loadModelFromOldDB(old_db.get_disciplinas, app.models.Disciplina, LOG_CREATE),
loadModelFromOldDB(old_db.get_cursos, app.models.Curso, LOG_CREATE)
],
function(err) {
if (err) throw err;
ds.disconnect();
})
});
var LOG_CREATE = false;
function criaBloco(cb){
// var blocos = [
// {localizacao: '0,0', tamanho: 10, nome: "bloco1", codigo:"codigo1"},
// {localizacao: '0,0', tamanho: 10, nome: "bloco2", codigo:"codigo2"}
// ];
old_db.get_blocos.then(blocos => {
async.each(blocos, function(bloco, callback) {
app.models.Bloco.create(bloco, function(err, model) {
callback(err);
if(LOG_CREATE) console.log('Created:', model);
});
}, function(err) {
if (err) throw err;
cb(err);
});
});
}
function criaSala(cb){
// var salas = [
// {localizacao: '41.12,-71.34', capacidade: 10, tipo:"teste", restrita:false},
// {localizacao: '41.12,-71.34', capacidade: 10, tipo:"teste", restrita:true}
// ];
old_db.get_salas.then(salas => {
async.each(salas, function(sala, callback) {
app.models.Sala.create(sala, function(err, model) {
callback(err);
if(LOG_CREATE) console.log('Created:', model);
// Returns a function that populate a DB model with data loaded from
// old database (see migrate-old-schema.js and load-old-dabase.js codes)
function loadModelFromOldDB(oldDataAccess, model, create_log){
return function(cb){
oldDataAccess.then(data => {
async.each(data, function(instance, callback) {
if(create_log) console.log('Trying to insert:', instance);
model.create(instance, function(err, instanceCreated) {
callback(err);
if(create_log) console.log('Created:', instanceCreated);
});
}, function(err) {
if (err) throw err;
cb(err);
});
}, function(err) {
if (err) throw err;
cb(err);
});
});
}
}
function criaRecursodesala(cb){
var recursos = [
{descricao: 'recurso1'},
......
......@@ -139,4 +139,3 @@ exports.tables.forEach(function(table) {
var promise_name = "get_"+table.loopback_name;
exports[promise_name] = table.load()
});
......@@ -22,9 +22,11 @@
// query: The query (SQL) that will be used to load the table
// new_name: This is NECESSARILY a name of an model in the Loopback schema
// new_name: This is NECESSARILY a name of an model in the Loopback schema.
// On automigrate, this will be used to access data with a promisse.
// For instance, get_blocos.then ...
var connectionString = 'postgresql://login:password@localhost:5432/ensalamento';
var connectionString = 'postgresql://bhm15:pass@localhost:5432/ensalamento';
var rooms = [
{
......@@ -46,7 +48,7 @@ var rooms = [
delete x.longitude;
return x;
},
//SELECT
" *,\
blocks.code as blocks_code,\
rooms.code as code,\
......@@ -54,15 +56,14 @@ var rooms = [
blocks.name as blocks_name,\
room_types.name as type\
",
//FROM
" rooms\
INNER JOIN\
blocks ON rooms.block_id = blocks.id\
blocks ON rooms.block_id=blocks.id\
INNER JOIN\
room_types ON room_type_id=room_types.id\
",
//SAVE FILE HAS
"salas"
];
......@@ -70,9 +71,9 @@ var blocks = [
{
"name": "nome",
"code": "codigo",
"size": "capacidade",
"latitude": "latitude",
"longitude": "longitude"
"longitude": "longitude",
"sector_code": "setorCod"
},function(x){
x.restrita = !x.restrita;
x.localizacao = {lat:x.latitude, lng: x.longitude};
......@@ -80,10 +81,138 @@ var blocks = [
delete x.longitude;
return x;
},
"*",
"blocks",
//SELECT
" blocks.name as name,\
blocks.code as code,\
blocks.latitude as latitude,\
blocks.longitude as longitude,\
sectors.code as sector_code\
",
//FROM
" blocks\
INNER JOIN\
sectors ON blocks.sector_id=sectors.id\
",
//SAVE FILE HAS
"blocos"
];
exports.tables = [rooms, blocks];
var professors = [
{
"name": "nome",
"code": "codigo",
"email": "email",
"web": "website",
"department_code": "departamentoCod"
},function(x){
return x;
},
//SELECT
" professors.name as name,\
professors.code as code,\
departments.code as department_code\
",
//FROM
" professors\
INNER JOIN\
departments ON professors.department_id=departments.id\
",
//SAVE FILE HAS
"professores"
];
var departments = [
{
"name": "nome",
"code": "codigo",
"sector_code": "setorCod"
},function(x){
return x;
},
//SELECT
" departments.name as name,\
departments.code as code,\
sectors.code as sector_code\
",
//FROM
" departments\
INNER JOIN\
sectors ON departments.sector_id=sectors.id\
",
//SAVE FILE HAS
"departamentos"
];
var sectors = [
{
"email": "email",
"web": "website",
"name": "nome",
"code": "codigo"
},function(x){
return x;
},
"*", //SELECT
"sectors", //FROM
"setores" //SAVE FILE HAS
];
var subjects = [
{
"code": "codigo",
"name": "nome",
"hour_total": "carga_horaria",
"department_code": "departamentoCod",
},function(x){
return x;
},
//SELECT
" subjects.code as code,\
subjects.name as name,\
subjects.hour_total as hour_total,\
departments.code as department_code\
",
//FROM
" subjects\
INNER JOIN\
departments ON subjects.department_id=departments.id\
",
"disciplinas" //SAVE FILE HAS
];
var courses = [
{
"code": "codigo",
"name": "nome"
},function(x){
return x;
},
//SELECT
" courses.code as code,\
courses.name as name\
",
"courses", //FROM
"cursos" //SAVE FILE HAS
];
exports.tables = [
rooms,
blocks,
professors,
departments,
sectors,
subjects,
courses
];
exports.connectionString = connectionString;
This diff is collapsed.
[{"codigo":"01A","nome":"Arquitetura e Urbanismo - Diurno"},{"codigo":"01B","nome":"Curso de Arquitetura e Urbanismo"},{"codigo":"02B","nome":"EngCivil"},{"codigo":"03A","nome":"EngEletrica"},{"codigo":"04B","nome":"EngFlorestal"},{"codigo":"05A","nome":"EngMecanica"},{"codigo":"06A","nome":"EngQuimica"},{"codigo":"7","nome":"Estatística"},{"codigo":"08B","nome":"Física"},{"codigo":"09B","nome":"Geologia"},{"codigo":"03DDI","nome":"Engenharia Elétrica - Ênfase em Eletrônica"},{"codigo":"10F","nome":"Geografia"},{"codigo":"11A","nome":"Matematica"},{"codigo":"12E","nome":"Química"},{"codigo":"13A","nome":"Agronomia"},{"codigo":"15C","nome":"EngCartografica"},{"codigo":"16A","nome":"Estatística"},{"codigo":"20A","nome":"EngProducao"},{"codigo":"21A","nome":"Ciência Computacao"},{"codigo":"22B","nome":"EngMadeireira"},{"codigo":"24A","nome":"EngBioprocessos"},{"codigo":"26A","nome":"Matematica Industrial"},{"codigo":"29A","nome":"ExpGrafica"},{"codigo":"31C","nome":"Biologia"},{"codigo":"32D","nome":"Enfermagem"},{"codigo":"33A","nome":"Farmacia"},{"codigo":"39","nome":"Nutrição"},{"codigo":"41A","nome":"Zootecnia"},{"codigo":"46A","nome":"Biomedicina"},{"codigo":"61A","nome":"Administração - Diurno"},{"codigo":"96A","nome":"Informatica Biomedica"},{"codigo":"921","nome":"Mestrado em Informatica"},{"codigo":"901A","nome":"Mestrado em Matematica"},{"codigo":"987","nome":"Pipe"},{"codigo":"902","nome":"ProfMat"},{"codigo":"903","nome":"Pós-Graduação Ensino Ciências e Matemática"},{"codigo":"05DD","nome":"Engenharia Mecânica"},{"codigo":"11B","nome":"Matemática - Bacharelado"},{"codigo":"12C","nome":"Química - Bacharelado e Licenciatura"},{"codigo":"17A","nome":"Física - Licenciatura - Noturno"},{"codigo":"18F","nome":"Geografia - Licenciatura e Bacharelado - Noturno"},{"codigo":"19A","nome":"Matemática - Licenciatura - Noturno"},{"codigo":"34A","nome":"Medicina - Diurno"},{"codigo":"39A","nome":"Nutrição - Diurno"},{"codigo":"40C","nome":"Oceanografia"},{"codigo":"45C","nome":"Ciências Biológicas - Licenciatura e Bacharelado - Noturno"},{"codigo":"60A","nome":"Administração - Noturno"},{"codigo":"66C","nome":"Ciências Sociais - Licenciatura - Diurno"},{"codigo":"67A","nome":"Gestão da Informação - Bacharelado - Diurno"},{"codigo":"76B","nome":"Psicologia - Formação de Psicólogo - Diurno"},{"codigo":"103A","nome":"Engenharia Mecânica - Noturno"},{"codigo":"104A","nome":"Licenciatura em Química - Noturno"},{"codigo":"105A","nome":"Engenharia Industrial Madeireira - Noturno"},{"codigo":"303PF","nome":"Segunda Licenciatura em Física - PARFOR"},{"codigo":"xxx","nome":"Desconhecido"},{"codigo":"23A","nome":"EngAmbiental"},{"codigo":"35A","nome":"Medicina Veterinária - Curitiba"},{"codigo":"64A","nome":"Ciências Econômicas"},{"codigo":"65A","nome":"Ciências Econômicas - Noturno"},{"codigo":"35B","nome":"Medicina Veterinária - Curitiba"},{"codigo":"160A","nome":"Fisioterapia"},{"codigo":"11C","nome":"Matemática (Bacharelado e Licenciatura)"},{"codigo":"81A","nome":"Terapia Ocupacional"},{"codigo":"38C","nome":"Educação Física - Licenciatura"},{"codigo":"38D","nome":"Educação Física - Bacharelado"},{"codigo":"36A","nome":"Odontologia"},{"codigo":"30A","nome":"Terapia Ocupacional"},{"codigo":"70TPI","nome":"Direito"},{"codigo":"95A","nome":null},{"codigo":"ppgq","nome":"Pós-graduação em Química"},{"codigo":"2020","nome":"PPGEngProd"},{"codigo":"102A","nome":"Engenharia Elétrica - Noturno"},{"codigo":"40001016041P1","nome":"Pós-graduação em Matemática"},{"codigo":"ppgengprod","nome":"Pós-graduação em Engenharia de Produção"},{"codigo":"ppgea","nome":"Pós-graduação Engenharia Ambiental"},{"codigo":"ppgee","nome":"Pós-graduação em Engenharia Elétrica"},{"codigo":"isf-ingles","nome":"ISF-Ingles"},{"codigo":"95B","nome":null},{"codigo":"56A","nome":"Curso Superior de Tecnologia em Biotecnologia - Campus Palotina"},{"codigo":"68B","nome":"Curso de Ciências Biológicas - Gestão Ambiental - Bacharelado - Campus Palotina"},{"codigo":"108A","nome":"Curso de Agronomia - Campus Palotina"},{"codigo":"25B","nome":"Curso de Medicina Veterinária Palotina - Diurno"},{"codigo":"68C","nome":"Curso de Ciências Biológicas - Gestão Ambiental - Bacharelado - Campus Palotina"},{"codigo":"156A","nome":"Licenciatura em Computação - Campus Palotina"},{"codigo":"157A","nome":"Licenciatura em Ciências Exatas - Campus Palotina"},{"codigo":"157B","nome":"Licenciatura em Ciências Exatas - Campus Palotina"},{"codigo":"157C","nome":"Licenciatura em Ciências Exatas - Campus Palotina"},{"codigo":"158A","nome":"Engenharia de Aquicultura - Campus Palotina"},{"codigo":"159A","nome":"Engenharia de Energias Renováveis"},{"codigo":"166A","nome":"Engenharia de Aquicultura - Campus Palotina"},{"codigo":"95a","nome":"Licenciatura em Artes Visuais"}]
\ No newline at end of file
[{"nome":"Planejamento e Administração Escolar","codigo":"deplae","setorCod":"educacao"},{"nome":"Gestão de Permanência","codigo":"GP","setorCod":"PRAE"},{"nome":"Prática de Ensino","codigo":"dtpen","setorCod":"educacao"},{"nome":"Administração","codigo":"administracao","setorCod":"sociais_aplicadas"},{"nome":"Física","codigo":"fisica","setorCod":"exatas"},{"nome":"Idiomas Sem Fronteira","codigo":"idiomas-sem-fronteira","setorCod":"celin"},{"nome":"Engenharia Ambiental","codigo":"engenharia_ambiental","setorCod":"tecnologia"},{"nome":"Engenharia de Bioprocessos e Biotecnologia","codigo":"engenharia_de_bioprocessos_e_biotecnologia","setorCod":"tecnologia"},{"nome":"Coordenação do Curso de Graduação em Fisioterapia","codigo":"fisioterapia","setorCod":"biologica"},{"nome":"Botânica","codigo":"botanica","setorCod":"biologica"},{"nome":"Pós-graduação em Matemática","codigo":"posgraduacao_em_matematica","setorCod":"exatas"},{"nome":"Pós Graduação em Engenharia de Produção","codigo":"PPGEngProd","setorCod":"tecnologia"},{"nome":"Coordenação do Curso de Graduação em Educação Física","codigo":"educacao_fisica2","setorCod":"biologica"},{"nome":"Química","codigo":"quimica","setorCod":"exatas"},{"nome":"Estatística","codigo":"estatistica","setorCod":"exatas"},{"nome":"PIPE","codigo":"TEM","setorCod":"exatas"},{"nome":"Especialização em Engenharia da Produção","codigo":"EspEP","setorCod":"tecnologia"},{"nome":"Psicologia","codigo":"HP","setorCod":"HP"},{"nome":"Informática","codigo":"informatica","setorCod":"exatas"},{"nome":"Expressão Gráfica","codigo":"expressao_grafica","setorCod":"exatas"},{"nome":"Coordenação do Curso de Graduação em Ciências Biológicas","codigo":"ciencias_biologicas","setorCod":"biologica"},{"nome":"Engenharia Elétrica","codigo":"engenharia_eletrica","setorCod":"tecnologia"},{"nome":"Transportes","codigo":"transportes","setorCod":"tecnologia"},{"nome":"Fisiologia","codigo":"fisiologia","setorCod":"biologica"},{"nome":"Farmacologia","codigo":"farmacologia","setorCod":"biologica"},{"nome":"Hidráulica e Saneamento","codigo":"hidraulica_e_saneamento","setorCod":"tecnologia"},{"nome":"Matemática","codigo":"matematica","setorCod":"exatas"},{"nome":"Anatomia","codigo":"anatomia","setorCod":"biologica"},{"nome":"Ciências Agronômicas - Palotina","codigo":"ciencias_agronomicas_-_palotina","setorCod":"palotina"},{"nome":"Ciências Veterinárias - Palotina","codigo":"ciencias_veterinarias_-_palotina","setorCod":"palotina"},{"nome":"Geografia","codigo":"geografia","setorCod":"terra"},{"nome":"Coordenação do Curso de Graduação em Biomedicina","codigo":"biomedicina","setorCod":"biologica"},{"nome":"Patologia Básica","codigo":"patologia_basica","setorCod":"biologica"},{"nome":"Departamento de Sociais e Humanas - Palotina","codigo":"sociais_e_humanas_-_palotina","setorCod":"palotina"},{"nome":"Engenharia Química","codigo":"engenharia_quimica","setorCod":"tecnologia"},{"nome":"Departamento de Zootecnia - Palotina","codigo":"zootecnia_-_palotina","setorCod":"palotina"},{"nome":"Celin","codigo":"celin","setorCod":"celin"},{"nome":"Engenharias e Exatas - Palotina","codigo":"engenharias_e_exatas_-_palotina","setorCod":"palotina"},{"nome":"Engenharia de Produção","codigo":"engenharia_de_producao","setorCod":"tecnologia"},{"nome":"Palotina","codigo":"palotina","setorCod":"palotina"},{"nome":"Bioquímica e Biologia Molecular","codigo":"bioquimica_e_biologia_molecular","setorCod":"biologica"},{"nome":"ProfMat","codigo":"profmat","setorCod":"exatas"},{"nome":"Prevenção e Reabilitação em Fisioterapia","codigo":"prevencao_e_reabilitacao_em_fisioterapia","setorCod":"biologica"},{"nome":"Construção Civil","codigo":"construcao_civil","setorCod":"tecnologia"},{"nome":"Biodiversidade - Palotina","codigo":"biodiversidade_-_palotina","setorCod":"palotina"},{"nome":"Biociências - Palotina","codigo":"biociencias_-_palotina","setorCod":"palotina"},{"nome":"Genética","codigo":"genetica","setorCod":"biologica"},{"nome":"Educação Física","codigo":"educacao_fisica","setorCod":"biologica"},{"nome":"Pós-Graduação em Engenharia Elétrica","codigo":"pos-graduacao_em_engenharia_eletrica","setorCod":"tecnologia"},{"nome":"Zoologia","codigo":"zoologia","setorCod":"biologica"},{"nome":"Arquitetura e Urbanismo","codigo":"arquitetura_e_urbanismo","setorCod":"tecnologia"},{"nome":"Biologia Celular","codigo":"biologia_celular","setorCod":"biologica"},{"nome":"Engenharia Mecânica","codigo":"engenharia_mecanica","setorCod":"tecnologia"},{"nome":"Geomática","codigo":"geomatica","setorCod":"terra"},{"nome":"Geologia","codigo":"geologia","setorCod":"terra"}]
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
[{"codigo":"exatas","nome":"Ciências Exatas","website":"http://www.exatas.ufpr.br/portal/","email":"exatas@ufpr.br"},{"codigo":"tecnologia","nome":"Tecnologia","website":"http://www.terra.ufpr.br/portal/","email":null},{"codigo":"terra","nome":"Ciências da Terra","website":"http://www.tecnologia.ufpr.br/portal/","email":null},{"codigo":"biologica","nome":"Ciências Biológicas","website":"http://www.bio.ufpr.br","email":null},{"codigo":"celin","nome":"Celin","website":"http://www.tecnologia.ufpr.br/portal/","email":null},{"codigo":"educacao","nome":"Educação","website":null,"email":null},{"codigo":"associacao_de_clubes","nome":"Associação de Clubes UFPR","website":null,"email":null},{"codigo":"PRAE","nome":"Pró-Reitoria de Gestão de Pessoas","website":null,"email":null},{"codigo":"HP","nome":"Humanas","website":null,"email":null},{"codigo":"palotina","nome":"Palotina","website":null,"email":null},{"codigo":"sociais_aplicadas","nome":"Ciências Sociais Aplicadas","website":null,"email":null}]
\ No newline at end of file
......@@ -43,7 +43,7 @@
* codigo : **string** `Required`, `id`
* carga_horaria : **number** `Required`, default=`0`
* duracao : **string** `Required`, default=`semestral`
* modalidade : **string** `Required`, default=`presencial`
* modalidade : **string** default=`presencial`
* _id : **number** `generated`
- ACLs
......@@ -153,7 +153,10 @@
## Curso
- Public: `True`
- Description: This model extend `Orgao`
- Attributes
- Attributes `idInjection`=`false`
* nome : **string**
* codigo : **string** `Required`, `id`
* _id : **number** `generated`
- ACLs
* All permissions not specified is `DENY`
* **$everyone** ROLE have all READ operations
......@@ -182,9 +185,12 @@
## Setor
- Public: `True`
- Description: This model extend `Orgao`
- Attributes
- Attributes `idInjection`=`false`
* website : **string**
* email : **string** `Required`
* email : **string**
* codigo : **string** `Required`, `id`
* _id : **number** `generated`
* nome : **string** `Required`
- ACLs
* All permissions not specified is `DENY`
* **admin** ROLE have all EXECUTE, READ and WRITE operations
......
......@@ -2,11 +2,24 @@
"name": "Curso",
"plural": "cursos",
"base": "Orgao",
"idInjection": true,
"idInjection": false,
"options": {
"validateUpsert": true
},
"properties": {},
"properties": {
"nome": {
"type": "string"
},
"codigo": {
"type": "string",
"id": true,
"required": true
},
"_id": {
"type": "number",
"generated": true
}
},
"validations": [],
"relations": {
"bloco": {
......
......@@ -29,7 +29,6 @@
},
"modalidade": {
"type": "String",
"required": true,
"length": 64,
"precision": null,
"scale": null,
......
......@@ -2,7 +2,7 @@
"name": "Setor",
"plural": "setores",
"base": "Orgao",
"idInjection": true,
"idInjection": false,
"options": {
"validateUpsert": true
},
......@@ -11,8 +11,20 @@
"type": "string"
},
"email": {
"type": "string"
},
"nome": {
"type": "string",
"required": true
},
"codigo": {
"type": "string",
"id": true,
"required": true
},
"_id": {
"type": "number",
"generated": true
}
},
"validations": [],
......
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