[Zope-dev] Problems with zclass and instances!!!
Edgardo Zulian
ezulian@elsitio.com.ar
Thu, 2 Aug 2001 11:17:34 -0300
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",
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=self._getOb('instanceTest') # instanceTest is the name of
the instance of the 'X1 Zclass'
a=getattr(self,'meta_type')
b=getattr(self.__class__,'meta_type')
# in this example the answer was the same: X1
a=eval('self.__class__.propertysheets.section._propertyMap()')
b=eval('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=eval('self.Control_Panel.Products.X.propertysheets.common.section.property
Map()')
# the answer not help: {'id': 'section1', 'type': 'string', 'meta': {}},
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