[18.0][MIG] report_qweb_signer: Migration to 18.0 #1105
Open
chienandalu wants to merge 63 commits intoOCA:18.0from
Open
[18.0][MIG] report_qweb_signer: Migration to 18.0 #1105chienandalu wants to merge 63 commits intoOCA:18.0from
chienandalu wants to merge 63 commits intoOCA:18.0from
Conversation
OCA Transbot updated translations from Transifex
OCA Transbot updated translations from Transifex
These limits were being hit when printing PDF reports with just 80 pages. OCA Transbot updated translations from Transifex [UPD] Update report_qweb_signer.pot
- Good dependency chain - Context for forcing rendering PDF - Extra test [UPD] README.rst [UPD] Update report_qweb_signer.pot Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: reporting-engine-12.0/reporting-engine-12.0-report_qweb_signer Translate-URL: https://translation.odoo-community.org/projects/reporting-engine-12-0/reporting-engine-12-0-report_qweb_signer/ [UPD] README.rst
`render_qweb_pdf` must return a tuple of `(content, 'pdf')`
Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: reporting-engine-12.0/reporting-engine-12.0-report_qweb_signer Translate-URL: https://translation.odoo-community.org/projects/reporting-engine-12-0/reporting-engine-12-0-report_qweb_signer/
Fix website on manifest
[UPD] Update report_qweb_signer.pot [UPD] README.rst
Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: reporting-engine-13.0/reporting-engine-13.0-report_qweb_signer Translate-URL: https://translation.odoo-community.org/projects/reporting-engine-13-0/reporting-engine-13-0-report_qweb_signer/
…isible signatures
We don't want our custom parameters be reset every time the module updates. TT32256
…default and fix multicompany issue
…objects (print from wizard in some cases)
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.
Currently translated at 26.0% (12 of 46 strings) Translation: reporting-engine-14.0/reporting-engine-14.0-report_qweb_signer Translate-URL: https://translation.odoo-community.org/projects/reporting-engine-14-0/reporting-engine-14-0-report_qweb_signer/it/
Currently translated at 63.0% (29 of 46 strings) Translation: reporting-engine-14.0/reporting-engine-14.0-report_qweb_signer Translate-URL: https://translation.odoo-community.org/projects/reporting-engine-14-0/reporting-engine-14-0-report_qweb_signer/sl/
Currently translated at 100.0% (46 of 46 strings) Translation: reporting-engine-14.0/reporting-engine-14.0-report_qweb_signer Translate-URL: https://translation.odoo-community.org/projects/reporting-engine-14-0/reporting-engine-14-0-report_qweb_signer/ca/
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: reporting-engine-14.0/reporting-engine-14.0-report_qweb_signer Translate-URL: https://translation.odoo-community.org/projects/reporting-engine-14-0/reporting-engine-14-0-report_qweb_signer/
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: reporting-engine-14.0/reporting-engine-14.0-report_qweb_signer Translate-URL: https://translation.odoo-community.org/projects/reporting-engine-14-0/reporting-engine-14-0-report_qweb_signer/
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: reporting-engine-16.0/reporting-engine-16.0-report_qweb_signer Translate-URL: https://translation.odoo-community.org/projects/reporting-engine-16-0/reporting-engine-16-0-report_qweb_signer/
Currently translated at 100.0% (46 of 46 strings) Translation: reporting-engine-16.0/reporting-engine-16.0-report_qweb_signer Translate-URL: https://translation.odoo-community.org/projects/reporting-engine-16-0/reporting-engine-16-0-report_qweb_signer/es/
Currently translated at 100.0% (46 of 46 strings) Translation: reporting-engine-16.0/reporting-engine-16.0-report_qweb_signer Translate-URL: https://translation.odoo-community.org/projects/reporting-engine-16-0/reporting-engine-16-0-report_qweb_signer/it/
…ography version for python < 3.12
29937cb to
71070b5
Compare
Refactor to use pyHanko and the new Odoo core `certificate.certificate` model. For now, a minimal refactor has been made as PoC to: - Use PyHanko as the signer library (more complete, mantained and reliable) - Remove all the forme java pdfsigner stuff. - Be able to use Odoo core certificates. Main pain points: - `cryptography` version is fixed in Odoo `requirements.txt`. This makes very hard for other libraries to work with that version. - The approach has been using the `pyhanko-cli` tool as backend so we can install it in it's own `venv` (or whatever isolation method is desired). MT-11131
71070b5 to
212514f
Compare
yajo
requested changes
Jan 21, 2026
Member
yajo
left a comment
There was a problem hiding this comment.
Thanks for the good work, it looks much better indeed.
Code review with some comments in code.
Please also review tests, which are failing.
| def migrate(cr, version): | ||
| # 1. Store certificate info (file path) to create the certs on post-mig | ||
| # 2. Transform report.certificate to their reports values | ||
| pass |
| and self.signing_allow_only_one | ||
| and len(res_ids) > 1 | ||
| ): | ||
| _logger.debug( |
Member
There was a problem hiding this comment.
suggestion: higher importance
Suggested change
| _logger.debug( | |
| _logger.warning( |
Comment on lines
+57
to
+60
| ids = set( | ||
| self.env[self.model_id.model].search(safe_eval(self.signing_domain)).ids | ||
| ) | ||
| res_ids = list(ids & set(res_ids)) |
Member
There was a problem hiding this comment.
Suggested change
| ids = set( | |
| self.env[self.model_id.model].search(safe_eval(self.signing_domain)).ids | |
| ) | |
| res_ids = list(ids & set(res_ids)) | |
| res_ids = self.env[self.model_id.model].search([("id", "in", res_ids)] + safe_eval(self.signing_domain)).ids |
|
|
||
| def _should_be_signed(self, res_ids: list) -> list: | ||
| """Not all the documents should be rendered. Let's find out the right ones""" | ||
| if not self._is_report_type_signable(): |
Member
There was a problem hiding this comment.
Suggested change
| if not self._is_report_type_signable(): | |
| if not self._is_report_type_signable() or not res_ids: |
| @@ -6,10 +6,10 @@ | |||
| > - Jairo Llopis | |||
| > - David Vidal | |||
Member
There was a problem hiding this comment.
suggestion: IMHO Moduon deserves a mention, after this huge refactor.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
superseds #1060
Refactor to use pyHanko and the new Odoo core
certificate.certificatemodel.For now, a minimal refactor has been made as PoC to:
Main pain points:
cryptographyversion is fixed in Odoorequirements.txt. This makes very hard for other libraries to work with that version.pyhanko-clitool as backend so we can install it in it's ownvenv(or whatever isolation method is desired).cc @moduon MT-11131
fyi @yajo