[18.0][MIG] report_qweb_signer: Migration to 18.0 #1105
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 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
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( |
There was a problem hiding this comment.
suggestion: higher importance
| _logger.debug( | |
| _logger.warning( |
| ids = set( | ||
| self.env[self.model_id.model].search(safe_eval(self.signing_domain)).ids | ||
| ) | ||
| res_ids = list(ids & set(res_ids)) |
There was a problem hiding this comment.
| 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(): |
There was a problem hiding this comment.
| 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 | |||
There was a problem hiding this comment.
suggestion: IMHO Moduon deserves a mention, after this huge refactor.
|
There hasn't been any activity on this pull request in the past 4 months, so it has been marked as stale and it will be closed automatically if no further activity occurs in the next 30 days. |
|
@yajo set to no stale, please |
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