trytondo-sale_printer/printer.py

47 lines
1.4 KiB
Python

from trytond.model import Model, ModelSQL, ModelView, fields
from trytond.pyson import Eval
class Device(Model):
'Devices'
__name__ = 'sale_device'
name = fields.Char("Name")
type_ = fields.Selection([
('usb', "USB"),
('network', "Network")], "Type")
ip_address = fields.Char(
'IP Address or Network',
states={'required': Eval('type_') == 'network',
'invisible': Eval('type_') == 'usb'},
help='IPv4 or IPv6 IP address or network. \
Valid values include: 192.168.0.26 or 192.168.0.0/24')
idVendor = fields.Char('idVendor', states={
'required': Eval('type_') == 'usb',
'invisible': Eval('type_') != 'usb',
})
idProduct = fields.Char('idProduct', states={
'required': Eval('type_') == 'usb',
'invisible': Eval('type_') != 'usb',
})
@classmethod
def default_type_(cls):
return 'network'
class Printer(Device, ModelSQL, ModelView):
'Printer'
__name__ = 'sale.printer'
zone = fields.Selection([('bar', "Bar"),
('kitchen', "Kitchen"),
('reception', "Reception")], "Zone")
shop = fields.Many2One('sale.shop', "Shop")
api = fields.Many2One('sale.printer_api', "API")
class Api(Device, ModelSQL, ModelView):
'Api printer'
__name__ = 'sale.printer_api'