[IMP] report_qweb_signer: allowed reports on certificate

Add a new 'Allowed reports' field on the certificate. Only reports listed in this field can be signed. No report means all reports are allowed.
This commit is contained in:
Thomas Binsfeld
2021-08-13 11:22:49 +02:00
parent c01e62ae14
commit 4af9b07b94
3 changed files with 14 additions and 0 deletions

View File

@@ -47,6 +47,9 @@ class IrActionsReport(models.Model):
[ [
("company_id", "=", company_id), ("company_id", "=", company_id),
("model_id", "=", self.model), ("model_id", "=", self.model),
"|",
("action_report_ids", "=", False),
("action_report_ids", "in", self.id),
] ]
) )
if not certificates: if not certificates:

View File

@@ -37,6 +37,16 @@ class ReportCertificate(models.Model):
string="Domain", string="Domain",
help="Domain for filtering if sign or not the document", help="Domain for filtering if sign or not the document",
) )
action_report_ids = fields.Many2many(
string="Allowed reports",
help="Reports to sign for the selected model."
"No report selected means all reports are allowed.",
comodel_name="ir.actions.report",
relation="report_certificate_action_report",
column1="report_certificate_id",
column2="action_report_id",
domain="[('model_id', '=', model_id)]",
)
allow_only_one = fields.Boolean( allow_only_one = fields.Boolean(
string="Allow only one document", string="Allow only one document",
default=True, default=True,

View File

@@ -33,6 +33,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
widget="selection" widget="selection"
groups="base.group_multi_company" groups="base.group_multi_company"
/> />
<field name="action_report_ids" widget="many2many_tags" />
</group> </group>
<group <group
attrs="{'invisible': [('signing_method', '!=', 'endesive')]}" attrs="{'invisible': [('signing_method', '!=', 'endesive')]}"