Re: [Zope-dev] ZPT in Zope Products

2004-04-15 Thread Santi Camps
Wyatt Anderson escribi:

Hello All,

I am trying to use ZPT within a Zope Product I am trying to build.

I want to test the container type I am addding to to determine what

action to take. The following though

from Products.PageTemplates.PageTemplateFile import PageTemplateFile

def manage_addMyContainerForm(self, REQUEST):

pt = None

if self.meta_type in [ContainerType1, ContainerType2]:

pt = PageTemplateFile(zpt/addMyContainerForm, globals())

else:

pt = PageTemplateFile(zpt/containerError, globals())

return pt.pt_render()

This produces the following traceback in Zope:

Traceback (innermost last):

 Module ZPublisher.Publish, line 100, in publish

 Module ZPublisher.mapply, line 88, in mapply

 Module ZPublisher.Publish, line 40, in call_object

 Module Products.MyContainer.MyContainer, line 17, in manage_addMyContainerForm

 Module Products.PageTemplates.PageTemplate, line 90, in pt_render

  - PageTemplateFile at containerError

 Module Products.PageTemplates.PageTemplateFile, line 73, in pt_getContext

TypeError: 'str' object is not callable

Ive checked out the code in PageTemplate.py and PageTemplateFile.py 
and cant

figure out what is going on. The line in question is

root = self.getPhysicalRoot()

Is it possibly some security thing? My class is 
setDefaultAccess(allow) for now.

Ive also tried simply

return pt

with no traceback but without the desired results as the object is 
returned.

Thanks in advance,

Wyatt

Try return pt()

Santi Camps

___
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] ZPT in Zope Products

2004-04-15 Thread Wyatt Anderson
This does not work either.  With this I get the following traceback:

Traceback (innermost last):
  Module ZPublisher.Publish, line 100, in publish
  Module ZPublisher.mapply, line 88, in mapply
  Module ZPublisher.Publish, line 40, in call_object
  Module Products.MyContainer.MyContainer, line 17, in
manage_addMyContainerForm
  Module Shared.DC.Scripts.Bindings, line 306, in __call__
  Module Shared.DC.Scripts.Bindings, line 341, in _bindAndExec
  Module Shared.DC.Scripts.Bindings, line 1, in ?
  Module Shared.DC.Scripts.Bindings, line 286, in _getTraverseSubpath
AttributeError: 'str' object has no attribute 'other'

return pt

works with incorrect results...displays PageTemplateFile at
containerError

return pt.document_src()

works to the extent that it actually displays what's in the ZPT but does
not render any of the TAL.

return pt.pt_render()

does not work causing the traceback from my original message.

return pt()

gives me the above traceback.

Unfortunately I cannot find any good documentation on ZPT.  I could
give up and do my checking in the ZPT itself but this does not lead
to reusability.  BTW, using Zope 2.7.

Anyone out there with an example of how they've used page templates
in a product?

Thanks,
Wyatt

-Original Message-
From: Santi Camps [mailto:[EMAIL PROTECTED] 
Sent: Thursday, April 15, 2004 4:26 AM
To: Wyatt Anderson
Cc: [EMAIL PROTECTED]
Subject: Re: [Zope-dev] ZPT in Zope Products

Wyatt Anderson escribió:

 Hello All,

 I am trying to use ZPT within a Zope Product I am trying to build.

 I want to test the container type I am addding to to determine what

 action to take. The following though

 from Products.PageTemplates.PageTemplateFile import PageTemplateFile

 def manage_addMyContainerForm(self, REQUEST):

 pt = None

 if self.meta_type in [‘ContainerType1’, ‘ContainerType2’]:

 pt = PageTemplateFile(‘zpt/addMyContainerForm’, globals())

 else:

 pt = PageTemplateFile(‘zpt/containerError’, globals())

 return pt.pt_render()

 This produces the following traceback in Zope:

Traceback (innermost last):

  Module ZPublisher.Publish, line 100, in publish

  Module ZPublisher.mapply, line 88, in mapply

  Module ZPublisher.Publish, line 40, in call_object

  Module Products.MyContainer.MyContainer, line 17, in
manage_addMyContainerForm

  Module Products.PageTemplates.PageTemplate, line 90, in pt_render

   - PageTemplateFile at containerError

  Module Products.PageTemplates.PageTemplateFile, line 73, in
pt_getContext

TypeError: 'str' object is not callable

 I’ve checked out the code in PageTemplate.py and PageTemplateFile.py 
 and can’t

 figure out what is going on. The line in question is

 root = self.getPhysicalRoot()

 Is it possibly some security thing? My class is 
 setDefaultAccess(‘allow’) for now.

 I’ve also tried simply

 return pt

 with no traceback but without the desired results as the object is 
 returned.

 Thanks in advance,

 Wyatt

Try return pt()

Santi Camps

___
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 )


[Zope-dev] ZPT in Zope Products

2004-04-15 Thread Clemens Robbenhaar

Hi Wyatt,

  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
   
  def manage_addMyContainerForm(self, REQUEST):
pt = None
  if self.meta_type in ['ContainerType1', 'ContainerType2']:
  pt = PageTemplateFile('zpt/addMyContainerForm', globals())
else:
  pt = PageTemplateFile('zpt/containerError', globals())
return pt.pt_render()

I guess the problem is that the page template file is called without
acquision context. Usually a page template file is a class attribute of
a class which knows about acquisition.

You could mange in the right context via 

 return pt.__of__(self).pt_render()

but I am not sure if this will fly.

Cheers,
Clemens

___
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 )


[Zope-dev] ZPT in Zope Products

2004-04-14 Thread Wyatt Anderson








Hello All,



I am trying to use ZPT within a Zope
Product I am trying to build.

I want to test the container type I am addding to to determine what

action
to take. The following though 



from
Products.PageTemplates.PageTemplateFile import PageTemplateFile



def
manage_addMyContainerForm(self, REQUEST):

 pt = None

if
self.meta_type in [ContainerType1, ContainerType2]:

 pt = PageTemplateFile(zpt/addMyContainerForm, globals())

 else:

 pt = PageTemplateFile(zpt/containerError, globals())

 return pt.pt_render()



This produces the following traceback
in Zope:



Traceback (innermost last): Module ZPublisher.Publish, line 100, in publish Module ZPublisher.mapply, line 88, in mapply Module ZPublisher.Publish, line 40, in call_object Module Products.MyContainer.MyContainer, line 17, in manage_addMyContainerForm Module Products.PageTemplates.PageTemplate, line 90, in pt_render - PageTemplateFile at containerError Module Products.PageTemplates.PageTemplateFile, line 73, in pt_getContextTypeError: 'str' object is not callable





Ive checked out the code in PageTemplate.py and PageTemplateFile.py
and cant

figure
out what is going on. The line in
question is



 root = self.getPhysicalRoot()



Is it possibly some security thing? My class is setDefaultAccess(allow)
for now.

Ive also tried simply



 return pt



with
no traceback but without the desired results as the
object is returned.



Thanks in advance,

Wyatt






___
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 )