Repository navigation
feat(i18n): PDF de cotizacion en el idioma del usuario - #77
Conversation
`sales/pdf.py` era el segundo artefacto de servidor con texto cableado (~24 cadenas
en espanol que el plan no listaba). Ahora pasa por un catalogo `quote_pdf` (es y en,
misma disposicion que `invoice_pdf`) y por el formato de `core/i18n/format.py`.
- `generate_quote_pdf(..., locale=)`; la ruta `GET /sales/quotes/{id}/pdf` toma el
idioma de `get_current_locale`, como la de factura.
- Fecha de validez, importes y cantidades siguen al idioma (`2.5` o `2,5`; la cantidad
sin decimales fijos sale con `format_number(decimals=None)`).
- Estado: antes salia el codigo interno en ingles en mayusculas (`SENT`) en cualquier
idioma; ahora sale traducido (`ENVIADA` / `SENT`). Es el unico cambio visible en
espanol y esta fijado en el golden.
- Un estado sin entrada en el catalogo sale tal cual, como en el PDF de factura.
Tests: `test_quote_pdf_locale.py` (golden en espanol, catalogo pseudo-localizado,
ingles real, formato por region y la ruta). Comprobado que cablear una etiqueta o la
fecha a mano rompe 4 tests. Recuentos documentados 957 -> 971.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8e53d571e3
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if decimals is None: | ||
| text = f"{value:,.6f}".rstrip("0").rstrip(".") |
There was a problem hiding this comment.
Preserve quantities smaller than six decimal places
When a quote contains an accepted positive quantity below 0.0000005 (the sales schemas impose no minimum precision), formatting with six fixed decimal places rounds it to zero before trimming, so a quantity such as 0.0000001 is printed as 0 in the PDF. The previous :g rendering retained this value as 1e-07; the variable-decimal path should preserve enough significant digits rather than silently changing a nonzero quantity.
Useful? React with 👍 / 👎.
…abulario `test_english_artifacts.py` rompia en CI: "Attn" es la misma abreviatura en espanol y en ingles, pero el catalogo es de la cotizacion la anadia al vocabulario "solo espanol". No lo vi en local porque corri las suites del PDF y no esta. - `attn` entra en `SHARED_WITH_SPANISH` (abreviatura compartida, como `sku`). - Se anaden al mismo fichero los controles del PDF de cotizacion, que no tenia: sus etiquetas en ingles, que no queda espanol (salvo los datos de la cotizacion) y que el control puede fallar (el mismo PDF en espanol si da palabras solo-espanol). Recuento documentado 971 -> 974. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Resumen
Segundo paso del recorrido en inglés (tarea 12): el PDF de cotización (
sales/pdf.py) era el otro artefacto de servidor con texto cableado en español (~24 cadenas que el plan no listaba). Ahora sigue el idioma del usuario.quote_pdf(es y en), con la misma disposición queinvoice_pdf.generate_quote_pdf(..., locale=): la rutaGET /sales/quotes/{id}/pdftoma el idioma deget_current_locale, igual que la de factura.core/i18n/format.py). Las cantidades sin decimales fijos usanformat_number(decimals=None):2.5enen,2,5enes-ES.Un cambio visible en español
El estado salía como el código interno en inglés y en mayúsculas (
SENT) en cualquier idioma. Ahora sale traducido (ENVIADA/SENT). Es una corrección deliberada y está fijada a mano en el golden; el resto del texto en español es idéntico al de antes.Verificación
test_quote_pdf_locale.py: golden en español (capturado antes de tocar el código), catálogo pseudo-localizadoEN(...)para detectar etiquetas cableadas, inglés real, formato por región y la ruta (idioma del usuario y del workspace).Siguiente
Textos en español del portal y etiquetas de notificaciones, y el recorrido real en el navegador en inglés.
🤖 Generated with Claude Code