Skip to content

v2.2.0

Choose a tag to compare

@github-actions github-actions released this 01 Aug 20:22
· 646 commits to main since this release

Added

  • Portuguese (pt-PT) translation. The fourth UI language after
    Spanish, English and French. Ships the ~2,340-key core locale plus a
    pt.json for each of the eleven module layers, so every screen the
    modules contribute is covered too, and the language appears in
    Settings → Account → Language with no further configuration. Patient
    communications can also be switched to Portuguese: the clinic-wide
    communications language accepts pt and the full set of transactional
    email templates (appointment confirmation / reminder / cancellation,
    quote sent / accepted, welcome, morning digest, Verifactu alerts) is
    translated. Nuxt UI's own pt locale is wired in so date pickers and
    built-in component strings follow. Backend catalog-name resolution
    gained a pt fallback, so treatments named in Portuguese resolve on
    invoices, plans, the timeline and the agent tools rather than silently
    falling back to the internal code.

    Not included: the user manual and the demo seed data stay on
    es/en/fr, matching how French shipped.

Fixed

  • Multi-session treatments were charged double. Completing the last
    step of a multi-session treatment (e.g. an implant with surgery,
    abutment and crown steps) re-recorded the full parent price on top of
    the amounts already charged per session, so a 1,100 € treatment showed
    as 2,200 € owed. Each session now books only its own amount and the
    total always equals the sum of the sessions. The reverse flow is also
    covered: marking the treatment performed from the odontogram charges
    it once in full and auto-cancels its pending sessions. Upgrading
    repairs affected ledgers automatically
    — the migration removes the
    duplicate charges this bug created; no manual action needed.

  • Published images were amd64 only, so docker compose up failed at the
    very first command on Apple Silicon and on ARM VPS instances (Hetzner's
    CAX line, the cheapest in Europe and popular with self-hosters) with a
    bare no matching manifest for linux/arm64/v8. Each architecture now
    builds on its own native runner and a merge step publishes one manifest
    list per image, verified to carry both before the release is cut.

Install

curl -O https://raw.githubusercontent.com/martinezsalmeron/dentalpin/main/docker-compose.prod.yml
curl -O https://raw.githubusercontent.com/martinezsalmeron/dentalpin/main/Caddyfile
curl -o .env https://raw.githubusercontent.com/martinezsalmeron/dentalpin/main/.env.prod.example
# set PUBLIC_URL, POSTGRES_PASSWORD, SECRET_KEY
# and DENTALPIN_VERSION=2.2.0 to pin this release, then:
docker compose -f docker-compose.prod.yml up -d

Images (amd64 + arm64): ghcr.io/martinezsalmeron/dentalpin-backend:2.2.0 · ghcr.io/martinezsalmeron/dentalpin-frontend:2.2.0

What's Changed

Full Changelog: v2.1.0...v2.2.0