ACADEMICO = {} ACADEMICO['SISTEMA'] = 'q_academico' ACADEMICO['DATABASE_NAME'] = 'SISTEMA_ACADEMICO' ACADEMICO['DATABASE_USER'] = 'consultasuap' ACADEMICO['DATABASE_PASSWORD'] = '<SENHA>' ACADEMICO['DATABASE_HOST'] = 'bdacademico.ifce.edu.br:1433'
No Q-Acadêmico:
SELECT cod_instituicao AS codigo, desc_instituicao AS nome, sigla_instituicao AS sigla FROM dbo.INSTITUICOES ORDER BY cod_instituicao;
codigo | nome | sigla |
---|---|---|
1 | CAMPUS FORTALEZA | IFCE-FORTALEZA |
2 | CAMPUS CEDRO | IFCE-CEDRO |
3 | CAMPUS JUAZEIRO DO NORTE | IFCE-JUAZEIRO |
12 | CAMPUS MARACANAÚ | IFCE-MARACANAÚ |
13 | CAMPUS QUIXADÁ | IFCE-QUIXADÁ |
14 | CAMPUS SOBRAL | IFCE-SOBRAL |
24 | CAMPUS LIMOEIRO DO NORTE | IFCE-LIMOEIRO |
25 | CAMPUS IGUATU | IFCE-IGUATU |
26 | CAMPUS CRATO | IFCE CRATO |
47 | CAMPUS CANINDÉ | IFCE-CANINDÉ |
67 | CAMPUS ACARAÚ | IFCE-ACARAÚ |
68 | CAMPUS TAUÁ | IFCE-TAUÁ |
69 | CAMPUS CRATEÚS | IFCE-CRATEÚS |
77 | CAMPUS TIANGUÁ | IFCE-TIANGUÁ |
87 | CAMPUS ARACATI | IFCE-ARACATI |
97 | CAMPUS BATURITÉ | IFCE-BATURITÉ |
107 | CAMPUS JAGUARIBE | IFCE-JAGUARIBE |
108 | CAMPUS MORADA NOVA | IFCE-MORADA |
109 | CAMPUS TABULEIRO DO NORTE | IFCE-TABULEIRO |
110 | CAMPUS UBAJARA | IFCE-UBAJARA |
111 | CAMPUS CAUCAIA | IFCE-CAUCAIA |
112 | CAMPUS CAMOCIM | IFCE-CAMOCIM |
113 | CAMPUS UMIRIM | IFCE-UMIRIM |
124 | REITORIA | IFCE-REITORIA |
125 | CAMPUS GUARAMIRANGA | IFCE-GUARAMIRANGA |
145 | CAMPUS JAGUARUANA | IFCE-JAGUARUANA |
155 | CAMPUS ITAPIPOCA | IFCE-ITAPIPOCA |
176 | CAMPUS PECÉM | IFCE-PECÉM |
197 | CAMPUS PARACURU | IFCE-PARACURU |
207 | CAMPUS BOA VIAGEM | IFCE-BOA VIAGEM |
No Q-Acadêmico:
select * from SITUACOES_TABELAS where NOME_TABELA = 'CURSOS' AND NOME_COLUNA = 'MODALIDADE_CURSO';
NOME_TABELA | NOME_COLUNA | VALOR | DESCRICAO |
---|---|---|---|
CURSOS | MODALIDADE_CURSO | 0 | Integrado |
CURSOS | MODALIDADE_CURSO | 1 | Concomitante |
CURSOS | MODALIDADE_CURSO | 2 | Subsequente |
CURSOS | MODALIDADE_CURSO | 3 | Bacharelado |
CURSOS | MODALIDADE_CURSO | 4 | Tecnologia |
CURSOS | MODALIDADE_CURSO | 5 | Licenciatura |
CURSOS | MODALIDADE_CURSO | 8 | Aperfeiçoamento |
CURSOS | MODALIDADE_CURSO | 9 | Especialização |
CURSOS | MODALIDADE_CURSO | 10 | Residência Médica |
CURSOS | MODALIDADE_CURSO | 11 | Mestrado |
CURSOS | MODALIDADE_CURSO | 12 | Mestrado Profissional |
CURSOS | MODALIDADE_CURSO | 13 | Doutorado |
CURSOS | MODALIDADE_CURSO | 14 | Pós-Doutorado |
CURSOS | MODALIDADE_CURSO | 15 | Propedêutico |
CURSOS | MODALIDADE_CURSO | 16 | Fic |
SELECT c.cod_curso AS codigo, c.desc_curso AS nome, c.cod_curso_matricula AS cod_turma, c.cod_instituicao AS instituicao, c.cod_curso_habilitado AS curso_habilitado, c.desc_historico AS descricao_historico, c.autorizacao AS autorizacao, c.reconhecimento AS reconhecimento, (select top 1 m.n_periodos from matrizes_curriculares m where m.cod_curso = c.cod_curso order by cod_matriz_curricular desc) AS numero_periodos, c.dt_inicio AS data_inicio, c.exige_enade AS exige_enade, c.modalidade_curso as modalidade_curso FROM cursos c LEFT JOIN turnos t ON c.COD_TURNO = t.COD_TURNO where c.cod_instituicao <=124 ORDER BY c.desc_curso;
https://gist.github.com/rodrigosantosbr/aacbc01749318b9093f8aa33a9f55987
Realizar a consulta para verificar se há algum aluno em algum curso onde este curso está sem uma diretoria ligada a ele. segue o código para saber o retorno do valor diretoria_id:
select p.nome, pf.cpf, ea.matricula, ec.descricao, ec.descricao_historico, ec.diretoria_id from edu_aluno ea, edu_cursocampus ec, pessoa_fisica pf, pessoa p where p.id = pf.pessoa_ptr_id and pf.pessoa_ptr_id = ea.pessoa_fisica_id and ea.curso_campus_id = ec.id and diretoria_id is null
Realizar a execução por ordem obrigatoriamente decrescente dos seguintes scripts.
python manage.py edu_importar_dados 2016 python manage.py edu_importar_dados 2015 python manage.py edu_importar_dados 2014 python manage.py edu_importar_dados 2013
Chave do erro | Traceback | Solução |
---|---|---|
KeyError: 4770 | Traceback (most recent call last): File "/opt/suap/djtools/management/commands/__init__.py", line 33, in execute super(BaseCommandPlus, self).execute(args,options) ... File "/opt/suap/edu/management/commands/edu_importar_dados.py", alunos_criados, alunos_atualizados = dao.importar_alunos( prefixo_matricula=prefixo_matricula,verbose=verbose) File "/opt/suap/edu/q_academico.py", line 412, in importar_alunos curso_campus = cache_cursos[str(m['curso_codigo'])].id, KeyError: '4770' Command edu_importar_dados FAILED | Erro indicando que o curso está no Q-Acadêmico mas não está no SUAP, é necessário fazer a importação da estrutura antes dos alunos. No arquivo edu_importar_dados.py. comentar da linha 31(alunos_criados...) até a 42 (historico.save()...) e descomentar da linha 25 (dao.importar_diretorias()) até a linha 29 (dao.importar_polos_ead...) . Ao término da operação desfazer as ações de comentários indicada nesta solução alterando para o estado anterior |
KeyError: 'nome' | Traceback (most recent call last): File "/opt/suap/djtools/management/commands/__init__.py", line 33, in execute super(BaseCommandPlus, self).execute(*args, **options) File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 338, in execute output = self.handle(*args, **options) ... File "/opt/suap/edu/management/commands/edu_importar_dados.py", line 29, in handle dao.importar_polos_ead(verbose) File "/opt/suap/edu/q_academico.py", line 236, in importar_polos_ead print row['nome'].encode('latin-1') KeyError: 'nome' | Linha de código com problema de encoding, foi necessário comentá-la pois é um comando apenas de print na linha 236. Por garantia a linha 209 também foi comentada pois possui o mesmo comando. |
KeyError: 'modalidade.id' | Traceback (most recent call last): File "/opt/suap/djtools/management/commands/__init__.py", line 33, in execute super(BaseCommandPlus, self).execute(*args, **options) File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 399, in execute output = self.handle(*args, **options) File "/usr/local/lib/python2.7/dist-packages/newrelic-2.64.0.48/newrelic/api/function_trace.py", line 104, in literal_wrapper return wrapped(*args, **kwargs) File "/opt/suap/edu/management/commands/edu_importar_dados.py", line 33, in handle alunos_criados, alunos_atualizados = dao.importar_alunos(prefixo_matricula=prefixo_matricula,verbose=verbose) File "/opt/suap/edu/q_academico.py", line 486, in importar_alunos novo_aluno.definir_ano_let_prev_conclusao() File "/opt/suap/edu/models.py", line 4648, in definir_ano_let_prev_conclusao modalidade_id = self.curso_campus.modalidade.id AttributeError: 'NoneType' object has no attribute 'id' | Existem cursos sem modalidade, é preciso importar as modalidades dos cursos na tabela cursos do Qacademico. |