from trytond.pool import Pool, PoolMeta from trytond.model import ModelView, ModelSQL, fields from trytond.pyson import Eval, Bool, If class SaleLine(metaclass=PoolMeta): 'SaleLine' __name__ = 'sale.line' address_equipment = fields.Many2One('party.address', "Direccion") @classmethod @ModelView.button def process(cls, sales): states = {'confirmed', 'processing', 'done'} sales = [s for s in sales if s.state in states] cls.lock(sales) cls._process_invoice(sales) cls._process_shipment(sales) cls._process_invoice_shipment_states(sales) cls._process_state(sales) @classmethod def view_attributes(cls): return super(SaleLine, cls).view_attributes() + [ ('//page[@id="equipment"]', 'states', { 'invisible': ~Eval('lines.product.equipment'), })]