[10.0][MIG] base_report_to_printer (#68)

* Set api.multi for action called as `object` on view

* Merge syleam printers module into base_report_to_printer (#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
This commit is contained in:
Sylvain Garancher
2017-04-05 18:06:16 +02:00
committed by Carlos Roca
parent 6c943e09b8
commit 5dda3b475e
32 changed files with 1482 additions and 417 deletions

View File

@@ -0,0 +1,44 @@
<?xml version="1.0"?>
<odoo>
<record model="ir.ui.view" id="printing_job_view_form">
<field name="name">printing.job.form</field>
<field name="model">printing.job</field>
<field name="arch" type="xml">
<form string="Job">
<sheet>
<header>
<button name="action_cancel" type="object" string="Cancel" attrs="{'invisible': [('job_state', 'in', ('canceled', 'aborted', 'completed'))]}"/>
<field name="job_state" widget="statusbar"/>
</header>
<group>
<group>
<field name="name"/>
<field name="job_id_cups"/>
<field name="job_media_progress" widget="progressbar"/>
<field name="job_state_reason"/>
</group>
<group>
<field name="time_at_creation"/>
<field name="time_at_processing"/>
<field name="time_at_completed"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="printing_job_view_tree">
<field name="name">printing.job.tree</field>
<field name="model">printing.job</field>
<field name="arch" type="xml">
<tree string="Job">
<field name="name"/>
<field name="job_id_cups"/>
<field name="job_state"/>
</tree>
</field>
</record>
</odoo>

View File

@@ -1,81 +1,90 @@
<?xml version="1.0"?>
<odoo>
<menuitem name="Printing"
id="printing_menu"
parent="base.menu_administration"
groups="printing_group_manager"
/>
<menuitem name="Printing"
id="printing_menu"
parent="base.menu_administration"
groups="printing_group_manager"
/>
<record model="ir.ui.view" id="printing_printer_view_form">
<field name="name">printing.printer.form</field>
<field name="model">printing.printer</field>
<field name="arch" type="xml">
<form string="Printers">
<sheet>
<div class="oe_title">
<h1>
<label for="name"/>
<field name="name"/>
</h1>
</div>
<group>
<field name="system_name"/>
</group>
<group col="3" colspan="4">
<field name="default"/>
<button name="set_default" string="Set Default" type="object"/>
</group>
<group>
<field name="uri"/>
<field name="model"/>
<field name="location"/>
<field name="status"/>
<field name="status_message"/>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="printing_printer_view_form">
<field name="name">printing.printer.form</field>
<field name="model">printing.printer</field>
<field name="arch" type="xml">
<form string="Printers">
<sheet>
<header>
<button name="enable" type="object" string="Enable" attrs="{'invisible': [('status', 'in', ('available', 'printing'))]}"/>
<button name="disable" type="object" string="Disable" attrs="{'invisible': [('status', '=', 'unavailable')]}"/>
<button name="action_cancel_all_jobs" type="object" string="Cancel all running jobs"/>
</header>
<div class="oe_title">
<h1>
<label for="name"/>
<field name="name"/>
</h1>
</div>
<group>
<field name="system_name"/>
</group>
<group col="3" colspan="4">
<field name="default"/>
<button name="set_default" string="Set Default" type="object"/>
</group>
<group>
<field name="uri"/>
<field name="model"/>
<field name="location"/>
<field name="status"/>
<field name="status_message"/>
</group>
<group>
<separator string="Jobs" colspan="2"/>
<field name="job_ids" nolabel="1"/>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="printing_printer_view_tree">
<field name="name">printing.printer.tree</field>
<field name="model">printing.printer</field>
<field name="arch" type="xml">
<tree string="Printers" colors="green:status=='available'; orange:status=='printing'; red:1;">
<field name="default"/>
<field name="name"/>
<field name="system_name"/>
<field name="status"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="printing_printer_view_tree">
<field name="name">printing.printer.tree</field>
<field name="model">printing.printer</field>
<field name="arch" type="xml">
<tree string="Printers" colors="green:status=='available'; orange:status=='printing'; red:1;">
<field name="default"/>
<field name="name"/>
<field name="system_name"/>
<field name="status"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="printing_printer_view_search">
<field name="name">printing.printer.search</field>
<field name="model">printing.printer</field>
<field name="arch" type="xml">
<search string="Printers">
<field name="name"/>
<field name="system_name"/>
<field name="location"/>
<field name="status"/>
</search>
</field>
</record>
<record model="ir.ui.view" id="printing_printer_view_search">
<field name="name">printing.printer.search</field>
<field name="model">printing.printer</field>
<field name="arch" type="xml">
<search string="Printers">
<field name="name"/>
<field name="system_name"/>
<field name="location"/>
<field name="status"/>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="printing_printer_action">
<field name="name">Show Printers</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">printing.printer</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="auto_refresh">20</field>
</record>
<record model="ir.actions.act_window" id="printing_printer_action">
<field name="name">Show Printers</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">printing.printer</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem name="Printers"
id="printing_printer_menu"
parent="printing_menu"
action="printing_printer_action"/>
<menuitem name="Printers"
sequence="20"
id="printing_printer_menu"
parent="printing_menu"
action="printing_printer_action"/>
</odoo>

View File

@@ -28,6 +28,7 @@
<!-- Add a shorcut to "Actions/Report" in the Printing menu -->
<menuitem id="printing_report_xml_action_menu"
sequence="30"
parent="printing_menu"
action="base.ir_action_report_xml"/>

View File

@@ -0,0 +1,70 @@
<?xml version="1.0"?>
<odoo>
<record model="ir.ui.view" id="printing_server_view_form">
<field name="name">printing.server.form</field>
<field name="model">printing.server</field>
<field name="arch" type="xml">
<form string="Servers">
<sheet>
<header>
<button name="action_update_printers" type="object" string="Update Printers"/>
<button name="action_update_jobs" type="object" string="Update Jobs"/>
</header>
<div class="oe_title">
<h1>
<field name="name"/>
</h1>
</div>
<group>
<field name="address"/>
<field name="port"/>
</group>
<group>
<separator string="Printers" colspan="2"/>
<field name="printer_ids" nolabel="1"/>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="printing_server_view_tree">
<field name="name">printing.server.tree</field>
<field name="model">printing.server</field>
<field name="arch" type="xml">
<tree string="Servers">
<field name="name"/>
<field name="address"/>
<field name="port"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="printing_server_view_search">
<field name="name">printing.server.search</field>
<field name="model">printing.server</field>
<field name="arch" type="xml">
<search string="Servers">
<field name="name"/>
<field name="address"/>
<field name="port"/>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="printing_server_action">
<field name="name">Servers</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">printing.server</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem name="Servers"
sequence="10"
id="printing_server_menu"
parent="printing_menu"
action="printing_server_action"/>
</odoo>

View File

@@ -6,12 +6,12 @@
<field name="model">res.users</field>
<field name="inherit_id" ref="base.view_users_form" />
<field name="arch" type="xml">
<page string="Preferences">
<group name="printing">
<xpath expr="//group[@name='preferences']/ancestor::page" position="inside">
<group string="Printing" name="printing">
<field name="printing_action"/>
<field name="printing_printer_id"/>
</group>
</page>
</xpath>
</field>
</record>