mirror of
https://github.com/OCA/report-print-send.git
synced 2025-02-16 07:11:31 +02:00
[IMP] Add a button to generate an action to launch the print wizard
This commit is contained in:
committed by
Lois Rilo
parent
041ee4cd82
commit
1024ddfa42
@@ -59,7 +59,6 @@ You can also use the generic label printing wizard, if added on some models.
|
||||
Known issues / Roadmap
|
||||
======================
|
||||
|
||||
* Add a button to generate the ir.values for a model
|
||||
* Develop a "Designer" view in a separate module, to allow drawing labels with simple mouse clicks/drags
|
||||
|
||||
Bug Tracker
|
||||
|
||||
@@ -46,6 +46,8 @@ class PrintingLabelZpl2(models.Model):
|
||||
string="Restore printer's configuration",
|
||||
help="Restore printer's saved configuration and end of each label ",
|
||||
default=True)
|
||||
action_window_id = fields.Many2one(
|
||||
comodel_name='ir.actions.act_window', string='Action', readonly=True)
|
||||
|
||||
def _generate_zpl2_components_data(
|
||||
self, label_data, record, page_number=1, page_count=1,
|
||||
@@ -226,3 +228,20 @@ class PrintingLabelZpl2(models.Model):
|
||||
report=None, content=label_contents, doc_format='raw')
|
||||
|
||||
return True
|
||||
|
||||
def create_action(self):
|
||||
for label in self.filtered(lambda record: not record.action_window_id):
|
||||
label.action_window_id = self.env['ir.actions.act_window'].create({
|
||||
'name': _('Print Label'),
|
||||
'src_model': label.model_id.model,
|
||||
'binding_model_id': label.model_id.id,
|
||||
'res_model': 'wizard.print.record.label',
|
||||
'view_mode': 'form',
|
||||
'target': 'new',
|
||||
'binding_type': 'action',
|
||||
})
|
||||
|
||||
return True
|
||||
|
||||
def unlink_action(self):
|
||||
self.mapped('action_window_id').unlink()
|
||||
|
||||
@@ -3,3 +3,4 @@
|
||||
|
||||
from . import test_printing_label_zpl2
|
||||
from . import test_wizard_print_record_label
|
||||
from . import test_generate_action
|
||||
|
||||
38
printer_zpl2/tests/test_generate_action.py
Normal file
38
printer_zpl2/tests/test_generate_action.py
Normal file
@@ -0,0 +1,38 @@
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from odoo.tests.common import TransactionCase
|
||||
|
||||
model = 'odoo.addons.base_report_to_printer.models.printing_server'
|
||||
|
||||
|
||||
class TestWizardPrintRecordLabel(TransactionCase):
|
||||
def setUp(self):
|
||||
super(TestWizardPrintRecordLabel, self).setUp()
|
||||
self.Model = self.env['wizard.print.record.label']
|
||||
self.server = self.env['printing.server'].create({})
|
||||
self.printer = self.env['printing.printer'].create({
|
||||
'name': 'Printer',
|
||||
'server_id': self.server.id,
|
||||
'system_name': 'Sys Name',
|
||||
'default': True,
|
||||
'status': 'unknown',
|
||||
'status_message': 'Msg',
|
||||
'model': 'res.users',
|
||||
'location': 'Location',
|
||||
'uri': 'URI',
|
||||
})
|
||||
self.label = self.env['printing.label.zpl2'].create({
|
||||
'name': 'ZPL II Label',
|
||||
'model_id': self.env.ref(
|
||||
'base_report_to_printer.model_printing_printer').id,
|
||||
})
|
||||
|
||||
def test_create_action(self):
|
||||
""" Check the creation of action """
|
||||
self.label.create_action()
|
||||
self.assertTrue(self.label.action_window_id)
|
||||
|
||||
def test_unlink_action(self):
|
||||
""" Check the unlink of action """
|
||||
self.label.unlink_action()
|
||||
self.assertFalse(self.label.action_window_id)
|
||||
@@ -19,6 +19,9 @@
|
||||
<form string="ZPL II Label">
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<field name="action_window_id" invisible="1"/>
|
||||
<button name="create_action" string="Add in the 'Action' menu" type="object" attrs="{'invisible':[('action_window_id','!=',False)]}" icon="fa-plus-square" help="Display an option on related documents." class="oe_stat_button"/>
|
||||
<button name="unlink_action" string="Remove from the 'Action' menu" type="object" attrs="{'invisible':[('action_window_id','=',False)]}" icon="fa-minus-square" help="Remove the contextual action." class="oe_stat_button"/>
|
||||
<button name="toggle_active" type="object" class="oe_stat_button" icon="fa-archive">
|
||||
<field name="active" widget="boolean_button" options="{"terminology": "archive"}"/>
|
||||
</button>
|
||||
|
||||
Reference in New Issue
Block a user