Skip to content

Unificar nomenclatura dos campos de timestamp de atualização (data_ultima_atualizacao × ultima_edicao) #3847

Description

@joaohortsenado

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.
  • 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.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions