Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[18.0][MIG] base_report_to_printer: Migration to 18.0 #2

Closed
wants to merge 124 commits into from

Conversation

trisdoan
Copy link
Owner

@trisdoan trisdoan commented Oct 9, 2024

Note

Changes in 18.0

  • ir.property was removed in odoo/odoo@de302c2. Hence, replace default value for property_printing_action_id with invoked function.
  • doall & numbercall fields were removed from ir_cron in odoo/odoo@3a9949a
  • callable is not validated in selection any longer due to performance cost in odoo/odoo@eaef3d2. So, initialise AVAILABLE_ACTION_TYPES with the precomputed value instead of the function which returns the precomputed value.

This changes

  • Take this chance to replace percent format with f-string

@trisdoan trisdoan force-pushed the 18.0-mig-base_report_to_printer branch 5 times, most recently from 6e0b8f0 to ea2958c Compare October 11, 2024 02:31
comodel_name="res.users", string="User", required=True, ondelete="cascade"
)
action = fields.Selection(
selection=lambda s: s.env["printing.action"]._available_action_types(),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Error when visiting Settings > Printing > Report
image

<menuitem
action="action_printer_update_wizard"
sequence="40"
id="menu_printer_update_wizard"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this menu (Update Printers from CUPS) is useless, no group has create right on this wizard, even Admin user will face this error:
image

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi anh, I fixed and included in #1

<group>
<field name="property_printing_action_id" />
<field name="printing_printer_id" />
<field name="printer_tray_id" />

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Error when accessing to menu Settings > Technica > .. > Reports

image

}
)
)
self.report_text = self.Model.create(

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

self.report_text = self.Model.create() is duplicated after porting
Seems that you don't need to port fc3ad72 but add it to blacklist

anw, pick the commit a7f1f36 into this PR as well.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi anh, fc3ad72 was wrongly ported, I fixed and updated the PR

@trisdoan trisdoan force-pushed the 18.0-mig-base_report_to_printer branch from ea2958c to 97c6d10 Compare October 14, 2024 04:07
guewen and others added 22 commits October 14, 2024 11:09
Migrate ir_report.py to new API

Migrate printing.py to new API

Migrate res_users.py to new API

Migrate report_xml_action.py to new API

Migrate wizard/update_printers.py to new API

Better view for wizard

Recursion when calling a method with old-style api signature from browse

Remove the Lock because it is useless on multiprocess

Replace it by a database lock so the different processes are
all aware of the lock and the last update timestamp.

browse is called often enough to call the update routine (even too much)

Implements the print on the new 'report' model

Restore the print capability on deprecated reports

Update copyrights

Improve form view, add search view for printers

Update translations, add a string to URI so it is uppercased

missing api decorator

We need the report in print_document and print options (needed in
printer_tray)

Move the 'skip_update' right in the browse, it prevents a loop

See odoo/odoo#3644

Also, it helps to have the value set/read in context close to each
other.

Avoid to hits the database too many times to check if the list of
printers needs to be refreshed.

Keep the last update datetime in cache and invalidate this datetime if is
is older than POLL_INTERVAL.  Thus, one process won't hit the DB more
than 1 time every POLL_INTERVAL (10 seconds currently) to check if it
needs to update the list.

Refresh the list of printers every 15 seconds instead of 10

Extract a method so it will be easier to override in printer_tray

Error on installation of the module

Invalidate the cache when the table is created so the table_exists()
method returns a fresh value after creation of the table

Use a cron instead of threads to update printers status

The implementation with threads was blocking the loading of the
server in multiprocess.  Using a cron will lower the frequency of
the updates but at least it is simple and reliable.

Fixes OCA#14

Do not write the printer status if it has not changed

Avoid unnecessary UPDATE every minute

Clean the XML file (remove eval, reindent)

Give access to models to all users for reading

So they are able to print
[Usability] Auto-add Administrator user to the Print group
Make XML code more readable

base_report_to_printer: add support for remote CUPS server (not just localhost)
More logging and better error handling

Add CUPS_HOST in more debug logs
Instead, a notification is displayed to the user.
When report.get_pdf() is called on a report that must be printer,
it will print the report *and* returns the pdf, thus code that
calls directly report.get_pdf() will print the pdf on the printer
as expected.

Fixes OCA#16
In order to get visibility on https://www.odoo.com/apps the OCA board has
decided to add the OCA as author of all the addons maintained as part of the
association.
By calling `super.get_pdf` in print_document we can encounter trouble with MRO resolution
that prevent custom report parser (e.g. override of `get_pdf`) to be called.

The fix consist of not calling `super` and prevent multiple call to 'printer.print_document'
* context was lost while getting report
* now it will be passed using with_context
* could be used for print_options (example: pass copies amount for
productlabals)
cups is an external dependency, if it is not installed Odoo will not start.
OCA guidelines specify guidelines for External dependencies, code is from there.
* Set api.multi for action called as `object` on view

* Merge syleam printers module into base_report_to_printer (OCA#60)

* [IMP] Updated unit tests

* [FIX] Fixed renamed attributes

* [FIX] Remove deleted fields

* [IMP] Add printing.server and printing.job models

* [IMP] Allow to cancel all jobs, enable, and disable printers

* [IMP] Split the cups part of print_document into a new print_file method

* [IMP] Updated cron job to run the action_update_jobs method

* [ADD] Add a migration script to create a printing server from configuration

* [MIG] Migrate base_report_to_printer to v10.0

Removed deprecated methods on printing.printer (replaced by methods on
        printing.server)

* [IMP] Add wkhtmltopdf in travis configuration file

* [FIX] base_report_to_printer: Fix Update Job Cron
* Fix API issue with Update Job Cron
** Forward Port from 9.0

* [FIX] Fixed the res.users view

The string attribute should not be used as a selector, because it is
translatable.

* [FIX] Fixed the print_document method of report

The new API migration was made to @api.multi because of the "cr, uid,
ids" signature, but "ids" was the ids of the records to print here, not
the report's ids.
Also, the new API version of "get_pdf" get directly the ids of the
records to print in the standard module, not a recordset.

* [FIX] UI is now (un)blocked only when using qweb-pdf reports in standard addons
* FIX format parameter

To be able to print files in raw format it's needed to set this parameter.

Previous code was not able to print raw files, but it didn't get error because 'format' used on line 107 is assumed as a format funtion, because format parameter was not on this scope.

* FIX pep8
Provided steps to installing PyCups
Printer Tray isn't an app
Base Report To printer ir.actions.report.xml view xpath error and missing page name
Put to before security as security tab doesn't do much and if this module is installed it should be the hero page
OCA-git-bot and others added 18 commits October 14, 2024 11:10
Currently translated at 76.2% (125 of 164 strings)

Translation: report-print-send-16.0/report-print-send-16.0-base_report_to_printer
Translate-URL: https://translation.odoo-community.org/projects/report-print-send-16-0/report-print-send-16-0-base_report_to_printer/it/
Currently translated at 100.0% (164 of 164 strings)

Translation: report-print-send-16.0/report-print-send-16.0-base_report_to_printer
Translate-URL: https://translation.odoo-community.org/projects/report-print-send-16-0/report-print-send-16-0-base_report_to_printer/it/
Currently translated at 100.0% (164 of 164 strings)

Translation: report-print-send-16.0/report-print-send-16.0-base_report_to_printer
Translate-URL: https://translation.odoo-community.org/projects/report-print-send-16-0/report-print-send-16-0-base_report_to_printer/it/
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: report-print-send-17.0/report-print-send-17.0-base_report_to_printer
Translate-URL: https://translation.odoo-community.org/projects/report-print-send-17-0/report-print-send-17-0-base_report_to_printer/
Currently translated at 100.0% (160 of 160 strings)

Translation: report-print-send-17.0/report-print-send-17.0-base_report_to_printer
Translate-URL: https://translation.odoo-community.org/projects/report-print-send-17-0/report-print-send-17-0-base_report_to_printer/it/
Currently translated at 100.0% (160 of 160 strings)

Translation: report-print-send-17.0/report-print-send-17.0-base_report_to_printer
Translate-URL: https://translation.odoo-community.org/projects/report-print-send-17-0/report-print-send-17-0-base_report_to_printer/it/
Currently translated at 100.0% (160 of 160 strings)

Translation: report-print-send-17.0/report-print-send-17.0-base_report_to_printer
Translate-URL: https://translation.odoo-community.org/projects/report-print-send-17-0/report-print-send-17-0-base_report_to_printer/sv/
Currently translated at 100.0% (160 of 160 strings)

Translation: report-print-send-17.0/report-print-send-17.0-base_report_to_printer
Translate-URL: https://translation.odoo-community.org/projects/report-print-send-17-0/report-print-send-17-0-base_report_to_printer/zh_CN/
Currently translated at 100.0% (160 of 160 strings)

Translation: report-print-send-17.0/report-print-send-17.0-base_report_to_printer
Translate-URL: https://translation.odoo-community.org/projects/report-print-send-17-0/report-print-send-17-0-base_report_to_printer/zh_CN/
@trisdoan trisdoan force-pushed the 18.0-mig-base_report_to_printer branch from 97c6d10 to d375fd1 Compare October 14, 2024 04:11
@trisdoan trisdoan force-pushed the 18.0-mig-base_report_to_printer branch from d375fd1 to dd3fdff Compare October 14, 2024 04:16
Copy link

@nguyenminhchien nguyenminhchien left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should squash these commits into a single one: [MIG] base_report_to_printer: Migration to 18.0
image

@trisdoan trisdoan force-pushed the 18.0-mig-base_report_to_printer branch from dd3fdff to 67ebf77 Compare October 14, 2024 08:40
@trisdoan trisdoan force-pushed the 18.0-mig-base_report_to_printer branch from 67ebf77 to a5aae19 Compare October 14, 2024 08:57
@trisdoan trisdoan closed this Oct 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.