Re: [pyPYME-Giotto] Campo txtCode obligatorio en las fichas...
Status: Planning
Brought to you by:
pyneo
From: Jose <coo...@py...> - 2005-07-22 14:51:23
|
El jue, 21-07-2005 a las 20:54, Marcelo G Ametller escribi=F3: > On 7/19/05, Jose <coo...@py...> wrote: > > El mar, 19-07-2005 a las 20:17, Marcelo G Ametller escribi=F3: > > > Cuando estuve desarrollando la ficha para customers_contacts, al no > > > tener esta un campo -codigo- , note que en > > > talasa/core/cadr/decorator-common.py se referencia a ctl-first-fiel= d > > > con txtCode y este no siempre estara... como campo. Como lo > > > definiriamos para que sea cualquier campo el primero a mostrar de > > > forma global? > >=20 > > No s=E9 si acabo de entender tu pregunta. >=20 > >=20 > > El modelo de objetos del formulario-ficha est=E1 pensado para que cad= a > > formulario-ficha pueda personalizar su comportamiento. Entre otras co= sas > > puede indicar c=F3mo se llama el "primer" control de la vista sin m=E1= s que > > indicarlo al inicializar la instancia: > >=20 > > def Initialize(self): > > DataControlController.Initialize(self) > >=20 > > context =3D self.GetDefaultContext() > > ... > > context['ctl_first_field'] =3D self.[nombre_del_contro= l] > > ... > >=20 >=20 > El problema esta en que cuando llama a GetDefaultContext necesita que > en el control visual ya este un campo txtCODE, ya que lo llama antes > de poder asignarle el valor a 'ctl_first_field' S=ED, tienes raz=F3n. El uso de GetDefaultContext() presupone la existenc= ia de un control llamado 'txtCode'. Para evitar este problema creo mejor sustituir GetDefaultContext() por CustomizeDefaultContext(context), donde context ser=E1 un diccionario con las opciones personalizadas. As=ED quedar=EDa: def Initialize(self): DataControlController.Initialize(self) context =3D { 'ctl_first_field': self.[nombre_del_control], ... } self.CustomizeDefaultContext(context) > Si anulo dicha asignacion por defecto y lo asigno como decis en > instancia del objeto que estoy haciendo, funciona, pero me obliga a > asignar siempre el primer campo en todas las fichas. >=20 > Como hacemos para inicializar por defecto, el primer campo a mostrar? =BFTe sirve la propuesta que he hecho m=E1s arriba? |