diff --git a/printer.py b/printer.py index 872d655..5f704f8 100644 --- a/printer.py +++ b/printer.py @@ -1,13 +1,32 @@ from trytond.model import Model, ModelSQL, ModelView, fields +from trytond.pyson import Eval class Device(Model): 'Devices' __name__ = 'sale_device' + name = fields.Char("Name") - ip_address = fields.Char('IP Address or Network', help='IPv4 or IPv6 IP address or network. Valid values include: 192.168.0.26 or 192.168.0.0/24') - + type_ = fields.Selection([('usb', "Usb"), + ('network', "Network")], "Type") + ip_address = fields.Char('IP Address or Network', + states={'required': Eval('type_') == 'network', + 'invisible': Eval('type_') != 'network'}, + 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' diff --git a/view/printer_form.xml b/view/printer_form.xml index 6fa4c32..603d4ad 100644 --- a/view/printer_form.xml +++ b/view/printer_form.xml @@ -4,12 +4,18 @@
diff --git a/view/printer_tree.xml b/view/printer_tree.xml index 8c2893b..a990ff9 100644 --- a/view/printer_tree.xml +++ b/view/printer_tree.xml @@ -2,6 +2,7 @@