He creado un objeto para el contexto:
class CustomersContext(ModelView, Workflow, ModelSQL):
'Customers Context'
__name__ = 'crm.customers.context'
range_months = fields.Selection([
('current', 'Current Month'),
('two_last', '2 Last Months'),
('three_last', '3 Last Months'),
('six_last', '6 Last Months'),
('nine_last', '9 Last Months'),
('all', 'All Year'),
], 'Range Months')
company = fields.Many2One('company.company', 'Company', required=True)
salesman = fields.Many2One('company.employee', 'Salesman')
subdivision = fields.Function(fields.Many2One('country.subdivision',
'State'), 'get_subdivision', searcher='search_subdivision')
@classmethod
def __setup__(cls):
super(CustomersContext, cls).__setup__()
cls._buttons.update({
'current_month': {
'invisible': False,
},
'two_last_month': {
'invisible': False,
},
'three_last_month': {
'invisible': False,
},
})
@fields.depends('range_months')
def on_change_range_months(cls):
print 60 * "*"
print "Cambio el combo de Customers"
print cls.range_months
pool = Pool()
Party = pool.get('party.party')
context = Transaction().context
parties= Transaction().context.get('parties')
print parties
print 60 * "*"
pass
y la vista xml correspondiente:
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<form col="8">
<label name="range_months"/>
<field name="range_months"/>
<label name="salesman"/>
<field widget='selection' name="salesman"/>
</form>
y la llamada:
<record model="ir.ui.view" id="customers_context_view_form">
<field name="model">crm.customers.context</field>
<field name="type">form</field>
<field name="name">customers_context_form</field>
</record>
<record model="ir.ui.view" id="customer_view_tree">
<field name="model">party.party</field>
<field name="type">tree</field>
<field name="name">customer_tree</field>
</record>
<record model="ir.action.act_window" id="act_customer_form">
<field name="name">Customers</field>
<field name="res_model">party.party</field>
<field name="context_model">crm.customers.context</field>
</record>
Esto me genera una vista como la que adjunto.
Me he quedado estancado por que no se como obtener el listado de registros
de parties y como aplicarle un filtro y volver a mostrar el nuevo listado
filtrado.
Si alguien me da una mano estaré muy agradecido.
Att
<https://lh3.googleusercontent.com/-fwJaMJjEGWY/WVR_1OqkH7I/AAAAAAAAAQM/Fc7Xp-sRuJ4Zfm4SrQD6F8KGnWrAXviSACLcBGAs/s1600/tryton_cmr_filter.png>
Elmer
El miércoles, 28 de junio de 2017, 12:17:11 (UTC-5), Elmer Steven Salazar
Arias escribió:
>
> Se tiene documentación sobre el context_model?. Donde encuentro un ejemplo
> de su uso.
>
> Att
> Elmer
>
> El miércoles, 28 de junio de 2017, 4:00:08 (UTC-5), Sergi Almacellas
> Abellana escribió:
>>
>> El 27/06/17 a les 23:16, Elmer Steven Salazar Arias ha escrit:
>> > Estimados, en mi proceso de aprendizaje de la herramienta me encuentro
>> > con un caso de aplicación de filtros que no se como aplicar en tryton:
>> >
>> > Tengo una tabla con varias columnas que contienen la cantidad de
>> > trabajos realizados en un mes. Se requiere filtrar solo los registros
>> > que tengan en los 3 primeros meses algún trabajo, he intentado aplicar
>> > un filtro similar a este:
>> >
>> > (Job1:+Job2:+Job3:)>0, pero evidentemente esta mal. Como se puede
>> > aplicar ese tipo de filtros?
>> >
>> > Es posible tener uno o varios combo box en la cabecera de la rejilla
>> > para parametrizar los filtros a aplicar?
>> Deberias utilizar un context_model para definir los valors que quieres
>> settear en en contexto y luego applicar los filtros en tu modelo segun
>> estos valores.
>>
>> En el context_model puedes añadir los campos que quieras.
>>
>> --
>> Sergi Almacellas Abellana
>> www.koolpi.com
>> Twitter: @pokoli_srk
>>
>