[Zope] Problems with zclass and instances!!
Edgardo Zulian
ezulian@elsitio.com.ar
Thu, 2 Aug 2001 11:15:57 -0300
This is a multi-part message in MIME format.
------=_NextPart_000_1F8E_01C11B44.80C00B00
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Hi there:
I have created a product 'X' with a zclass call 'X1'. This X1 zclass in =
the propertysheet has a Common Instance Property Sheet called 'section' =
(/Control_Panel/Products/X/X1/propertysheets/common/section), with some
properties with default values:
ie. one of it's property is call ed 'section1' with the default value =
'left side', the type of this property is 'string':
section1 'left side' string
Then in the views of the zclass I 've added a method =
"propertysheets/section/manage",=20
so when I create an instance I can enter to this propertysheet.
So the problem is here:
When I create an instance of this 'X1' zclass an I enter to this =
propertysheet/section , I can change the default value of 'section1' =
which was 'left side' to 'center side' for example.
But then if i change the original default value of my zclass 'X1' to =
'right side' let say. The change will not be reflected in my instance, =
which is okey because i have change d the value to 'center side' =
before.
Another case is when I create another instance of 'X1' zclass =
without making any change to the value of 'section1' and click on save =
changes, then if I change the default value in the zclass, the change =
will not be reflected in this instance.
So the question is:
There is a way to recognize when an instance will not take the changes =
that are make to the default values of a propertysheets (in this case =
thepropertysheet 'section' ) of a zclass from which they inheritance?
I try with this lines in an external method, but nothing:
self=3Dself._getOb('instanceTest') # instanceTest is the name =
of the instance of the 'X1 Zclass'
a=3Dgetattr(self,'meta_type')
b=3Dgetattr(self.__class__,'meta_type')
# in this example the answer was the same: X1
a=3Deval('self.__class__.propertysheets.section._propertyMap()')
b=3Deval('self.propertysheets.section._propertyMap()')
# the answer was again the same: {'id': 'section1', 'type': =
'string','meta': {}, 'mode': 'w'}
#I try acceding to the zclass to know if it was different from =
theinstance...
=
a=3Deval('self.Control_Panel.Products.X.propertysheets.common.section.pro=
pertyMap()')
# the answer not help: {'id': 'section1', 'type': 'string', 'meta': =
{}},
=20
I cannot found any property or something that help me...
I don't know where to look or what to try next....if anybody can help me =
with this.......
Thanks in advance
Edgardo
------=_NextPart_000_1F8E_01C11B44.80C00B00
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4522.1800" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2><FONT face=3D"Times New Roman" =
size=3D3>Hi=20
there:<BR><BR>I have created a product 'X' with a zclass call 'X1'. This =
X1=20
zclass in the propertysheet has a Common Instance Property Sheet =
called =20
'section' =
(/Control_Panel/Products/X/X1/propertysheets/common/section),=20
with some<BR>properties with default values:<BR>ie. one of it's property =
is call=20
ed 'section1' with the default value 'left side', the type =
of =20
this property is 'string':<BR>section1 'left =
side' =20
string<BR><BR>Then in the views of the zclass I 've =20
added a method "propertysheets/section/manage", =
</FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><FONT face=3D"Times New Roman" =
size=3D3>so when I=20
create an instance I can enter to this=20
propertysheet.<BR></FONT></FONT></DIV><FONT face=3DArial size=3D2><FONT=20
face=3D"Times New Roman" size=3D3>
<DIV><BR>So the problem is here:<BR><BR> When I create an instance =
of=20
this 'X1' zclass an I enter to this propertysheet/section =
, I=20
can change the default value of 'section1' which was 'left side' to =
'center=20
side' for example.<BR><BR>But then if i change the original default =
value of my=20
zclass 'X1' to 'right side' let say. The change will not be reflected in =
my=20
instance, which is okey because i have change d the =
value to=20
'center side' before.<BR><BR>Another case is when I create another =
instance of 'X1' zclass without making any change to =
the value=20
of 'section1' and click on save changes, then if I change the =
default=20
value in the zclass, the change will not be reflected in this=20
instance.<BR><BR>So the question is:<BR><BR>There is a way to recognize =
when an=20
instance will not take the changes that are make to the =
default values=20
of a propertysheets (in this case thepropertysheet 'section' ) of =
a zclass=20
from which they inheritance?<BR><BR> I try with this lines in an =
external=20
method, but nothing:<BR><BR> =20
self=3Dself._getOb('instanceTest') &nb=
sp; =20
# instanceTest is the name of the instance of the 'X1=20
Zclass'<BR> a=3Dgetattr(self,'meta_type')<BR> =20
b=3Dgetattr(self.__class__,'meta_type')<BR> # in this =
example the=20
answer was the same: X1<BR><BR> =20
a=3Deval('self.__class__.propertysheets.section._propertyMap()')<BR> =
; =20
b=3Deval('self.propertysheets.section._propertyMap()')<BR> # =
the=20
answer was again the same: {'id': 'section1', 'type': 'string','meta': =
{},=20
'mode': 'w'}<BR><BR> #I try acceding to the zclass to know =
if it was=20
different from theinstance...<BR> =20
a=3Deval('self.Control_Panel.Products.X.propertysheets.common.section.pro=
pertyMap()')<BR> =20
# the answer not help: {'id': 'section1', 'type': 'string', 'meta': =
{}},</DIV>
<DIV> <BR>I cannot found any property or something that help =
me...</DIV>
<DIV><BR>I don't know where to look or what to try next....if anybody =
can help=20
me with this.......<BR><BR>Thanks in=20
advance<BR>Edgardo</FONT><BR><BR><BR></DIV></FONT></BODY></HTML>
------=_NextPart_000_1F8E_01C11B44.80C00B00--