Contexto
Durante a revisão do #3842 (@eribeiro) surgiu a inconsistência de nomenclatura entre os dois campos de timestamp de atualização usados nos models:
- Com os dois campos (
data_ultima_atualizacao + ultima_edicao): MateriaLegislativa, NormaJuridica, DocumentoAdministrativo.
- Só
ultima_edicao: Proposicao, Tramitacao, TramitacaoAdministrativo.
O ideal seria unificar num único campo com nome consistente em toda a base.
Por que não foi feito no #3842
Os dois campos não são sinônimos e a troca não é um rename mecânico:
data_ultima_atualizacao é auto_now=True — "linha salva por último", automático.
ultima_edicao é gerenciado explicitamente e, em vários fluxos, copiado de outro registro (não setado como "agora"):
materia/forms.py:591 -> ultima_edicao=tramitacao.ultima_edicao
materia/forms.py:722 -> tram_anexada.ultima_edicao = nova_tram_principal.ultima_edicao
protocoloadm/forms.py:795,914 -> idem
Com auto_now=True é impossível preservar esse timestamp copiado (o auto_now força "agora" em todo save()), então renomear ultima_edicao para um campo auto_now quebraria a semântica de anexação/cópia de tramitações.
Escopo / cuidados
Proposta
- Definir qual semântica prevalece (auto_now vs. gerenciado) e escolher o nome único.
- Onde a semântica "copiar de outro registro" for necessária, manter um campo gerenciado (não
auto_now).
- Fazer a migração em expand/contract, numa PR separada e aditiva.
Follow-up de #3842.
Contexto
Durante a revisão do #3842 (@eribeiro) surgiu a inconsistência de nomenclatura entre os dois campos de timestamp de atualização usados nos models:
data_ultima_atualizacao+ultima_edicao):MateriaLegislativa,NormaJuridica,DocumentoAdministrativo.ultima_edicao:Proposicao,Tramitacao,TramitacaoAdministrativo.O ideal seria unificar num único campo com nome consistente em toda a base.
Por que não foi feito no #3842
Os dois campos não são sinônimos e a troca não é um rename mecânico:
data_ultima_atualizacaoéauto_now=True— "linha salva por último", automático.ultima_edicaoé gerenciado explicitamente e, em vários fluxos, copiado de outro registro (não setado como "agora"):materia/forms.py:591->ultima_edicao=tramitacao.ultima_edicaomateria/forms.py:722->tram_anexada.ultima_edicao = nova_tram_principal.ultima_edicaoprotocoloadm/forms.py:795,914-> idemCom
auto_now=Trueé impossível preservar esse timestamp copiado (oauto_nowforça "agora" em todosave()), então renomearultima_edicaopara um campoauto_nowquebraria a semântica de anexação/cópia de tramitações.Escopo / cuidados
materia/norma/protocoloadm).parlamentar_autorno Melhorias de transparência (PNTP): correções de relatórios e novas funcionalidades #3842.Proposta
auto_now).Follow-up de #3842.