Skip to content

fix(i18n): el historial de la cotización guarda códigos y datos, no prosa en español - #79

Merged
keilynrp merged 1 commit into
masterfrom
feat/i18n-quote-history
Oct 10, 2026
Merged

keilynrp merged 1 commit into
masterfrom
feat/i18n-quote-history

Conversation

@keilynrp

Copy link
Copy Markdown
Collaborator

Qué

El recorrido en inglés de la app dio un hallazgo claro: la pestaña Historial de una cotización mostraba «Cotización enviada», «Línea agregada: …». sales/service.py guardaba ocho textos en español en quote_events.description y la interfaz los pintaba tal cual.

Cambios

  • Backend: cada evento guarda su tipo y sus datos en event_metadata (número de cotización, descripción de la línea, motivo del rechazo). description pasa a inglés de desarrollador y queda como texto de reserva.
  • Frontend: el hook useQuoteEventText pone el texto con sales:detail.history.events.<tipo> (es y en). Si faltan los datos o el tipo no está en el catálogo, se muestra description.
  • El tipo QuoteEvent decía metadata y la API manda event_metadata: corregido.
  • Docs: IMPLEMENTATION_ALIGNMENT.md, plan i18n y recuentos de tests (979 tests / 51 archivos).

Eventos ya guardados

Los que no necesitan datos (enviada, aceptada, lotes) se traducen igualmente. Los que dependen de datos (creada, línea agregada/eliminada, rechazada) conservan su texto en español. Reescribirlos requiere una migración de datos, fuera de este PR.

Verificación

  • Backend: 53 tests (historial nuevo, contrato de ventas, líneas, barrido de claves).
  • Frontend: 100 tests (hook, catálogos, QuoteDetail y english-sales), typecheck y lint limpios.
  • Gobernanza y recuentos en local. Las suites completas las corre CI.

🤖 Generated with Claude Code

…rosa en espanol

El recorrido en ingles de la app (15 paginas, catalogo `en` real, datos reales) dio un
hallazgo claro: en la pestana Historial de una cotizacion salia «Cotizacion enviada»,
«Linea agregada: ...». `sales/service.py` guardaba ocho textos en espanol en
`quote_events.description` y la interfaz los pintaba tal cual.

- Backend: cada evento guarda su tipo y sus datos en `event_metadata` (numero de
  cotizacion, descripcion de la linea, motivo del rechazo; `line_updated` ya guardaba lo
  que cambio). `description` pasa a ingles de desarrollador, como el resto de los
  `message` de la API, y queda como reserva.
- Frontend: `useQuoteEventText` pone el texto con `sales:detail.history.events.<tipo>`
  (es y en). Si el evento no trae los datos que su texto necesita, o el tipo no esta en
  el catalogo, se muestra `description`. El tipo `QuoteEvent` decia `metadata` y la API
  manda `event_metadata`: se corrige.
- Eventos ya guardados: los que no necesitan datos (enviada, aceptada, lotes) se
  traducen igualmente; los demas conservan su texto en espanol. Reescribirlos es una
  migracion de datos que queda fuera de este PR.

Tests: `test_quote_history_events.py` (tipo, datos, y que ninguna descripcion se escriba
en espanol), `useQuoteEventText.test.tsx` (los ocho tipos en es y en, eventos antiguos,
tipo desconocido) y las pantallas en es y en con eventos reales.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-10T20:43:43.492194Z 592292a PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@keilynrp
keilynrp merged commit b70307d into master Oct 10, 2026
5 checks passed
@keilynrp
keilynrp deleted the feat/i18n-quote-history branch October 10, 2026 22:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant