Re: [Zope] changing the meta_type for python product class

2006-12-07 Thread Dieter Maurer
Dragos Chirila wrote at 2006-12-6 20:53 +0200:
>Ok, you are right, but if I do it why the ZMI is showing to me the new
>meta type for both instances? This is wrong...

You have to distinquish between attributes defined on class and those
defined on instance level.

Attributes defined on class level are not persisted. When you change
the attribute on the class, all class instances will see the change.

Attributes defined on instance level are persisted. If you later
change the value used to initialize the attribute, only newly created
instances will get this new value; old instances will retain the old
value.


"meta_type" is usually defined on class level.
This is also the case in your situation -- as you see the value
changing, when you change the class definition.


>Also, I don't understand why if I explicit change the meta_type
>property for the old instance (e.g. a method of MyClass that is called
>via URL) still nothing happens?

If you change "meta_type" on a specific instance, then it will stick
and no longer follow any modifications in the class.
>
>I also tried to add the following lines to the MyClass:
>
>_properties = (
>Folder._properties
>+
>(
>{'id': 'meta_type', 'type': 'string', 'mode': 'w'},
>)
>)
>
>In the Properties tab for both instances the same value is shown for
>the meta_type property.

Only after you changed the properties at least once, become the
properties instance level attributes (there might even be
an optimization that a property is not written when its value did not
change. In this case, you would need to change the properties value
in order to make it an instance attribute). Up to that point,
the default value defined on class level is used.



-- 
Dieter
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] changing the meta_type for python product class

2006-12-06 Thread Dragos Chirila

Hi!

Thank you very much for your response.

Ok, you are right, but if I do it why the ZMI is showing to me the new
meta type for both instances? This is wrong...

Also, I don't understand why if I explicit change the meta_type
property for the old instance (e.g. a method of MyClass that is called
via URL) still nothing happens?

I also tried to add the following lines to the MyClass:

   _properties = (
   Folder._properties
   +
   (
   {'id': 'meta_type', 'type': 'string', 'mode': 'w'},
   )
   )

In the Properties tab for both instances the same value is shown for
the meta_type property.

Thank you very much once again for taking time to consider my problem.

Regards,
Dragos.

On 12/6/06, Dieter Maurer <[EMAIL PROTECTED]> wrote:

Dragos Chirila wrote at 2006-12-6 15:48 +0200:
> ...
>What I am trying to accomplish is to be able to change the meta_type
>value and this to work (e.g. with no effect on python scripts like
>'listing')

The best way is *NOT* to change the meta type (at least not when
you have places that require it unchanged).

Instead derive a new class from it and give this new class a new
meta_type.



--
Dieter


___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] changing the meta_type for python product class

2006-12-06 Thread Dieter Maurer
Dragos Chirila wrote at 2006-12-6 15:48 +0200:
> ...
>What I am trying to accomplish is to be able to change the meta_type
>value and this to work (e.g. with no effect on python scripts like
>'listing')

The best way is *NOT* to change the meta type (at least not when
you have places that require it unchanged).

Instead derive a new class from it and give this new class a new
meta_type.



-- 
Dieter
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )