Atualização para IFRN/16.1
Passo 1
Dados gerais
Branch Criada no IFCE | atualiza_suap_ifrnmaster |
Tag Base do IFRN | 16.1 |
Data de início da atualização | 22/02/2016 |
Data de fim da atualização | - |
Tag Criada ao Final | ifce7.0 (22/02/2016) |
Tag Antes da atualização | ifce6.0 |
OBS | Foi feita atualização do postgresql 9.3 para 9.4 |
Pacotes (/opt/suap/deploy/requirements.txt)
PACOTE | VERSÃO | - | PACOTE | VERSÃO |
---|---|---|---|---|
Django | 1.7.7 | - | six | 1.9.0 |
django-ckeditor | 4.4.7 | - | django_extensions | 1.2.5 |
django-localflavor | 1.0 | - | django_pagination | 1.0.7 |
cython | 0.19.2 | - | feedparser | 5.1.3 |
gunicorn | 18.0 | - | ipdb | 0.8 |
mechanize | 0.2.5 | - | Pillow | 2.2.1 |
psycopg2 | 2.5.1 | - | pypdf | 1.13 |
pymssql | 2.0.1 | - | python-ldap | 2.3.13 |
python-dateutil | ? | - | reportlab | 2.5 |
suds | 0.4 | - | xlwt | 0.7.5 |
xlrd | 0.9.2 | - | xlutils | 1.7.1 |
simplejson | 3.3.1 | - | django-tables2 | 0.16.0 |
django-tables2-reports | 0.0.10 | - | qrcode | 4.0.4 |
pisa | 3.0.33 | - | docutils | 0.11 |
sphinx | 1.2.2 | - | pycrypto | ? |
pylint | ? | - | djangorestframework | 2.4.4 |
django-rest-swagger | 0.2.0 | - | python-magic | ? |
Use o comando pip install -r deploy/requirements.txt para instalar a partir do arquivo gerado pelo pip freeze estável deles.
Passo 2
Criar a tag atualiza_suap_ifrnmaster2
git checkout -b atualiza_suap_ifrnmaster2 git remote add suapifrn http://gitlab.ifrn.edu.br/cosinf/suap.git
Passo 3
Baixar as atualizações do IFRN
git fetch suapifrn
Username for 'https://gitlab.ifrn.edu.br':
Password for 'https://ifce@gitlab.ifrn.edu.br':
Passo 4
Saída do fetch:
From http://gitlab.ifrn.edu.br/cosinf/suap * [new branch] AutocompleteWidget-ext_combo_template -> suapifrn/AutocompleteWidget-ext_combo_template * [new branch] Parametrizacao_Referencia_Instituicao -> suapifrn/Parametrizacao_Referencia_Instituicao * [new branch] ae-1 -> suapifrn/ae-1 * [new branch] ae-2 -> suapifrn/ae-2 * [new branch] ae-ajuste-rel-transp -> suapifrn/ae-ajuste-rel-transp * [new branch] ae-coordenador-4 -> suapifrn/ae-coordenador-4 * [new branch] ae-reservas -> suapifrn/ae-reservas * [new branch] ajuste_layout_carteira_funcional -> suapifrn/ajuste_layout_carteira_funcional * [new branch] ajustes_avaliacao_avaliador -> suapifrn/ajustes_avaliacao_avaliador * [new branch] almoxarifado-debug -> suapifrn/almoxarifado-debug * [new branch] almoxarifado_valor_medio -> suapifrn/almoxarifado_valor_medio * [new branch] app_pesquisa -> suapifrn/app_pesquisa * [new branch] app_pesquisa_testes -> suapifrn/app_pesquisa_testes * [new branch] app_seguro_aula_campo -> suapifrn/app_seguro_aula_campo * [new branch] auditoria-cgu -> suapifrn/auditoria-cgu * [new branch] avaliacao_error -> suapifrn/avaliacao_error * [new branch] central-servicos-indicador-tempo-atendimento-uo -> suapifrn/central-servicos-indicador-tempo-atendimento-uo * [new branch] central-servicos-novos-recursos -> suapifrn/central-servicos-novos-recursos * [new branch] central-servicos-remover-base-conhecimento -> suapifrn/central-servicos-remover-base-conhecimento * [new branch] chamado1057 -> suapifrn/chamado1057 * [new branch] chamado1573 -> suapifrn/chamado1573 * [new branch] chamado1708 -> suapifrn/chamado1708 * [new branch] chamado1719 -> suapifrn/chamado1719 * [new branch] chamado1746 -> suapifrn/chamado1746 * [new branch] chamado_13350 -> suapifrn/chamado_13350 * [new branch] compras -> suapifrn/compras * [new branch] comum-midia -> suapifrn/comum-midia * [new branch] correcao-cnpq_importar -> suapifrn/correcao-cnpq_importar * [new branch] corrigir-transacoes -> suapifrn/corrigir-transacoes * [new branch] dev_controle_papel -> suapifrn/dev_controle_papel * [new branch] dev_estagio_probatorio -> suapifrn/dev_estagio_probatorio * [new branch] dev_titular -> suapifrn/dev_titular * [new branch] django18 -> suapifrn/django18 * [new branch] docs-adm-central-servicos-02 -> suapifrn/docs-adm-central-servicos-02 * [new branch] docs-adm-telefonia-01 -> suapifrn/docs-adm-telefonia-01 * [new branch] docs_pesquisa -> suapifrn/docs_pesquisa * [new branch] edu-admin-diario -> suapifrn/edu-admin-diario * [new branch] edu-ajuste-boletim -> suapifrn/edu-ajuste-boletim * [new branch] edu-ajuste-colacao-grau -> suapifrn/edu-ajuste-colacao-grau * [new branch] edu-ajuste-integralizacao -> suapifrn/edu-ajuste-integralizacao * [new branch] edu-ajuste-migracao -> suapifrn/edu-ajuste-migracao * [new branch] edu-ajuste-minicurso -> suapifrn/edu-ajuste-minicurso * [new branch] edu-ajuste-no-form-prof -> suapifrn/edu-ajuste-no-form-prof * [new branch] edu-ajustes-alessandro -> suapifrn/edu-ajustes-alessandro * [new branch] edu-ajustes-hoje -> suapifrn/edu-ajustes-hoje * [new branch] edu-ajustes-usabilidade-diario -> suapifrn/edu-ajustes-usabilidade-diario * [new branch] edu-ajustes0508 -> suapifrn/edu-ajustes0508 * [new branch] edu-alteracao-estrutura -> suapifrn/edu-alteracao-estrutura * [new branch] edu-alunos-dados-incompletos -> suapifrn/edu-alunos-dados-incompletos * [new branch] edu-avaliacao-integrada -> suapifrn/edu-avaliacao-integrada * [new branch] edu-bug-transferencia-diario -> suapifrn/edu-bug-transferencia-diario * [new branch] edu-chamado-11302 -> suapifrn/edu-chamado-11302 * [new branch] edu-chamado-11662 -> suapifrn/edu-chamado-11662 * [new branch] edu-commando-notificacao-pendencias -> suapifrn/edu-commando-notificacao-pendencias * [new branch] edu-componente-dinamico -> suapifrn/edu-componente-dinamico * [new branch] edu-coordenador-renovacao-matricula -> suapifrn/edu-coordenador-renovacao-matricula * [new branch] edu-correcao-bug -> suapifrn/edu-correcao-bug * [new branch] edu-correcao-index -> suapifrn/edu-correcao-index * [new branch] edu-correcao-migracao -> suapifrn/edu-correcao-migracao * [new branch] edu-correcao-prorrogacao-etapa -> suapifrn/edu-correcao-prorrogacao-etapa * [new branch] edu-correcao-registrar-chamada -> suapifrn/edu-correcao-registrar-chamada * [new branch] edu-data-prova -> suapifrn/edu-data-prova * [new branch] edu-diretorios-documentos -> suapifrn/edu-diretorios-documentos * [new branch] edu-dispensar-enade -> suapifrn/edu-dispensar-enade * [new branch] edu-entregar-etapa -> suapifrn/edu-entregar-etapa * [new branch] edu-estagios -> suapifrn/edu-estagios * [new branch] edu-fotos-lote -> suapifrn/edu-fotos-lote * [new branch] edu-horario-aula-aluno -> suapifrn/edu-horario-aula-aluno * [new branch] edu-importar-componentes -> suapifrn/edu-importar-componentes * [new branch] edu-indicadores -> suapifrn/edu-indicadores * [new branch] edu-libreoffice -> suapifrn/edu-libreoffice * [new branch] edu-master -> suapifrn/edu-master * [new branch] edu-minicursos -> suapifrn/edu-minicursos * [new branch] edu-painel-controle -> suapifrn/edu-painel-controle * [new branch] edu-processo-seletivo -> suapifrn/edu-processo-seletivo * [new branch] edu-prorrogaca-lancamento-etapa -> suapifrn/edu-prorrogaca-lancamento-etapa * [new branch] edu-questionarios -> suapifrn/edu-questionarios * [new branch] edu-recuperacao-bimestral -> suapifrn/edu-recuperacao-bimestral * [new branch] edu-relatorio-alunos -> suapifrn/edu-relatorio-alunos * [new branch] edu-remocao-diario -> suapifrn/edu-remocao-diario * [new branch] edu-remover-disabled-prof -> suapifrn/edu-remover-disabled-prof * [new branch] edu-requisitos-conclusao -> suapifrn/edu-requisitos-conclusao * [new branch] edu-retore -> suapifrn/edu-retore * [new branch] edu-segunda-via-diploma -> suapifrn/edu-segunda-via-diploma * [new branch] edu-sugestoes-matheus -> suapifrn/edu-sugestoes-matheus * [new branch] edu-timetables -> suapifrn/edu-timetables * [new branch] edu-transferencia-turma -> suapifrn/edu-transferencia-turma * [new branch] edu_atividades_docentes -> suapifrn/edu_atividades_docentes * [new branch] edu_nome_social -> suapifrn/edu_nome_social * [new branch] edu_retirar_seguro_aula_campo -> suapifrn/edu_retirar_seguro_aula_campo * [new branch] elemento-despesa -> suapifrn/elemento-despesa * [new branch] envio_protocolo -> suapifrn/envio_protocolo * [new branch] eriton -> suapifrn/eriton * [new branch] error_pesquisa -> suapifrn/error_pesquisa * [new branch] etiqueta_protocolo -> suapifrn/etiqueta_protocolo * [new branch] eventos -> suapifrn/eventos * [new branch] files -> suapifrn/files * [new branch] financeiro-importacao -> suapifrn/financeiro-importacao * [new branch] financeiro-ir_dirf -> suapifrn/financeiro-ir_dirf * [new branch] formato_valor_empenho -> suapifrn/formato_valor_empenho * [new branch] frota-avaliacao -> suapifrn/frota-avaliacao * [new branch] frota-correcao -> suapifrn/frota-correcao * [new branch] frota_081215 -> suapifrn/frota_081215 * [new branch] frota_ajustes -> suapifrn/frota_ajustes * [new branch] google_apps_sso -> suapifrn/google_apps_sso * [new branch] gt-patrimonio -> suapifrn/gt-patrimonio * [new branch] i2146 -> suapifrn/i2146 * [new branch] ifpb_edu_recuperacao -> suapifrn/ifpb_edu_recuperacao * [new branch] ifpb_importador -> suapifrn/ifpb_importador * [new branch] impressao_processo -> suapifrn/impressao_processo * [new branch] index -> suapifrn/index * [new branch] ir_dirf -> suapifrn/ir_dirf * [new branch] issue_2196 -> suapifrn/issue_2196 * [new branch] issue_2226 -> suapifrn/issue_2226 * [new branch] layout -> suapifrn/layout * [new branch] layout-index -> suapifrn/layout-index * [new branch] layout-saude -> suapifrn/layout-saude * [new branch] master -> suapifrn/master * [new branch] middleware-servidor-sem-setor -> suapifrn/middleware-servidor-sem-setor * [new branch] move_arquivos -> suapifrn/move_arquivos * [new branch] notificar-grupo -> suapifrn/notificar-grupo * [new branch] nup -> suapifrn/nup * [new branch] orcamento-descentralizacao -> suapifrn/orcamento-descentralizacao * [new branch] patrimonio -> suapifrn/patrimonio * [new branch] patrimonio-elemento-despesa -> suapifrn/patrimonio-elemento-despesa * [new branch] patrimonio-novo-fluxo_teste -> suapifrn/patrimonio-novo-fluxo_teste * [new branch] patrimonio-plano-contas -> suapifrn/patrimonio-plano-contas * [new branch] patrimonio_docs -> suapifrn/patrimonio_docs * [new branch] pesquisa_180116 -> suapifrn/pesquisa_180116 * [new branch] pesquisa_281215 -> suapifrn/pesquisa_281215 * [new branch] pesquisa_novo_app -> suapifrn/pesquisa_novo_app * [new branch] pessoa_interessada_setor -> suapifrn/pessoa_interessada_setor * [new branch] planejamento-ajuste -> suapifrn/planejamento-ajuste * [new branch] portaria_2 -> suapifrn/portaria_2 * [new branch] processo_eletronico -> suapifrn/processo_eletronico * [new branch] processo_recaptcha -> suapifrn/processo_recaptcha * [new branch] progressao_bug -> suapifrn/progressao_bug * [new branch] projeto_suapdev -> suapifrn/projeto_suapdev * [new branch] projetos_edital_cultura -> suapifrn/projetos_edital_cultura * [new branch] projetos_extensao -> suapifrn/projetos_extensao * [new branch] projetos_recurso -> suapifrn/projetos_recurso * [new branch] protocolo-melhorias -> suapifrn/protocolo-melhorias * [new branch] protocolo_formato_numero_15_4 -> suapifrn/protocolo_formato_numero_15_4 * [new branch] protocolo_interessado_setor -> suapifrn/protocolo_interessado_setor * [new branch] protocolo_interessado_setor2 -> suapifrn/protocolo_interessado_setor2 * [new branch] reserva-sala-ajustes -> suapifrn/reserva-sala-ajustes * [new branch] reserva-sala-ajustes-2 -> suapifrn/reserva-sala-ajustes-2 * [new branch] reserva-sala-ajustes-3 -> suapifrn/reserva-sala-ajustes-3 * [new branch] reserva-sala-tarefa-1815 -> suapifrn/reserva-sala-tarefa-1815 * [new branch] rh_ajuste_avaliador -> suapifrn/rh_ajuste_avaliador * [new branch] rh_formatacao_moeda_rubrica -> suapifrn/rh_formatacao_moeda_rubrica * [new branch] rh_solicitacao_cracha -> suapifrn/rh_solicitacao_cracha * [new branch] rsc_ajuste_pagamento -> suapifrn/rsc_ajuste_pagamento * [new branch] rsc_bug_avaliadores_extras -> suapifrn/rsc_bug_avaliadores_extras * [new branch] rsc_correcao_qtd_item -> suapifrn/rsc_correcao_qtd_item * [new branch] rsc_filtro_avaliacao_pagamento -> suapifrn/rsc_filtro_avaliacao_pagamento * [new branch] saude-2 -> suapifrn/saude-2 * [new branch] saude-3 -> suapifrn/saude-3 * [new branch] saude-4 -> suapifrn/saude-4 * [new branch] saude-ajustes -> suapifrn/saude-ajustes * [new branch] saude-enfermagem -> suapifrn/saude-enfermagem * [new branch] saude-nutricao -> suapifrn/saude-nutricao * [new branch] saude-odontologia -> suapifrn/saude-odontologia * [new branch] saude_170216 -> suapifrn/saude_170216 * [new branch] scroll-infinito-autocomplete -> suapifrn/scroll-infinito-autocomplete * [new branch] servidor_sem_setor -> suapifrn/servidor_sem_setor * [new branch] sica_ifrn -> suapifrn/sica_ifrn * [new branch] simple_tag -> suapifrn/simple_tag * [new branch] site -> suapifrn/site * [new branch] squash-migrations -> suapifrn/squash-migrations * [new branch] suap-autoenv -> suapifrn/suap-autoenv * [new branch] suap-bugs -> suapifrn/suap-bugs * [new branch] suap-gestao -> suapifrn/suap-gestao * [new branch] suap-gestao-doc-visao2 -> suapifrn/suap-gestao-doc-visao2 * [new branch] suap-midia1 -> suapifrn/suap-midia1 * [new branch] tarefa-1113 -> suapifrn/tarefa-1113 * [new branch] tarefa-2022 -> suapifrn/tarefa-2022 * [new branch] tarefa_1131 -> suapifrn/tarefa_1131 * [new branch] tarefa_1497 -> suapifrn/tarefa_1497 * [new branch] test-gitlab -> suapifrn/test-gitlab * [new branch] test-suap -> suapifrn/test-suap * [new branch] teste -> suapifrn/teste * [new branch] testes-gitlab -> suapifrn/testes-gitlab * [new branch] titular_correcao_tamanho_campos -> suapifrn/titular_correcao_tamanho_campos * [new branch] treinamento_suap -> suapifrn/treinamento_suap * [new branch] unaccent -> suapifrn/unaccent * [new tag] 16.1 -> 16.1
Passo 5
Após corrigir os conflitos, comitar e enviar a branch
git commit -am "resolver conflitos" git push origin atualiza_suap_ifrnmaster
Passo 6
sudo pip install xhtml2pdf
Passo 7
sudo python manage.py sync
Passo 8
Problemas:
django.db.utils.ProgrammingError: relation "progressoes_avaliacaomodelo" already exists
Solução:
drop table progressoes_avaliacaoservidorcriterio; drop table progressoes_avaliacaomodelocriterio; drop table progressoes_avaliacaomodelo; drop table progressoes_avaliacaoservidor;
Passo 9
Rodar:
python manage.py sync
Passo 10
Comentado a linha na migration edu/migrations/0064_auto_20151127_1440.py:
# migrations.RunPython(editar_atividade_complementar_deferida)
Passo 11
progressoes.0001_initial
KeyError: ('progressoes', u'avaliacaomodelo')
Deletada tabelas de AvalicaoModelo e referências:
progressoes_avaliacaomodelo
progressoes_avaliacaomodelocriterio
Passo 11
Cnpq: File "/opt/suap/cnpq/migrations/0012_auto_20150811_1624.py", line 11, in migrate
registro_patente.curriculo = registro_patente.software_set.all()[0].curriculo
Solução: Adicionado coluna (tipo timestamp with zone) manualmente a tabela
Passo 12
migration projetos.0046_auto_20151001_1152 deve ficar antes da projetos.0040_atualizar_coordenador_projeto
Inserir linha da migration no Banco para projetos 001_initial
Adicionada coluna {monitor_id integer null} na tabela projetos_projeto
Remover coluna monitor_id (em produção não fazer)
Alternativa, mover o código da 46 para a 40 e comentar a 46
Passo 13
projetos.0040_atualizar_coordenador_projeto
Cannot ALTER TABLE “projetos_projeto” because it has pending trigger events
Comentada a linha que dava o erro.
Passo 14
Migration 001_initial do módulo de clipping.
Rodar seguinte sql:
Insert into django_migrations (app,name,applied) VALUES ('clipping','0001_initial','2016-04-04 08:00:00.0000000-03');
Passo 15
Problema ao executar migration 0029_auto_20160107_0911.py:
Deve-se remover a view: vw_professor_sisproen e depois de rodadas as migrations cria-lá novamente rodando o seguinte script:
CREATE OR REPLACE VIEW vw_professor_sisproen AS SELECT pessoa_fisica.pessoa_ptr_id AS id, pessoa_fisica.cpf, pessoa_fisica.rg, to_char(pessoa_fisica.nascimento_data::timestamp with time zone, 'DD-MM-YYYY'::text) AS data_nascimento, pessoa_fisica.sexo, pessoa_fisica.username AS matricula_siape, pessoa.nome, pessoa.email_secundario AS email, pessoa.excluido FROM edu_professor JOIN pessoa_fisica ON edu_professor.pessoa_fisica_id = pessoa_fisica.pessoa_ptr_id JOIN pessoa ON pessoa_fisica.pessoa_ptr_id = pessoa.id ORDER BY pessoa.nome; ALTER TABLE vw_professor_sisproen OWNER TO suap;
Remover também a view: vw_cafe_conta e depois de rodadas as migrations, executar:
CREATE OR REPLACE VIEW vw_cafe_conta AS SELECT pf.cpf, s.matricula, au.password AS senha, 'md5' AS algoritmo, 'IFCE' AS dominio FROM servidor s LEFT JOIN pessoa_fisica pf ON s.funcionario_ptr_id = pf.pessoa_ptr_id LEFT JOIN auth_user au ON au.id = pf.user_id LEFT JOIN pessoa p ON pf.pessoa_ptr_id = p.id WHERE p.email_secundario::text <> ''::text AND p.email_secundario IS NOT NULL AND pf.cpf::text <> ''::text AND pf.cpf::text <> ' . . - '::text AND pf.cpf::text <> '___.___.___-__'::text; ALTER TABLE vw_cafe_conta OWNER TO suap;
Remover também a view: vw_cafe_email e depois de rodadas as migrations, executar:
CREATE OR REPLACE VIEW vw_cafe_email AS SELECT pf.cpf, p.email_secundario FROM edu_aluno e, pessoa_fisica pf, pessoa p WHERE e.situacao_id = 1 AND e.pessoa_fisica_id = pf.pessoa_ptr_id AND p.id = pf.pessoa_ptr_id AND pf.cpf::text <> ''::text AND pf.cpf::text <> ' . . - '::text AND pf.cpf::text <> '___.___.___-__'::text AND p.email_secundario::text <> ''::text AND p.email_secundario IS NOT NULL UNION SELECT pf.cpf, p.email AS email_secundario FROM servidor s LEFT JOIN pessoa_fisica pf ON s.funcionario_ptr_id = pf.pessoa_ptr_id LEFT JOIN pessoa p ON pf.pessoa_ptr_id = p.id WHERE s.excluido = false AND p.email_secundario::text <> ''::text AND p.email_secundario IS NOT NULL AND pf.cpf::text <> ''::text AND pf.cpf::text <> ' . . - '::text AND pf.cpf::text <> '___.___.___-__'::text; ALTER TABLE vw_cafe_email OWNER TO suap;
Remover também a view: vw_cafe_identificacao e depois de rodadas as migrations, executar:
CREATE OR REPLACE VIEW vw_cafe_identificacao AS SELECT p.nome, pf.cpf, pf.nascimento_data FROM edu_aluno e, pessoa_fisica pf, pessoa p WHERE e.situacao_id = 1 AND e.pessoa_fisica_id = pf.pessoa_ptr_id AND p.id = pf.pessoa_ptr_id AND pf.cpf::text <> ''::text AND pf.cpf::text <> ' . . - '::text AND pf.cpf::text <> '___.___.___-__'::text AND p.email_secundario::text <> ''::text AND p.email_secundario IS NOT NULL UNION SELECT p.nome, pf.cpf, pf.nascimento_data FROM servidor s LEFT JOIN pessoa_fisica pf ON s.funcionario_ptr_id = pf.pessoa_ptr_id LEFT JOIN pessoa p ON pf.pessoa_ptr_id = p.id WHERE p.email_secundario::text <> ''::text AND p.email_secundario IS NOT NULL AND pf.cpf::text <> ''::text AND pf.cpf::text <> ' . . - '::text AND pf.cpf::text <> '___.___.___-__'::text; ALTER TABLE vw_cafe_identificacao OWNER TO suap;
Remover também a view: vw_consulta_processo_servidor e depois de rodadas as migrations, executar:
CREATE OR REPLACE VIEW vw_consulta_processo_servidor AS SELECT p.data_cadastro, p.numero_processo, p.numero_documento, p.assunto, s.matricula, s.email_institucional, s.email_siape FROM protocolo_processo p, servidor s WHERE p.pessoa_interessada_id = s.funcionario_ptr_id; ALTER TABLE vw_consulta_processo_servidor OWNER TO suap;
Passo 16:
Problema ao executar migration rh.0031_auto_20160321_1021.py: ProgrammingError: permission denied to create extension “unaccent”
HINT: Must be superuser to create this extension. (“CREATE EXTENSION unaccent;”)
Solução: realizar o comando na máquina onde o servidor do postgre estiver instalado.
sudo apt-get install postgresql-contrib-9.4
depois pode-se criar manualmente pelo pg admin
CREATE EXTENSION IF NOT EXISTS unaccent; CREATE EXTENSION IF NOT EXISTS pg_trgm; SELECT unaccent('unaccent', upper('ródrigo'))
depois ir na árvore em extensions e escolher unaccent e pg_trgm (fazer isso com o usuário postgres)
passo 17
django.db.utils.OperationalError:
cannot ALTER TABLE “projetos_projeto” because it has pending trigger events
passo 18
Problema com usuário sem nome na tabela pessoa_física (first name e last name)
Remover os seguintes usuários da tabela de grupos e usuários:
DELETE FROM auth_user_groups WHERE user_id = 4055 OR user_id = 4056 OR user_id = 67; -- (usuários fantasmas da Geila, Mariana, Neila)
Select para saber os nomes fantasmas
SELECT * from auth_user where username !~* '[0-9]+' and (first_name is null or first_name = '') and (last_name is null or last_name = '') order by id
passo 19
Urls
Modificado arquivo patrimonio/urls.py
As urls de detalhamento de categoria:
(r'^detalhamento_categoria/(?P<categoria>(\d+[.])?\d+([.]\d+)?)/(?P<ano_final>\d+)/$', 'total_atual_categoria'), (r'^detalhamento_categoria/(?P<categoria>(\d+[.])?\d+([.]\d+)?)/(?P<ano_final>\d+)/(?P<campus>\d+)/$', 'total_atual_categoria'),
ERRO: coluna cnpq_curriculovittaelattes.data_extracao não existe
"edu_situacaomatricula_descricao_key" DETAIL: Key (descricao)=(Certificado ENEM) already exists
remover a constraint para ordenar depois coloca-la de volta
ALTER TABLE edu_situacaomatricula ADD CONSTRAINT edu_situacaomatricula_descricao_key UNIQUE(descricao);
update edu_situacaomatricula set descricao = 'Formado' where id = 19
Could not load edu.SituacaoMatriculaPeriodo(pk=21): duplicate key value violates unique constraint "edu_situacaomatriculaperiodo_descricao_key"
remover a constraint para ordenar depois coloca-la de volta
ALTER TABLE edu_situacaomatriculaperiodo ADD CONSTRAINT edu_situacaomatriculaperiodo_descricao_key UNIQUE(descricao); UPDATE edu_situacaomatriculaperiodo SET descricao= 'Intercâmbio' WHERE id = 24;
Gunicorn deve ficar com a sintaxe do master atual, correspondente a versão instalada na máquina de produção
[Errno 2] No such file or directory: '/opt/suap/rh/arquivos_siape/' OSError at /rh/upload_arquivos_extrator/
Mkdir dos dois diretorios
depois dar um chmod a+w para as permissoes
MultiValueDictKeyError at /admin/planejamento/acaoproposta/3/change/ Trocar
meta_id = self.request.GET['meta']
Por
meta_id = self.request.GET.get('meta')
Importar alunos
Erro: 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 4647, in definir_ano_let_prev_conclusao modalidade_id = self.curso_campus.modalidade.id AttributeError: 'NoneType' object has no attribute 'id'
Solucao: Não havia o preenchimento da coluna modalidade_id, na tabela de cursos (edu_cursocampos) pois os valores não eram trazidos corretamente do Q academico, é necessario inserir na base as seguintes modalidade bem como subir a correção do codigo:
INSERT INTO edu_modalidade( id, descricao, nivel_ensino_id) VALUES (0, 'Sem modalidade', null), (18, 'Concomitante', 3), (19, 'Bacharelado', 3), (20, 'Propedêutico', 2);
Importar SIAFI
Alterar a verificação com .REF para .ref e .TXT por .txt Duplicidade financeiro_classificacaoinstitucional apagar Adicionar os dois ultimos parameotrs no arquivo de layout Passar None ao invés de IT-DA-CONTRATACAO no metodo getItens