[Zope-dev] ZClass Meta Types

Jason Spisak webmaster@mtear.com
Tue, 13 Jul 1999 13:34:21 -0800


Holy Moly!

And I thought you could just ask for the absoluteURL() plus the
REQUEST['id'] ;)
Actually, I just tried it and I get a NameError when I call urllib. 
Imports?  It there something else missing?  I just copy/pasted it.  Just
out of curiousity(mostly because I know very little python), why return
a script_name based url?  

Thanks so much!

Jason Spisak
webmaster@mtear.com

Michel Pelletier wrote:
> 
> > -----Original Message-----
> > From: Jason Spisak [mailto:webmaster@mtear.com]
> > Sent: Tuesday, July 13, 1999 4:52 PM
> > To: Michel Pelletier
> > Cc: zope-dev@zope.org
> > Subject: Re: [Zope-dev] ZClass Meta Types
> >
> >
> > >
> > > Jim checked in a change this morning that should fix this.
> > >
> > > -Michel
> > >
> >
> > Michel,
> >
> > I did a CVS update at 9 am or so PST and whe I changes the meta-type
> > inside the ZClass, it still doesn't change in the add list, or t he
> > SubObjects list. Do I need to give it another go?
> >
> 
> I'll look into this:
> 
> > Also, I was wondering if you got my last mail about the Catalog not
> > indexing the objects (Or adding them to the catalog at all)
> > unless I use
> > the "Find Items to Catalog" tab.  I have tried the DTML route, but you
> > had said that would not be as efficient so (and it did work
> > :).  I'm now
> > using an external method called index_object, drawn verbatim from the
> > mail you sent.
> >
> > def index_object
> >     try: self.Catalog.catalog_object(self,self.url())
> >     except: pass
> >
> 
> Ah I neglected to mention that your Findable class needs to define the
> url method. ;)  It should be an external method, just like index_object:
> 
> def url(self, ftype=urllib.splittype, fhost=urllib.splithost):
>     """Return a SCRIPT_NAME-based url for an object."""
>     if hasattr(self, 'DestinationURL') and \
>        callable(self.DestinationURL):
>         url='%s/%s' % (self.DestinationURL(), self.id)
>     else: url=self.absolute_url()
>     type, uri=ftype(url)
>     host, uri=fhost(uri)
>     script_name=self.REQUEST['SCRIPT_NAME']
>     __traceback_info__=(`uri`, `script_name`)
>     if script_name:
>         uri=filter(None, string.split(uri, script_name))[0]
>     uri=uri or '/'
>     if uri[0]=='/': uri=uri[1:]
>     return uri
> 
> > I use that external method in the add constructor of the ZClass,
> >
> >
> > <!--#with "EmployeeClass.createInObjectManager(REQUEST['id'],
> > REQUEST)"-->
> >
> >        <!--#call "propertysheets.properties.manage_changeProperties(
> >                   name=REQUEST['name'],
> >                      wagner_name=REQUEST['wagner_name'],
> >                         extension=REQUEST['extension'],
> >                         address=REQUEST['address']
> >                         )"-->
> >
> >        <!--#call index_object-->
> >
> > <!--#/with-->
> >
> > It creates the object, but does not add it to the catalog.
> > Is this a bug?
> >
> > All my best,
> >
> > Jason Spisak
> > webmaster@mtear.com
> >