[FIX] printing_simple_configuration: add company_id to printer

[FIX] printing_simple_configuration: add _get_printer_by_usage

[FIX] printing_simple_configuration: dependency

[FIX] printing_simple_configuration: maintainers
This commit is contained in:
Mourad
2024-11-07 18:07:44 +01:00
parent c199434dac
commit d5d192f78a
2 changed files with 39 additions and 3 deletions

View File

@@ -1,4 +1,9 @@
from odoo import fields, models
import logging
from odoo import _, api, fields, models
from odoo.exceptions import UserError
_logger = logging.getLogger(__name__)
class Printer(models.Model):
@@ -19,3 +24,34 @@ class Printer(models.Model):
"In some case, erp project may be imply minimal config as module data\n"
"with some fields might updated within the interface"
)
company_id = fields.Many2one(
"res.company",
related="config_id.company_id",
store=True,
)
@api.model
def _get_printer_by_usage(self):
printers = {}
company = self.env.company
domain = [("company_id", "=", company.id)]
if self.env.user.property_warehouse_id:
domain.append(("warehouse_id", "=", self.env.user.property_warehouse_id.id))
else:
domain.append(("warehouse_id", "=", False))
for device in self.search(domain, order="warehouse_id DESC, usage, name DESC"):
conf = device.sudo().config_id
printers[device.usage] = {
"location": "https://%s:%s" % (conf.server, conf.port or 0),
"name": device.name,
"comment": device.comment,
}
_logger.info(" >>> Printers %s" % printers)
if not printers:
raise UserError(
_("There is no printer accessible to you in the company %s")
% company.name
)
return printers