Skip to content

Commit

Permalink
[FIX] base_report_to_printer: update printers wizard
Browse files Browse the repository at this point in the history
- Add access rules to the wizard
- Set a fallback name for the printers and respect the user custom ones

TT45159
  • Loading branch information
chienandalu committed Sep 20, 2023
1 parent 8a21ba8 commit 1d45dac
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 4 deletions.
1 change: 1 addition & 0 deletions base_report_to_printer/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"data": [
"data/printing_data.xml",
"security/security.xml",
"security/ir.model.access.csv",
"views/printing_printer.xml",
"views/printing_server.xml",
"views/printing_job.xml",
Expand Down
2 changes: 1 addition & 1 deletion base_report_to_printer/models/printing_printer.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class PrintingPrinter(models.Model):
def _prepare_update_from_cups(self, cups_connection, cups_printer):
mapping = {3: "available", 4: "printing", 5: "error"}
cups_vals = {
"name": cups_printer["printer-info"],
"name": self.name or cups_printer["printer-info"],
"model": cups_printer.get("printer-make-and-model", False),
"location": cups_printer.get("printer-location", False),
"uri": cups_printer.get("device-uri", False),
Expand Down
5 changes: 5 additions & 0 deletions base_report_to_printer/models/printing_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,11 @@ def update_printers(self, domain=None, raise_on_error=False):
printer_values["server_id"] = server.id

updated_printers.append(name)
# We want to keep any existing customized name over existing printer
# We want also to rely in the system name as a fallback to avoid
# empty names.
if not printer_values.get("name") and not printer.name:
printer_values["name"] = name

Check warning on line 128 in base_report_to_printer/models/printing_server.py

View check run for this annotation

Codecov / codecov/patch

base_report_to_printer/models/printing_server.py#L128

Added line #L128 was not covered by tests
if not printer:
printer_values["system_name"] = name
printer.create(printer_values)
Expand Down
2 changes: 2 additions & 0 deletions base_report_to_printer/security/ir.model.access.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
access_printing_printer_update_wizard,printers update,model_printing_printer_update_wizard,base.group_system,1,1,1,1
7 changes: 4 additions & 3 deletions base_report_to_printer/tests/test_printing_printer_tray.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ def setUp(self):
self.server = self.env["printing.server"].create({})
self.printer = self.env["printing.printer"].create(
{
"name": "Printer",
"name": "",
"server_id": self.server.id,
"system_name": "Sys Name",
"default": True,
Expand Down Expand Up @@ -105,10 +105,11 @@ def test_update_printers(self, cups):
Check that the update_printers method calls _prepare_update_from_cups
"""
self.mock_cups_ppd(cups, file_name=False)

self.assertEqual(self.printer.name, "Printer")
self.ServerModel.update_printers()
self.assertEqual(self.printer.name, "info")
self.printer.name = "My custom name"
self.ServerModel.update_printers()
self.assertEqual(self.printer.name, "My custom name")

@mock.patch("%s.cups" % server_model)
def test_prepare_update_from_cups_no_ppd(self, cups):
Expand Down

0 comments on commit 1d45dac

Please sign in to comment.