[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