Files
account-tools/tax_receipt_in_portal/i18n/fr.po
Stéphan Sainléger 73c0684623
Some checks failed
pre-commit / pre-commit (pull_request) Failing after 1m32s
tests / test (pull_request) Failing after 38s
[ADD] tax_receipt_in_portal: publish tax receipts on the portal
Let donors view and download their own tax receipts from
``/my/tax-receipts``: a paginated list, a detail page with the receipt
information, its invoices and the native portal chatter, and a PDF
download rendered on demand through the configured ``pdf_form`` report.

The PDF rendering is delegated to ``pdf_form_report`` and nothing is
archived: a confirmed receipt is frozen by ``l10n_fr_tax_receipt``, so
rendering it again yields the same document.

Two safety nets compensate third-party behaviors:

- report resolution by ``report_uuid`` (system parameter
  ``tax_receipt_in_portal.report_uuid``) with strict validation of
  report type and target model;
- a blank-field guard which resolves every mapped PDF field value
  before rendering, because ``pdf_form_report`` swallows resolution
  errors and would otherwise silently serve a receipt with a blank
  amount.

Access is enforced twice: a portal record rule (own commercial partner,
confirmed/sent state only) and an explicit controller domain that also
covers internal users browsing ``/my``.

Tested with 17 tests (portal isolation, draft exposure, chatter data
access, blank-field guard, report misconfiguration, private API
contract of ``pdf_form_report``), including a mutation check proving
the security tests fail when the record rule is opened.
2026-10-21 00:15:21 +02:00

220 lines
7.7 KiB
Plaintext

# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * tax_receipt_in_portal
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-10-20 21:59+0000\n"
"PO-Revision-Date: 2026-10-20 21:59+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: tax_receipt_in_portal
#. odoo-python
#: code:addons/tax_receipt_in_portal/models/l10n_fr_tax_receipt.py:0
msgid "(unnamed)"
msgstr "(sans nom)"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_my_tax_receipts
msgid ""
"<i class=\"fa fa-download me-1\" role=\"img\"/>\n"
" <span>PDF</span>"
msgstr ""
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_tax_receipt_page
msgid ""
"<i class=\"fa fa-download me-1\" role=\"img\"/>\n"
" <span>Download PDF</span>"
msgstr ""
"<i class=\"fa fa-download me-1\" role=\"img\"/>\n"
" <span>Télécharger le PDF</span>"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_tax_receipt_page
msgid "<strong>Amount</strong>"
msgstr "<strong>Montant</strong>"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_tax_receipt_page
msgid "<strong>Communication</strong>"
msgstr "<strong>Communication</strong>"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_tax_receipt_page
msgid "<strong>Donor:</strong>"
msgstr "<strong>Donateur :</strong>"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_tax_receipt_page
msgid "<strong>In words</strong>"
msgstr "<strong>En lettres</strong>"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_tax_receipt_page
msgid "<strong>Invoices</strong>"
msgstr "<strong>Factures</strong>"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_tax_receipt_page
msgid "<strong>Last Payment Date</strong>"
msgstr "<strong>Date du dernier versement</strong>"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_tax_receipt_page
msgid "<strong>Receipt #</strong>"
msgstr "<strong>N° de reçu</strong>"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_tax_receipt_page
msgid "<strong>Status</strong>"
msgstr "<strong>État</strong>"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_tax_receipt_page
msgid "<strong>Year</strong>"
msgstr "<strong>Année</strong>"
#. module: tax_receipt_in_portal
#: model:ir.model.fields,field_description:tax_receipt_in_portal.field_l10n_fr_tax_receipt__access_warning
msgid "Access warning"
msgstr "Avertissement d'accès"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_my_tax_receipts
msgid "Amount"
msgstr "Montant"
#. module: tax_receipt_in_portal
#: model:ir.model.fields,help:tax_receipt_in_portal.field_l10n_fr_tax_receipt__access_url
msgid "Customer Portal URL"
msgstr "URL portail client"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_tax_receipt_page
msgid "Invoice"
msgstr "Facture"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_tax_receipt_page
msgid "Invoice Date"
msgstr "Date de facture"
#. module: tax_receipt_in_portal
#. odoo-python
#: code:addons/tax_receipt_in_portal/models/l10n_fr_tax_receipt.py:0
msgid "No report found with report_uuid %(uuid)s, configured in %(param)s."
msgstr ""
"Aucun rapport trouvé avec le report_uuid %(uuid)s, configuré dans %(param)s."
#. module: tax_receipt_in_portal
#. odoo-python
#: code:addons/tax_receipt_in_portal/models/l10n_fr_tax_receipt.py:0
msgid ""
"No tax receipt report configured. Set the system parameter %(param)s to the "
"report_uuid of the PDF Form report that renders tax receipts."
msgstr ""
"Aucun rapport de reçu fiscal configuré. Renseignez le paramètre système "
"%(param)s avec le report_uuid du rapport PDF Form qui génère les reçus "
"fiscaux."
#. module: tax_receipt_in_portal
#: model:ir.model.fields,field_description:tax_receipt_in_portal.field_l10n_fr_tax_receipt__access_url
msgid "Portal Access URL"
msgstr "URL d'accès portail"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_my_tax_receipts
msgid "Receipt #"
msgstr "N° de reçu"
#. module: tax_receipt_in_portal
#. odoo-python
#: code:addons/tax_receipt_in_portal/models/l10n_fr_tax_receipt.py:0
msgid ""
"Report %(name)s is of type %(actual)s, but tax receipts require a "
"%(expected)s report."
msgstr ""
"Le rapport %(name)s est de type %(actual)s, alors que les reçus fiscaux "
"nécessitent un rapport %(expected)s."
#. module: tax_receipt_in_portal
#. odoo-python
#: code:addons/tax_receipt_in_portal/models/l10n_fr_tax_receipt.py:0
msgid ""
"Report %(name)s targets model %(actual)s, but tax receipts require a report "
"on %(expected)s."
msgstr ""
"Le rapport %(name)s cible le modèle %(actual)s, alors que les reçus fiscaux "
"nécessitent un rapport sur %(expected)s."
#. module: tax_receipt_in_portal
#: model:ir.model.fields,field_description:tax_receipt_in_portal.field_l10n_fr_tax_receipt__access_token
msgid "Security Token"
msgstr "Jeton de sécurité"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_tax_receipt_page
msgid "Tax Receipt -"
msgstr "Reçu fiscal -"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_breadcrumbs_tax_receipt
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_my_home_tax_receipt
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_my_tax_receipts
msgid "Tax Receipts"
msgstr "Reçus fiscaux"
#. module: tax_receipt_in_portal
#: model:ir.model,name:tax_receipt_in_portal.model_l10n_fr_tax_receipt
msgid "Tax receipt"
msgstr "Reçu fiscal"
#. module: tax_receipt_in_portal
#. odoo-python
#: code:addons/tax_receipt_in_portal/models/l10n_fr_tax_receipt.py:0
msgid ""
"Tax receipt %(receipt)s cannot be rendered: the PDF field(s) %(fields)s "
"resolve to an empty value. Check the field mapping of report %(report)s."
msgstr ""
"Le reçu fiscal %(receipt)s ne peut pas être généré : le ou les champs PDF "
"%(fields)s donnent une valeur vide. Vérifiez le mappage des champs du "
"rapport %(report)s."
#. module: tax_receipt_in_portal
#. odoo-python
#: code:addons/tax_receipt_in_portal/models/l10n_fr_tax_receipt.py:0
msgid ""
"Tax receipt %(receipt)s is in state %(state)s and cannot be rendered. Only "
"%(allowed)s receipts can."
msgstr ""
"Le reçu fiscal %(receipt)s est à l'état %(state)s et ne peut pas être "
"généré. Seuls les reçus %(allowed)s peuvent l'être."
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_my_tax_receipts
msgid "There is currently no tax receipt for your account."
msgstr "Aucun reçu fiscal n'est actuellement disponible pour votre compte."
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_tax_receipt_page
msgid "Total"
msgstr "Total"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_my_home_tax_receipt
msgid "View and download your yearly donation receipts"
msgstr "Consultez et téléchargez vos reçus fiscaux annuels"
#. module: tax_receipt_in_portal
#: model_terms:ir.ui.view,arch_db:tax_receipt_in_portal.portal_my_tax_receipts
msgid "Year"
msgstr "Année"