Re: [Zope-dev] Adding a TemporaryFolder inside a factory method of a Zope class

2004-08-14 Thread Dieter Maurer
Marco Bizzarri wrote at 2004-8-13 12:19 +0200:
 ...
|2) how can I do what I want to do in a single transaction?
|
|
| I fear you will need your own MountPoint logic that
| does not depend an preconfigured storages in Zope's configuration
| file.
|

I don't think so. You can add a temporary folder wherever you want in a
Zope installation without any configuration.

You may be right.

However, I see in Zope 2.7:

context.registerClass(
TemporaryFolder.MountedTemporaryFolder,
permission=TemporaryFolder.ADD_TEMPORARY_FOLDER_PERM,
icon='www/tempfolder.gif',
meta_type='Temporary Folder',
constructors=(TemporaryFolder.constructTemporaryFolderForm,
  TemporaryFolder.constructTemporaryFolder),
visibility=0 # dont show this in the add list for 2.7+ (use dbtab)
)

Thus, at least Zope 2.7 wants that you use DBTab.

Also, I'm using Zope 2.6.4, which has not any configuration for the
storage (no DBTab here).

I no longer have Zope 2.6 and therefore cannot help you further.

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


Re: [Zope-dev] Adding a TemporaryFolder inside a factory method of a Zope class

2004-08-12 Thread Dieter Maurer
Paolo Bizzarri wrote at 2004-8-10 09:44 +0200:
 ...
from Products.TemporaryFolder.TemporaryFolder import constructTemporaryFolder

def manage_addMyFolderCache(container, id, title='')
   mfc = MyFolderCache(id, title)
   container._setObject(id, mfc)

The standard way is:

destination.manage_addProduct[product_name].constructor(...).

When you follow the standard way, you avoid FMEs (Frequently Made Errors)
such as the above: mfc is not acquisition wrapped!

def manage_addMyFolder(container, id, title='')
   mf = MyFolder(id, title)
   container._setObject(id, mf)

   constructTemporaryFolder(mf, id='tmp', title='')
   manage_addMyFolderCache(mf.tmp, id='cache', title='cache')

The Problem

The problems occur inside manage_addMyFolderCache, when it tries the 
container._setObject. The error is always an AttributeError, because there is 
no _setObject.

After a brief look at the MountedTemporaryFolder class, I can understand that 
there is still no folder inside mf.tmp, because the populate has not been 
called yet.

Now the questions:

1)what is the problem which is occuring?

Did you extend the Zope configuration?
Such that you have a second temporary storage that can be mounted
at your place?

2) how can I do what I want to do in a single transaction?

I fear you will need your own MountPoint logic that
does not depend an preconfigured storages in Zope's configuration
file.

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