diff --git a/donation/models/donation_tax_receipt.py b/donation/models/donation_tax_receipt.py
index bc7a896..f26edd8 100644
--- a/donation/models/donation_tax_receipt.py
+++ b/donation/models/donation_tax_receipt.py
@@ -20,14 +20,6 @@ class DonationTaxReceipt(models.Model):
compute="_compute_first_donation_date"
)
- def write(self, vals):
- raise UserError(_("Tax receipts cannot be modified manually. They must be generated from donations."))
-
- @classmethod
- def create(cls, vals_list):
- raise UserError(_("Tax receipts cannot be created manually. They must be generated from donations."))
-
-
@api.depends("donation_ids.donation_date")
def _compute_first_donation_date(self):
for receipt in self:
diff --git a/donation_base/i18n/fr.po b/donation_base/i18n/fr.po
index c31fc42..3ee976b 100644
--- a/donation_base/i18n/fr.po
+++ b/donation_base/i18n/fr.po
@@ -471,7 +471,7 @@ msgstr "Partenaire"
#: model_terms:ir.ui.view,arch_db:donation_base.donation_tax_receipt_form
#, fuzzy
msgid "Print"
-msgstr "Date d'impression"
+msgstr "Imprimer"
#. module: donation_base
#: model:ir.model.fields,field_description:donation_base.field_donation_tax_receipt__print_date
diff --git a/donation_base/models/donation_tax_receipt.py b/donation_base/models/donation_tax_receipt.py
index 065ed23..948a8b9 100644
--- a/donation_base/models/donation_tax_receipt.py
+++ b/donation_base/models/donation_tax_receipt.py
@@ -54,6 +54,11 @@ class DonationTaxReceipt(models.Model):
readonly=True,
)
+ def write(self, vals):
+ if not self.env.context.get("allow_tax_receipt_write"):
+ raise UserError(_("Tax receipts cannot be modified manually. They must be generated from donations."))
+ super().write(vals)
+
@api.model_create_multi
def create(self, vals_list):
for vals in vals_list:
@@ -99,3 +104,10 @@ class DonationTaxReceipt(models.Model):
"context": ctx,
}
return action
+
+ def action_print_receipt(self):
+ today = fields.Date.context_today(self)
+ for receipt in self:
+ if not receipt.print_date:
+ receipt.with_context(allow_tax_receipt_write=True).write({"print_date": today})
+ return self.env.ref("donation_base.report_donation_tax_receipt").report_action(self)
diff --git a/donation_base/views/donation_tax_receipt.xml b/donation_base/views/donation_tax_receipt.xml
index ea466ce..aa39ae2 100644
--- a/donation_base/views/donation_tax_receipt.xml
+++ b/donation_base/views/donation_tax_receipt.xml
@@ -10,7 +10,7 @@
donation.tax.receipt.form
donation.tax.receipt
-