<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-28342</id>
	<title>Nabble - Grok</title>
	<updated>2009-11-27T03:07:11Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/Grok-f28342.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Grok-f28342.html" />
	<subtitle type="html">&lt;a href=&quot;http://grok.zope.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok&lt;/a&gt; is a web application framework for &lt;a href=&quot;http://www.python.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Python&lt;/a&gt; developers. It is aimed at both beginners and very experienced web developers. Grok has an emphasis on agile development. Grok is easy and powerful.</subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26540952</id>
	<title>Re: Grok application with Eclipse 3.2</title>
	<published>2009-11-27T03:07:11Z</published>
	<updated>2009-11-27T03:07:11Z</updated>
	<author>
		<name>Michael Haubenwallner-2</name>
	</author>
	<content type="html">-----BEGIN PGP SIGNED MESSAGE-----
&lt;br&gt;Hash: SHA1
&lt;br&gt;&lt;br&gt;Martijn Faassen wrote:
&lt;br&gt;&amp;gt; Hey,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Hector Blanco wrote:
&lt;br&gt;&amp;gt;&amp;gt; Does anyone know a good place where I can find an explanation in how to 
&lt;br&gt;&amp;gt;&amp;gt; use Eclipse to develop a Grok/Zope application? 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Looks like nobody knows of such a place! Have you made any progress?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&lt;br&gt;pydev (&lt;a href=&quot;http://pydev.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pydev.org/&lt;/a&gt;) should have everything you need.
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;Michael
&lt;br&gt;&lt;br&gt;- --
&lt;br&gt;&lt;a href=&quot;http://blog.d2m.at&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.d2m.at&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://planetzope.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://planetzope.org&lt;/a&gt;&lt;br&gt;&lt;br&gt;-----BEGIN PGP SIGNATURE-----
&lt;br&gt;Version: GnuPG v1.4.9 (GNU/Linux)
&lt;br&gt;Comment: Using GnuPG with Mozilla - &lt;a href=&quot;http://enigmail.mozdev.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://enigmail.mozdev.org/&lt;/a&gt;&lt;br&gt;&lt;br&gt;iEYEARECAAYFAksPst4ACgkQl0uAvQJUKVbYqgCfRC1u1bP62pyQCMmOaOqTGnak
&lt;br&gt;pocAnA/fuhrMcCvQlfLjGYk/6U6iw1jS
&lt;br&gt;=1WHV
&lt;br&gt;-----END PGP SIGNATURE-----
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26540952&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Grok-application-with-Eclipse-3.2-tp26440358p26540952.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26540850</id>
	<title>Re: url() method on JSON component</title>
	<published>2009-11-27T03:00:43Z</published>
	<updated>2009-11-27T03:00:43Z</updated>
	<author>
		<name>Jan-Wijbrand Kolman-3</name>
	</author>
	<content type="html">Jan-Wijbrand Kolman wrote:
&lt;br&gt;&amp;gt; Now, what do I call these mixins?
&lt;br&gt;&lt;br&gt;I chose &amp;quot;ViewSupport&amp;quot;. Is has been merged just now with the grok trunk 
&lt;br&gt;(and grokcore.view-1.13 and grokcore.view trunk). grokcore.view-1.13a2 
&lt;br&gt;has been released.
&lt;br&gt;&lt;br&gt;JSON, REST and XMLRPC components now gained url() and application_url() 
&lt;br&gt;methods and response and body properties.
&lt;br&gt;&lt;br&gt;regards,
&lt;br&gt;jw
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26540850&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/url%28%29-method-on-JSON-component-tp26163984p26540850.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26540699</id>
	<title>Re: Grok application with Eclipse 3.2</title>
	<published>2009-11-27T02:40:33Z</published>
	<updated>2009-11-27T02:40:33Z</updated>
	<author>
		<name>Martijn Faassen-2</name>
	</author>
	<content type="html">Hey,
&lt;br&gt;&lt;br&gt;Hector Blanco wrote:
&lt;br&gt;&amp;gt; Does anyone know a good place where I can find an explanation in how to 
&lt;br&gt;&amp;gt; use Eclipse to develop a Grok/Zope application? 
&lt;br&gt;&lt;br&gt;Looks like nobody knows of such a place! Have you made any progress?
&lt;br&gt;&lt;br&gt;I was wondering whether some people who have experience developing with 
&lt;br&gt;another IDE such as WingIDE might have any ideas..
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;&lt;br&gt;Martijn
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26540699&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Grok-application-with-Eclipse-3.2-tp26440358p26540699.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26540673</id>
	<title>Re: a grok.getApplication() implementation</title>
	<published>2009-11-27T02:38:30Z</published>
	<updated>2009-11-27T02:38:30Z</updated>
	<author>
		<name>Martijn Faassen-2</name>
	</author>
	<content type="html">Christian Theune wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On 11/27/2009 02:22 AM, Kevin Teague wrote:
&lt;br&gt;&amp;gt;&amp;gt; The grok.getApplication() has been discussed/proposed a few times in
&lt;br&gt;&amp;gt;&amp;gt; the past, e.g.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://article.gmane.org/gmane.comp.web.zope.grok.devel/5521&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://article.gmane.org/gmane.comp.web.zope.grok.devel/5521&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I'd really like this function available in Grok, so I put together an
&lt;br&gt;&amp;gt;&amp;gt; implementation, and some tests for it, available on a branch:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.zope.org/grok/branches/kteague-getapp/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.zope.org/grok/branches/kteague-getapp/&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The implementation, in grok.utils, just looks like this:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; def getApplication():
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;quot;&amp;quot;Get the application.&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;site = grok.getSite()
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;if grok.interfaces.IApplication.providedBy(site):
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return site
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# another sub-site is within the application, walk up
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# the tree until we get to the application
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;parent = site.__parent__
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while not grok.interfaces.IApplication.providedBy(parent):
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;parent = parent.__parent__
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return parent
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Not sure if there is a better way to do this?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; There already is an implementation that acquires the application from a 
&lt;br&gt;&amp;gt; view to return its URL.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; In my projects I tend to complement that implementation with the same 
&lt;br&gt;&amp;gt; algorithm that just returns the object instead of getting the URL.
&lt;/div&gt;&lt;br&gt;I think Kevin's looks like a reasonable implementation and it mirrors 
&lt;br&gt;getSite(), so I'm +1.
&lt;br&gt;&lt;br&gt;I don't find myself using application_url for some reason.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;&lt;br&gt;Martijn
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26540673&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/a-grok.getApplication%28%29-implementation-tp26536864p26540673.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26539881</id>
	<title>Re: Migrating catalog indexes</title>
	<published>2009-11-27T01:33:29Z</published>
	<updated>2009-11-27T01:33:29Z</updated>
	<author>
		<name>Sebastian Ware</name>
	</author>
	<content type="html">This looks very interesting! It addresses my biggest gripe with Grok &amp;nbsp;
&lt;br&gt;to date.
&lt;br&gt;&lt;br&gt;But how do you set the grok.context of the index? When defining a &amp;nbsp;
&lt;br&gt;grok.Index one can have the same catalog name for different contexts. &amp;nbsp;
&lt;br&gt;&amp;nbsp;From your code example I don't see how I specify this. This is what a &amp;nbsp;
&lt;br&gt;typical catalog would look like for me:
&lt;br&gt;&lt;br&gt;class SiteSearchCatalog(grok.Indexes):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;grok.site(BoardsportSource)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;grok.context(IFeedItemSupport)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;grok.name('feed_index')
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;tags = grok.index.Set()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;feed_types = grok.index.Set(attribute='supportedFeedTypes')
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;search = grok.index.Text(attribute=&amp;quot;fullTextSearch&amp;quot;
&lt;br&gt;&lt;br&gt;from boardsportsource.interfaces import IPublishDate
&lt;br&gt;class SitePublishCatalog(grok.Indexes):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;grok.site(BoardsportSource)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;grok.context(IPublishDate)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;grok.name('feed_index')
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;publish_datetime = Value(attribute='publish_datetime')
&lt;br&gt;&lt;br&gt;Mvh Sebastian
&lt;br&gt;&lt;br&gt;27 nov 2009 kl. 00.24 skrev Simon Jagoe:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; 2009/11/26 Kevin Teague &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26539881&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kevin@...&lt;/a&gt;&amp;gt;:
&lt;br&gt;&amp;gt;&amp;gt; If you've got an Indexes, such as:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; class MyIndexes(grok.Indexes):
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; grok.site(MyApp)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; grok.context(gsc.haystack.interfaces.IContent)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; created = grok.index.Field()
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; And it gets grokked, then a catalog and a field index will be &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; created.
&lt;br&gt;&amp;gt;&amp;gt; But then if you add a second field index:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; class MyIndexes(grok.Indexes):
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; grok.site(MyApp)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; grok.context(gsc.haystack.interfaces.IContent)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; created = grok.index.Field()
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; modified = grok.index.Field()
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; This index doesn't get created. Soooo ... what's the best way to
&lt;br&gt;&amp;gt;&amp;gt; migrate a catalog when the indexes are updated after the initial
&lt;br&gt;&amp;gt;&amp;gt; creation. Anyone got any tips here?
&lt;br&gt;&amp;gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt;&amp;gt; Grok-dev mailing list
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26539881&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi Kevin,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I may not be the best person to answer this as I was wondering the
&lt;br&gt;&amp;gt; same thing recently. I decided to poke around in the debug console to
&lt;br&gt;&amp;gt; see if I could come up with an answer.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I am using the debug prompt (./bin/app-debug) of the grok environment
&lt;br&gt;&amp;gt; for this experiment. I will write all of this with the assumption that
&lt;br&gt;&amp;gt; we have this grok.Indexes subclass:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; class ResultIndexes(grok.Indexes):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;grok.site(App)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;grok.context(IResult)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;grok.name('my_catalog')
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;name = index.Field()
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;date = index.Field(attribute='get_date')
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;is_verified = index.Field()
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; and we want to end up with this:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; class ResultIndexes(grok.Indexes):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;grok.site(App)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;grok.context(IResult)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;grok.name('my_catalog')
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;name = index.Field()
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;date = index.Field(attribute='get_date')
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;is_verified = index.Field()
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;did_fall = index.Field()
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Start the app debug prompt:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; $ ./bin/app-debug
&lt;br&gt;&amp;gt; Welcome to the interactive debug prompt.
&lt;br&gt;&amp;gt; The 'root' variable contains the ZODB root folder.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The 'app' variable contains the Debugger, 'app.publish(path)'
&lt;br&gt;&amp;gt; simulates a request.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; # Assuming you have an app called 'app' instantiated already:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; app = root[u'app']
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; local_site_manager = app.getSiteManager()
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; # The name here is the value that was provided in the grok.name()
&lt;br&gt;&amp;gt; # directive on the class. I guess empty if you did not name your
&lt;br&gt;&amp;gt; # catalog.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; from zope.app.catalog.interfaces import ICatalog
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; cat = local_site_manager.getUtility(ICatalog, name='my_catalog')
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; # The catalog is a container with keys of the fields you declared in
&lt;br&gt;&amp;gt; # your grok.Indexes subclass
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; print [f for f in c.keys()]
&lt;br&gt;&amp;gt; [u'date', u'is_verified', u'name']
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; # To add a did_fall index, assuming did_fall is a schema.Bool declared
&lt;br&gt;&amp;gt; # on my IResult interface
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; cat[u'did_fall'] = FieldIndex(field_name=u'did_fall')
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; # Not sure if this is required
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; import transaction
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; transaction.commit()
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; # Now update the index to include the new value
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; cat.updateIndexes()
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Then to test that the catalog had updated, I wrote a unit test (I
&lt;br&gt;&amp;gt; couldn't seem to use hurry.query in that debug prompt).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Adding a view with the following render method allowed me to test the
&lt;br&gt;&amp;gt; updated catalog. The result from this was [u'simon'], as expected. The
&lt;br&gt;&amp;gt; data to be indexed was present in the application before updating the
&lt;br&gt;&amp;gt; index.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;def render(self):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from hurry.query.query import Query, Eq
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return str([r.__name__ for r in Query().searchResults(
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Eq(('slalom_result_catalog', 'did_fall'), True))])
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hopefully this is coherent and useful, I wrote it up as I was
&lt;br&gt;&amp;gt; experimenting with this. Maybe somebody can throw in some more useful
&lt;br&gt;&amp;gt; comments (and perhaps how to turn this into a script that can be run
&lt;br&gt;&amp;gt; stand-alone would be useful too).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt; Simon
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Grok-dev mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26539881&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;/div&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26539881&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Migrating-catalog-indexes-tp26535555p26539881.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26539427</id>
	<title>Re: Values from another document before rendering</title>
	<published>2009-11-27T00:48:56Z</published>
	<updated>2009-11-27T00:48:56Z</updated>
	<author>
		<name>Kathy Manwaring</name>
	</author>
	<content type="html">Hi Sebastian,
&lt;br&gt;&lt;br&gt;Thank you so much for such a quick response and for including an actual
&lt;br&gt;code example!
&lt;br&gt;&lt;br&gt;I am on a 3 day conference at the moment, but will try this out as soon as
&lt;br&gt;I can next week.
&lt;br&gt;&lt;br&gt;Kathy
&lt;br&gt;&lt;br&gt;Sebastian Ware wrote:
&lt;br&gt;&amp;gt; This is what I do. I have a field defined in an interface:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; gallery_id = schema.Choice(title=u&amp;quot;Gallery&amp;quot;, vocabulary=u&amp;quot;Published
&lt;br&gt;NewProductGalleries&amp;quot;)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The vocabulary looks like this (it is a bit dirty, but it might help you
&lt;br&gt;in the right direction):
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; import grok
&lt;br&gt;&amp;gt; from zope import schema
&lt;br&gt;&amp;gt; from zope.schema.vocabulary import SimpleVocabulary
&lt;br&gt;&amp;gt; from boardsportsource import interfaces
&lt;br&gt;&amp;gt; from boardsportsource import workflow
&lt;br&gt;&amp;gt; from hurry import query
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; class NewProductGalleriesSource(grok.GlobalUtility):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; grok.implements(schema.interfaces.IVocabularyFactory)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; grok.name('Published NewProductGalleries')
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; def __call__(self, context):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; terms = self.get_published_galleries(context)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return &amp;nbsp;SimpleVocabulary(terms)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; def get_published_galleries(self, context):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; hasItem = []
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if hasattr(context, 'gallery_id') and context.gallery_id is not
&lt;/div&gt;None:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # I allways need to have the current value in my vocabulary
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # or choice widgets won't render.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; hasItem.append(context.gallery_id)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # I use hurry.query to find the objects I want to use in
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # my vocabulary.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; theQuery = query.Eq(('workflow_catalog', 'workflow_state'),
&lt;br&gt;workflow.PUBLISHED)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; theQuery = theQuery &amp; query.Eq(('workflow_catalog',
&lt;br&gt;'object_type'), 'new_product_gallery')
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dictResult = query.query.Query().searchResults(theQuery)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; theList = []
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for item in dictResult:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; theObj = interfaces.INewProductGallery(item)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; theList.append(SimpleVocabulary.createTerm(theObj.__name__,
&lt;br&gt;theObj.__name__, '%s (%s)' % (theObj.title, 'default')))
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if theObj.__name__ in hasItem:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; hasItem.remove(theObj.__name__)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for key in hasItem:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # If the current value wasn't found in the search I add it here
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # with an appropriate message.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if grok.getSite()['default'].has_key(key):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; theObj =
&lt;br&gt;interfaces.IImageOfTheDayGallery(grok.getSite()['default'][key])
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; theList.append(SimpleVocabulary.createTerm(key, key, '%s
&lt;br&gt;(not published!)' % theObj.title))
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; theList.append(SimpleVocabulary.createTerm(key, key, '%s
&lt;br&gt;has been removed!' % key))
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return theList
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Mvh Sebastian
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 26 nov 2009 kl. 11.00 skrev Kathy Manwaring:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Firstly, thank you very much for your quick responses to my last query -
&lt;br&gt;&amp;gt;&amp;gt; they put me on the right track. Now, I have another question...
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I have a class that needs to get values from another entry when it is
&lt;br&gt;&amp;gt;&amp;gt; created or edited. So, when creating a Person, the list of values that I
&lt;br&gt;&amp;gt;&amp;gt; can choose from for the type of Person are values that are editable on
&lt;br&gt;&amp;gt;&amp;gt; another entry.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; It LOOKS like I should be able to use a dynamically calculated
&lt;br&gt;&amp;gt;&amp;gt; SimpleVocabulary, but I can't get it to work - I think I need to use
&lt;br&gt;&amp;gt;&amp;gt; self.context on the interface definition of the schema field, but self is
&lt;br&gt;&amp;gt;&amp;gt; not defined.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Alternatively, can I do it in setupWidgets before rendering? (Can't see
&lt;br&gt;&amp;gt;&amp;gt; enough information about setupWidgets to answer the question).
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Any help would be appreciated.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Kathy
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt;&amp;gt; Grok-dev mailing list
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26539427&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;/div&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26539427&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Values-from-another-document-before-rendering-tp26526990p26539427.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26538308</id>
	<title>Re: a grok.getApplication() implementation</title>
	<published>2009-11-26T22:18:03Z</published>
	<updated>2009-11-26T22:18:03Z</updated>
	<author>
		<name>Christian Theune-2</name>
	</author>
	<content type="html">On 11/27/2009 02:22 AM, Kevin Teague wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; The grok.getApplication() has been discussed/proposed a few times in
&lt;br&gt;&amp;gt; the past, e.g.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://article.gmane.org/gmane.comp.web.zope.grok.devel/5521&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://article.gmane.org/gmane.comp.web.zope.grok.devel/5521&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I'd really like this function available in Grok, so I put together an
&lt;br&gt;&amp;gt; implementation, and some tests for it, available on a branch:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://svn.zope.org/grok/branches/kteague-getapp/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.zope.org/grok/branches/kteague-getapp/&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The implementation, in grok.utils, just looks like this:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; def getApplication():
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;quot;&amp;quot;Get the application.&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;site = grok.getSite()
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;if grok.interfaces.IApplication.providedBy(site):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return site
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# another sub-site is within the application, walk up
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# the tree until we get to the application
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;parent = site.__parent__
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while not grok.interfaces.IApplication.providedBy(parent):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;parent = parent.__parent__
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return parent
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Not sure if there is a better way to do this?
&lt;/div&gt;&lt;br&gt;There already is an implementation that acquires the application from a 
&lt;br&gt;view to return its URL.
&lt;br&gt;&lt;br&gt;In my projects I tend to complement that implementation with the same 
&lt;br&gt;algorithm that just returns the object instead of getting the URL.
&lt;br&gt;&lt;br&gt;Christian
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Christian Theune · &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26538308&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ct@...&lt;/a&gt;
&lt;br&gt;gocept gmbh &amp; co. kg · forsterstraße 29 · 06112 halle (saale) · germany
&lt;br&gt;&lt;a href=&quot;http://gocept.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gocept.com&lt;/a&gt;&amp;nbsp;· tel +49 345 1229889 0 · fax +49 345 1229889 1
&lt;br&gt;Zope and Plone consulting and development
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26538308&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/a-grok.getApplication%28%29-implementation-tp26536864p26538308.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26536864</id>
	<title>a grok.getApplication() implementation</title>
	<published>2009-11-26T17:22:02Z</published>
	<updated>2009-11-26T17:22:02Z</updated>
	<author>
		<name>Kevin Teague</name>
	</author>
	<content type="html">The grok.getApplication() has been discussed/proposed a few times in
&lt;br&gt;the past, e.g.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://article.gmane.org/gmane.comp.web.zope.grok.devel/5521&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://article.gmane.org/gmane.comp.web.zope.grok.devel/5521&lt;/a&gt;&lt;br&gt;&lt;br&gt;I'd really like this function available in Grok, so I put together an
&lt;br&gt;implementation, and some tests for it, available on a branch:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://svn.zope.org/grok/branches/kteague-getapp/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.zope.org/grok/branches/kteague-getapp/&lt;/a&gt;&lt;br&gt;&lt;br&gt;The implementation, in grok.utils, just looks like this:
&lt;br&gt;&lt;br&gt;def getApplication():
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;quot;&amp;quot;&amp;quot;Get the application.&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; site = grok.getSite()
&lt;br&gt;&amp;nbsp; &amp;nbsp; if grok.interfaces.IApplication.providedBy(site):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return site
&lt;br&gt;&amp;nbsp; &amp;nbsp; else:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # another sub-site is within the application, walk up
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # the tree until we get to the application
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; parent = site.__parent__
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while not grok.interfaces.IApplication.providedBy(parent):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; parent = parent.__parent__
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return parent
&lt;br&gt;&lt;br&gt;Not sure if there is a better way to do this?
&lt;br&gt;&lt;br&gt;The tests are in src/grok/ftests/application/, they could maybe be
&lt;br&gt;improved as my Site() zen is also not super great. Although this
&lt;br&gt;feature is relatively simple, so perhaps it's good enough to be merged
&lt;br&gt;to trunk?
&lt;br&gt;&lt;br&gt;(docs need to be updated to, I can do this post-merge)
&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26536864&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/a-grok.getApplication%28%29-implementation-tp26536864p26536864.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26536573</id>
	<title>[off-topic] Who is grok?</title>
	<published>2009-11-26T16:32:50Z</published>
	<updated>2009-11-26T16:32:50Z</updated>
	<author>
		<name>Kevin Teague</name>
	</author>
	<content type="html">I've been on a low-carbohydrate diet recently, and came across this
&lt;br&gt;health and lifestyle web site which promotes a &amp;quot;paleolithic
&lt;br&gt;lifestyle&amp;quot;:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://www.marksdailyapple.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.marksdailyapple.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;So aside from being an interesting site for anyone who wants to inform
&lt;br&gt;their lifestyle choices from the life of the cavemen, I found it even
&lt;br&gt;more interesting that they've got a caveman mascot, and his name is
&lt;br&gt;also Grok!
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://www.marksdailyapple.com/about-2/who-is-grok/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.marksdailyapple.com/about-2/who-is-grok/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Their Grok is certainly a lot more fit than ours, but I think we've
&lt;br&gt;got the much better logo. Their Grok just has a puny spear, we've got
&lt;br&gt;a full-size club. :P
&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26536573&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-off-topic--Who-is-grok--tp26536573p26536573.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26536181</id>
	<title>Re: Migrating catalog indexes</title>
	<published>2009-11-26T15:26:42Z</published>
	<updated>2009-11-26T15:26:42Z</updated>
	<author>
		<name>Simon Jagoe</name>
	</author>
	<content type="html">&amp;gt;    def render(self):
&lt;br&gt;&amp;gt;        from hurry.query.query import Query, Eq
&lt;br&gt;&amp;gt;        return str([r.__name__ for r in Query().searchResults(
&lt;br&gt;&amp;gt;                    Eq(('slalom_result_catalog', 'did_fall'), True))])
&lt;br&gt;&lt;br&gt;Sorry that should have been edited to the catalog name 'my_catalog'.
&lt;br&gt;I didn't check over it thoroughly enough before sending. Render method
&lt;br&gt;would be:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; def render(self):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; from hurry.query.query import Query, Eq
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return str([r.__name__ for r in Query().searchResults(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Eq(('my_catalog', 'did_fall'), True))])
&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26536181&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Migrating-catalog-indexes-tp26535555p26536181.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26536170</id>
	<title>Re: Migrating catalog indexes</title>
	<published>2009-11-26T15:24:24Z</published>
	<updated>2009-11-26T15:24:24Z</updated>
	<author>
		<name>Simon Jagoe</name>
	</author>
	<content type="html">2009/11/26 Kevin Teague &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26536170&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kevin@...&lt;/a&gt;&amp;gt;:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; If you've got an Indexes, such as:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; class MyIndexes(grok.Indexes):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;grok.site(MyApp)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;grok.context(gsc.haystack.interfaces.IContent)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;created = grok.index.Field()
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; And it gets grokked, then a catalog and a field index will be created.
&lt;br&gt;&amp;gt; But then if you add a second field index:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; class MyIndexes(grok.Indexes):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;grok.site(MyApp)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;grok.context(gsc.haystack.interfaces.IContent)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;created = grok.index.Field()
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;modified = grok.index.Field()
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This index doesn't get created. Soooo ... what's the best way to
&lt;br&gt;&amp;gt; migrate a catalog when the indexes are updated after the initial
&lt;br&gt;&amp;gt; creation. Anyone got any tips here?
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Grok-dev mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26536170&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;Hi Kevin,
&lt;br&gt;&lt;br&gt;I may not be the best person to answer this as I was wondering the
&lt;br&gt;same thing recently. I decided to poke around in the debug console to
&lt;br&gt;see if I could come up with an answer.
&lt;br&gt;&lt;br&gt;I am using the debug prompt (./bin/app-debug) of the grok environment
&lt;br&gt;for this experiment. I will write all of this with the assumption that
&lt;br&gt;we have this grok.Indexes subclass:
&lt;br&gt;&lt;br&gt;class ResultIndexes(grok.Indexes):
&lt;br&gt;&amp;nbsp; &amp;nbsp; grok.site(App)
&lt;br&gt;&amp;nbsp; &amp;nbsp; grok.context(IResult)
&lt;br&gt;&amp;nbsp; &amp;nbsp; grok.name('my_catalog')
&lt;br&gt;&amp;nbsp; &amp;nbsp; name = index.Field()
&lt;br&gt;&amp;nbsp; &amp;nbsp; date = index.Field(attribute='get_date')
&lt;br&gt;&amp;nbsp; &amp;nbsp; is_verified = index.Field()
&lt;br&gt;&lt;br&gt;and we want to end up with this:
&lt;br&gt;&lt;br&gt;class ResultIndexes(grok.Indexes):
&lt;br&gt;&amp;nbsp; &amp;nbsp; grok.site(App)
&lt;br&gt;&amp;nbsp; &amp;nbsp; grok.context(IResult)
&lt;br&gt;&amp;nbsp; &amp;nbsp; grok.name('my_catalog')
&lt;br&gt;&amp;nbsp; &amp;nbsp; name = index.Field()
&lt;br&gt;&amp;nbsp; &amp;nbsp; date = index.Field(attribute='get_date')
&lt;br&gt;&amp;nbsp; &amp;nbsp; is_verified = index.Field()
&lt;br&gt;&amp;nbsp; &amp;nbsp; did_fall = index.Field()
&lt;br&gt;&lt;br&gt;Start the app debug prompt:
&lt;br&gt;&lt;br&gt;$ ./bin/app-debug
&lt;br&gt;Welcome to the interactive debug prompt.
&lt;br&gt;The 'root' variable contains the ZODB root folder.
&lt;br&gt;&lt;br&gt;The 'app' variable contains the Debugger, 'app.publish(path)'
&lt;br&gt;simulates a request.
&lt;br&gt;&lt;br&gt;# Assuming you have an app called 'app' instantiated already:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; app = root[u'app']
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; local_site_manager = app.getSiteManager()
&lt;br&gt;&lt;br&gt;# The name here is the value that was provided in the grok.name()
&lt;br&gt;# directive on the class. I guess empty if you did not name your
&lt;br&gt;# catalog.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; from zope.app.catalog.interfaces import ICatalog
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; cat = local_site_manager.getUtility(ICatalog, name='my_catalog')
&lt;br&gt;&lt;br&gt;# The catalog is a container with keys of the fields you declared in
&lt;br&gt;# your grok.Indexes subclass
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; print [f for f in c.keys()]
&lt;br&gt;[u'date', u'is_verified', u'name']
&lt;br&gt;&lt;br&gt;# To add a did_fall index, assuming did_fall is a schema.Bool declared
&lt;br&gt;# on my IResult interface
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; cat[u'did_fall'] = FieldIndex(field_name=u'did_fall')
&lt;br&gt;&lt;br&gt;# Not sure if this is required
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; import transaction
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; transaction.commit()
&lt;br&gt;&lt;br&gt;# Now update the index to include the new value
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; cat.updateIndexes()
&lt;br&gt;&lt;br&gt;Then to test that the catalog had updated, I wrote a unit test (I
&lt;br&gt;couldn't seem to use hurry.query in that debug prompt).
&lt;br&gt;&lt;br&gt;Adding a view with the following render method allowed me to test the
&lt;br&gt;updated catalog. The result from this was [u'simon'], as expected. The
&lt;br&gt;data to be indexed was present in the application before updating the
&lt;br&gt;index.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; def render(self):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; from hurry.query.query import Query, Eq
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return str([r.__name__ for r in Query().searchResults(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Eq(('slalom_result_catalog', 'did_fall'), True))])
&lt;br&gt;&lt;br&gt;Hopefully this is coherent and useful, I wrote it up as I was
&lt;br&gt;experimenting with this. Maybe somebody can throw in some more useful
&lt;br&gt;comments (and perhaps how to turn this into a script that can be run
&lt;br&gt;stand-alone would be useful too).
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Simon
&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26536170&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Migrating-catalog-indexes-tp26535555p26536170.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26535555</id>
	<title>Migrating catalog indexes</title>
	<published>2009-11-26T14:11:31Z</published>
	<updated>2009-11-26T14:11:31Z</updated>
	<author>
		<name>Kevin Teague</name>
	</author>
	<content type="html">If you've got an Indexes, such as:
&lt;br&gt;&lt;br&gt;class MyIndexes(grok.Indexes):
&lt;br&gt;&amp;nbsp; &amp;nbsp; grok.site(MyApp)
&lt;br&gt;&amp;nbsp; &amp;nbsp; grok.context(gsc.haystack.interfaces.IContent)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; created = grok.index.Field()
&lt;br&gt;&lt;br&gt;And it gets grokked, then a catalog and a field index will be created.
&lt;br&gt;But then if you add a second field index:
&lt;br&gt;&lt;br&gt;class MyIndexes(grok.Indexes):
&lt;br&gt;&amp;nbsp; &amp;nbsp; grok.site(MyApp)
&lt;br&gt;&amp;nbsp; &amp;nbsp; grok.context(gsc.haystack.interfaces.IContent)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; created = grok.index.Field()
&lt;br&gt;&amp;nbsp; &amp;nbsp; modified = grok.index.Field()
&lt;br&gt;&lt;br&gt;This index doesn't get created. Soooo ... what's the best way to
&lt;br&gt;migrate a catalog when the indexes are updated after the initial
&lt;br&gt;creation. Anyone got any tips here?
&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26535555&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Migrating-catalog-indexes-tp26535555p26535555.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26530687</id>
	<title>Re: Values from another document before rendering</title>
	<published>2009-11-26T07:03:59Z</published>
	<updated>2009-11-26T07:03:59Z</updated>
	<author>
		<name>Sebastian Ware</name>
	</author>
	<content type="html">This is what I do. I have a field defined in an interface:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;gallery_id = schema.Choice(title=u&amp;quot;Gallery&amp;quot;, vocabulary=u&amp;quot;Published &amp;nbsp;
&lt;br&gt;NewProductGalleries&amp;quot;)
&lt;br&gt;&lt;br&gt;The vocabulary looks like this (it is a bit dirty, but it might help &amp;nbsp;
&lt;br&gt;you in the right direction):
&lt;br&gt;&lt;br&gt;&lt;br&gt;import grok
&lt;br&gt;from zope import schema
&lt;br&gt;from zope.schema.vocabulary import SimpleVocabulary
&lt;br&gt;from boardsportsource import interfaces
&lt;br&gt;from boardsportsource import workflow
&lt;br&gt;from hurry import query
&lt;br&gt;&lt;br&gt;class NewProductGalleriesSource(grok.GlobalUtility):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;grok.implements(schema.interfaces.IVocabularyFactory)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;grok.name('Published NewProductGalleries')
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;def __call__(self, context):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;terms = self.get_published_galleries(context)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return &amp;nbsp;SimpleVocabulary(terms)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;def get_published_galleries(self, context):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;hasItem = []
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if hasattr(context, 'gallery_id') and context.gallery_id is &amp;nbsp;
&lt;br&gt;not None:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# I allways need to have the current value in my vocabulary
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# or choice widgets won't render.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;hasItem.append(context.gallery_id)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# I use hurry.query to find the objects I want to use in
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# my vocabulary.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;theQuery = query.Eq(('workflow_catalog', 'workflow_state'), &amp;nbsp;
&lt;br&gt;workflow.PUBLISHED)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;theQuery = theQuery &amp; query.Eq(('workflow_catalog', &amp;nbsp;
&lt;br&gt;'object_type'), 'new_product_gallery')
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dictResult = query.query.Query().searchResults(theQuery)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;theList = []
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for item in dictResult:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;theObj = interfaces.INewProductGallery(item)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;theList.append(SimpleVocabulary.createTerm(theObj.__name__, &amp;nbsp;
&lt;br&gt;theObj.__name__, '%s (%s)' % (theObj.title, 'default')))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if theObj.__name__ in hasItem:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;hasItem.remove(theObj.__name__)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for key in hasItem:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# If the current value wasn't found in the search I add &amp;nbsp;
&lt;br&gt;it here
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# with an appropriate message.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if grok.getSite()['default'].has_key(key):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;theObj = &amp;nbsp;
&lt;br&gt;interfaces.IImageOfTheDayGallery(grok.getSite()['default'][key])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;theList.append(SimpleVocabulary.createTerm(key, key, &amp;nbsp;
&lt;br&gt;'%s (not published!)' % theObj.title))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;theList.append(SimpleVocabulary.createTerm(key, key, &amp;nbsp;
&lt;br&gt;'%s has been removed!' % key))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return theList
&lt;br&gt;&lt;br&gt;Mvh Sebastian
&lt;br&gt;&lt;br&gt;&lt;br&gt;26 nov 2009 kl. 11.00 skrev Kathy Manwaring:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Firstly, thank you very much for your quick responses to my last &amp;nbsp;
&lt;br&gt;&amp;gt; query -
&lt;br&gt;&amp;gt; they put me on the right track. Now, I have another question...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have a class that needs to get values from another entry when it is
&lt;br&gt;&amp;gt; created or edited. So, when creating a Person, the list of values &amp;nbsp;
&lt;br&gt;&amp;gt; that I
&lt;br&gt;&amp;gt; can choose from for the type of Person are values that are editable on
&lt;br&gt;&amp;gt; another entry.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It LOOKS like I should be able to use a dynamically calculated
&lt;br&gt;&amp;gt; SimpleVocabulary, but I can't get it to work - I think I need to use
&lt;br&gt;&amp;gt; self.context on the interface definition of the schema field, but &amp;nbsp;
&lt;br&gt;&amp;gt; self is
&lt;br&gt;&amp;gt; not defined.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Alternatively, can I do it in setupWidgets before rendering? (Can't &amp;nbsp;
&lt;br&gt;&amp;gt; see
&lt;br&gt;&amp;gt; enough information about setupWidgets to answer the question).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Any help would be appreciated.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Kathy
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Grok-dev mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26530687&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;/div&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26530687&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Values-from-another-document-before-rendering-tp26526990p26530687.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26526990</id>
	<title>Values from another document before rendering</title>
	<published>2009-11-26T02:00:45Z</published>
	<updated>2009-11-26T02:00:45Z</updated>
	<author>
		<name>Kathy Manwaring</name>
	</author>
	<content type="html">Firstly, thank you very much for your quick responses to my last query -
&lt;br&gt;they put me on the right track. Now, I have another question...
&lt;br&gt;&lt;br&gt;I have a class that needs to get values from another entry when it is
&lt;br&gt;created or edited. So, when creating a Person, the list of values that I
&lt;br&gt;can choose from for the type of Person are values that are editable on
&lt;br&gt;another entry.
&lt;br&gt;&lt;br&gt;It LOOKS like I should be able to use a dynamically calculated
&lt;br&gt;SimpleVocabulary, but I can't get it to work - I think I need to use
&lt;br&gt;self.context on the interface definition of the schema field, but self is
&lt;br&gt;not defined.
&lt;br&gt;&lt;br&gt;Alternatively, can I do it in setupWidgets before rendering? (Can't see
&lt;br&gt;enough information about setupWidgets to answer the question).
&lt;br&gt;&lt;br&gt;Any help would be appreciated.
&lt;br&gt;&lt;br&gt;Kathy
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26526990&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Values-from-another-document-before-rendering-tp26526990p26526990.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26510572</id>
	<title>Re: url() method on JSON component</title>
	<published>2009-11-25T02:36:32Z</published>
	<updated>2009-11-25T02:36:32Z</updated>
	<author>
		<name>Jan-Wijbrand Kolman-3</name>
	</author>
	<content type="html">Martijn Faassen wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Jan-Wijbrand Kolman wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; Proposal:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Not only the url() method is useful for JSON (and maybe even the REST) 
&lt;br&gt;&amp;gt;&amp;gt; components, but so are the application_url() method and the response 
&lt;br&gt;&amp;gt;&amp;gt; property.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I think certainly we need them for the REST components too. It's very 
&lt;br&gt;&amp;gt; common one wants to generate a URL when writing a RESTful protocol.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; The url() method and the response property is defined in 
&lt;br&gt;&amp;gt;&amp;gt; grokcore.view.View. We could split out these into a seperate baseclass. 
&lt;br&gt;&amp;gt;&amp;gt; grokcore.view.View will then inherit from this baseclass.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; In grok we will define a mixin class derived from this baseclass that 
&lt;br&gt;&amp;gt;&amp;gt; adds the application_url() method. The JSON and REST components can then 
&lt;br&gt;&amp;gt;&amp;gt; inherit from this mixin class.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Sounds reasonable. We practically have that mixin class already in the 
&lt;br&gt;&amp;gt; form of components.View in grok. The only differences are that it's a 
&lt;br&gt;&amp;gt; mixin and doesn't have the flash() method.
&lt;/div&gt;&lt;br&gt;Short (oh no, bikeshed alert..!) naming question:
&lt;br&gt;&lt;br&gt;I'm about to checkin some changes in grokcore.view and grok that will:
&lt;br&gt;&lt;br&gt;1) split off the response property and the url() and the redirect() 
&lt;br&gt;methods from grokcore.view.View into a separate &amp;quot;mixin&amp;quot; class.
&lt;br&gt;&lt;br&gt;2) split off the application_url() method from grok.component.View into 
&lt;br&gt;a separate &amp;quot;mixin&amp;quot; class.
&lt;br&gt;&lt;br&gt;That way JSON and XMLRPC and REST components can inherit from these 
&lt;br&gt;mixins and thus gain all the mentioned methods.
&lt;br&gt;&lt;br&gt;Now, what do I call these mixins?
&lt;br&gt;&lt;br&gt;So far I came up with &amp;quot;ViewCommonMixin&amp;quot; for the first. Ugh. And 
&lt;br&gt;ApplicationCommonMixin. Ugh Ugh. Anyone a better idea?
&lt;br&gt;&lt;br&gt;regards,
&lt;br&gt;jw
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26510572&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/url%28%29-method-on-JSON-component-tp26163984p26510572.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26487738</id>
	<title>Re: grokproject broken</title>
	<published>2009-11-23T15:00:20Z</published>
	<updated>2009-11-23T15:00:20Z</updated>
	<author>
		<name>Jeffrey D Peterson</name>
	</author>
	<content type="html">&lt;html xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot; xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:w=&quot;urn:schemas-microsoft-com:office:word&quot; xmlns:x=&quot;urn:schemas-microsoft-com:office:excel&quot; xmlns:p=&quot;urn:schemas-microsoft-com:office:powerpoint&quot; xmlns:a=&quot;urn:schemas-microsoft-com:office:access&quot; xmlns:dt=&quot;uuid:C2F41010-65B3-11d1-A29F-00AA00C14882&quot; xmlns:s=&quot;uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882&quot; xmlns:rs=&quot;urn:schemas-microsoft-com:rowset&quot; xmlns:Z=&quot;urn:schemas-microsoft-com:&quot; xmlns:b=&quot;urn:schemas-microsoft-com:office:publisher&quot; xmlns:ss=&quot;urn:schemas-microsoft-com:office:spreadsheet&quot; xmlns:c=&quot;urn:schemas-microsoft-com:office:component:spreadsheet&quot; xmlns:odc=&quot;urn:schemas-microsoft-com:office:odc&quot; xmlns:oa=&quot;urn:schemas-microsoft-com:office:activation&quot; xmlns:html=&quot;http://www.w3.org/TR/REC-html40&quot; xmlns:q=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; xmlns:rtc=&quot;http://microsoft.com/officenet/conferencing&quot; xmlns:D=&quot;DAV:&quot; xmlns:Repl=&quot;http://schemas.microsoft.com/repl/&quot; xmlns:mt=&quot;http://schemas.microsoft.com/sharepoint/soap/meetings/&quot; xmlns:x2=&quot;http://schemas.microsoft.com/office/excel/2003/xml&quot; xmlns:ppda=&quot;http://www.passport.com/NameSpace.xsd&quot; xmlns:ois=&quot;http://schemas.microsoft.com/sharepoint/soap/ois/&quot; xmlns:dir=&quot;http://schemas.microsoft.com/sharepoint/soap/directory/&quot; xmlns:ds=&quot;http://www.w3.org/2000/09/xmldsig#&quot; xmlns:dsp=&quot;http://schemas.microsoft.com/sharepoint/dsp&quot; xmlns:udc=&quot;http://schemas.microsoft.com/data/udc&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:sub=&quot;http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/&quot; xmlns:ec=&quot;http://www.w3.org/2001/04/xmlenc#&quot; xmlns:sp=&quot;http://schemas.microsoft.com/sharepoint/&quot; xmlns:sps=&quot;http://schemas.microsoft.com/sharepoint/soap/&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:udcs=&quot;http://schemas.microsoft.com/data/udc/soap&quot; xmlns:udcxf=&quot;http://schemas.microsoft.com/data/udc/xmlfile&quot; xmlns:udcp2p=&quot;http://schemas.microsoft.com/data/udc/parttopart&quot; xmlns:wf=&quot;http://schemas.microsoft.com/sharepoint/soap/workflow/&quot; xmlns:dsss=&quot;http://schemas.microsoft.com/office/2006/digsig-setup&quot; xmlns:dssi=&quot;http://schemas.microsoft.com/office/2006/digsig&quot; xmlns:mdssi=&quot;http://schemas.openxmlformats.org/package/2006/digital-signature&quot; xmlns:mver=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot; xmlns:m=&quot;http://schemas.microsoft.com/office/2004/12/omml&quot; xmlns:mrels=&quot;http://schemas.openxmlformats.org/package/2006/relationships&quot; xmlns:spwp=&quot;http://microsoft.com/sharepoint/webpartpages&quot; xmlns:ex12t=&quot;http://schemas.microsoft.com/exchange/services/2006/types&quot; xmlns:ex12m=&quot;http://schemas.microsoft.com/exchange/services/2006/messages&quot; xmlns:pptsl=&quot;http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/&quot; xmlns:spsl=&quot;http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService&quot; xmlns:st=&quot;&amp;#1;&quot; xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;

&lt;head&gt;
&lt;META HTTP-EQUIV=&quot;Content-Type&quot; CONTENT=&quot;text/html; charset=us-ascii&quot;&gt;
&lt;meta name=Generator content=&quot;Microsoft Word 12 (filtered medium)&quot;&gt;

&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapedefaults v:ext=&quot;edit&quot; spidmax=&quot;1026&quot; /&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapelayout v:ext=&quot;edit&quot;&gt;
  &lt;o:idmap v:ext=&quot;edit&quot; data=&quot;1&quot; /&gt;
 &lt;/o:shapelayout&gt;&lt;/xml&gt;&lt;![endif]--&gt;
&lt;/head&gt;

&lt;body lang=EN-US link=blue vlink=purple&gt;

&lt;div class=Section1&gt;

&lt;p class=MsoNormal&gt;&lt;span style='color:#1F497D'&gt;And even more so&amp;#8230;it may be an
issue with our stupid corporate firewall.&amp;nbsp; Don&amp;#8217;t bother looking into this at
this point.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='color:#1F497D'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;'&gt;From:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;'&gt; Jeffrey D Peterson
[mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487738&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;bgpete@...&lt;/a&gt;] &lt;br&gt;
&lt;b&gt;Sent:&lt;/b&gt; Monday, November 23, 2009 4:56 PM&lt;br&gt;
&lt;b&gt;To:&lt;/b&gt; '&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487738&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;grok-dev@...&lt;/a&gt;'&lt;br&gt;
&lt;b&gt;Subject:&lt;/b&gt; RE: grokproject broken&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='color:#1F497D'&gt;After looking some more it may
actually be a bigger issue, with pypi.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='color:#1F497D'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;'&gt;From:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;'&gt; Jeffrey D Peterson
[mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487738&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;bgpete@...&lt;/a&gt;] &lt;br&gt;
&lt;b&gt;Sent:&lt;/b&gt; Monday, November 23, 2009 4:52 PM&lt;br&gt;
&lt;b&gt;To:&lt;/b&gt; '&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487738&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;grok-dev@...&lt;/a&gt;'&lt;br&gt;
&lt;b&gt;Subject:&lt;/b&gt; grokproject broken&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;For some reason I can&amp;#8217;t do anything with grokproject.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;zope@zope2a:~/internal$ virtualenv-2.5 grokenv2&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;New python executable in grokenv2/bin/python-2.5.4&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Also creating executable in grokenv2/bin/python&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Installing setuptools............done.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;zope@zope2a:~/internal$ cd grokenv2/&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;zope@zope2a:~/internal/grokenv2$ source bin/activate&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;(grokenv2)zope@zope2a:~/internal/grokenv2$ easy_install -U
setuptools&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Searching for setuptools&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Reading &lt;a href=&quot;http://pypi.python.org/simple/setuptools/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/simple/setuptools/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Best match: setuptools 0.6c9&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Processing setuptools-0.6c9-py2.5.egg&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;setuptools 0.6c9 is already the active version in
easy-install.pth&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Installing easy_install script to
/home/zope/internal/grokenv2/bin&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Installing easy_install-2.5 script to /home/zope/internal/grokenv2/bin&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Using
/home/zope/internal/grokenv2/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Processing dependencies for setuptools&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Finished processing dependencies for setuptools&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;(grokenv2)zope@zope2a:~/internal/grokenv2$ easy_install
grokproject&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Searching for grokproject&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Reading &lt;a href=&quot;http://pypi.python.org/simple/grokproject/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/simple/grokproject/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;No local packages or download links found for grokproject&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;error: Could not find suitable distribution for Requirement.parse('grokproject')&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;(grokenv2)zope@zope2a:~/internal/grokenv2$&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;I went down this path because I am also having all sorts of
issues with an existing grokproject install complaining about &lt;span class=apple-style-span&gt;&lt;span style='font-size:13.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;
color:black'&gt;version_info_url when trying to create a new project.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Anyone know what&amp;#8217;s up?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;--&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Jeffrey D Peterson&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Webmaster&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Crary Industries, Inc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487738&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-grokproject-broken-tp26487738p26487738.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26487737</id>
	<title>Re: grokproject broken</title>
	<published>2009-11-23T14:55:35Z</published>
	<updated>2009-11-23T14:55:35Z</updated>
	<author>
		<name>Jeffrey D Peterson</name>
	</author>
	<content type="html">&lt;html xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot; xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:w=&quot;urn:schemas-microsoft-com:office:word&quot; xmlns:x=&quot;urn:schemas-microsoft-com:office:excel&quot; xmlns:p=&quot;urn:schemas-microsoft-com:office:powerpoint&quot; xmlns:a=&quot;urn:schemas-microsoft-com:office:access&quot; xmlns:dt=&quot;uuid:C2F41010-65B3-11d1-A29F-00AA00C14882&quot; xmlns:s=&quot;uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882&quot; xmlns:rs=&quot;urn:schemas-microsoft-com:rowset&quot; xmlns:Z=&quot;urn:schemas-microsoft-com:&quot; xmlns:b=&quot;urn:schemas-microsoft-com:office:publisher&quot; xmlns:ss=&quot;urn:schemas-microsoft-com:office:spreadsheet&quot; xmlns:c=&quot;urn:schemas-microsoft-com:office:component:spreadsheet&quot; xmlns:odc=&quot;urn:schemas-microsoft-com:office:odc&quot; xmlns:oa=&quot;urn:schemas-microsoft-com:office:activation&quot; xmlns:html=&quot;http://www.w3.org/TR/REC-html40&quot; xmlns:q=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; xmlns:rtc=&quot;http://microsoft.com/officenet/conferencing&quot; xmlns:D=&quot;DAV:&quot; xmlns:Repl=&quot;http://schemas.microsoft.com/repl/&quot; xmlns:mt=&quot;http://schemas.microsoft.com/sharepoint/soap/meetings/&quot; xmlns:x2=&quot;http://schemas.microsoft.com/office/excel/2003/xml&quot; xmlns:ppda=&quot;http://www.passport.com/NameSpace.xsd&quot; xmlns:ois=&quot;http://schemas.microsoft.com/sharepoint/soap/ois/&quot; xmlns:dir=&quot;http://schemas.microsoft.com/sharepoint/soap/directory/&quot; xmlns:ds=&quot;http://www.w3.org/2000/09/xmldsig#&quot; xmlns:dsp=&quot;http://schemas.microsoft.com/sharepoint/dsp&quot; xmlns:udc=&quot;http://schemas.microsoft.com/data/udc&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:sub=&quot;http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/&quot; xmlns:ec=&quot;http://www.w3.org/2001/04/xmlenc#&quot; xmlns:sp=&quot;http://schemas.microsoft.com/sharepoint/&quot; xmlns:sps=&quot;http://schemas.microsoft.com/sharepoint/soap/&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:udcs=&quot;http://schemas.microsoft.com/data/udc/soap&quot; xmlns:udcxf=&quot;http://schemas.microsoft.com/data/udc/xmlfile&quot; xmlns:udcp2p=&quot;http://schemas.microsoft.com/data/udc/parttopart&quot; xmlns:wf=&quot;http://schemas.microsoft.com/sharepoint/soap/workflow/&quot; xmlns:dsss=&quot;http://schemas.microsoft.com/office/2006/digsig-setup&quot; xmlns:dssi=&quot;http://schemas.microsoft.com/office/2006/digsig&quot; xmlns:mdssi=&quot;http://schemas.openxmlformats.org/package/2006/digital-signature&quot; xmlns:mver=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot; xmlns:m=&quot;http://schemas.microsoft.com/office/2004/12/omml&quot; xmlns:mrels=&quot;http://schemas.openxmlformats.org/package/2006/relationships&quot; xmlns:spwp=&quot;http://microsoft.com/sharepoint/webpartpages&quot; xmlns:ex12t=&quot;http://schemas.microsoft.com/exchange/services/2006/types&quot; xmlns:ex12m=&quot;http://schemas.microsoft.com/exchange/services/2006/messages&quot; xmlns:pptsl=&quot;http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/&quot; xmlns:spsl=&quot;http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService&quot; xmlns:st=&quot;&amp;#1;&quot; xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;

&lt;head&gt;
&lt;META HTTP-EQUIV=&quot;Content-Type&quot; CONTENT=&quot;text/html; charset=us-ascii&quot;&gt;
&lt;meta name=Generator content=&quot;Microsoft Word 12 (filtered medium)&quot;&gt;

&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapedefaults v:ext=&quot;edit&quot; spidmax=&quot;1026&quot; /&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapelayout v:ext=&quot;edit&quot;&gt;
  &lt;o:idmap v:ext=&quot;edit&quot; data=&quot;1&quot; /&gt;
 &lt;/o:shapelayout&gt;&lt;/xml&gt;&lt;![endif]--&gt;
&lt;/head&gt;

&lt;body lang=EN-US link=blue vlink=purple&gt;

&lt;div class=Section1&gt;

&lt;p class=MsoNormal&gt;&lt;span style='color:#1F497D'&gt;After looking some more it may
actually be a bigger issue, with pypi.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='color:#1F497D'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;'&gt;From:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;'&gt; Jeffrey D Peterson
[mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487737&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;bgpete@...&lt;/a&gt;] &lt;br&gt;
&lt;b&gt;Sent:&lt;/b&gt; Monday, November 23, 2009 4:52 PM&lt;br&gt;
&lt;b&gt;To:&lt;/b&gt; '&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487737&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;grok-dev@...&lt;/a&gt;'&lt;br&gt;
&lt;b&gt;Subject:&lt;/b&gt; grokproject broken&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;For some reason I can&amp;#8217;t do anything with grokproject.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;zope@zope2a:~/internal$ virtualenv-2.5 grokenv2&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;New python executable in grokenv2/bin/python-2.5.4&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Also creating executable in grokenv2/bin/python&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Installing setuptools............done.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;zope@zope2a:~/internal$ cd grokenv2/&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;zope@zope2a:~/internal/grokenv2$ source bin/activate&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;(grokenv2)zope@zope2a:~/internal/grokenv2$ easy_install -U
setuptools&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Searching for setuptools&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Reading &lt;a href=&quot;http://pypi.python.org/simple/setuptools/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/simple/setuptools/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Best match: setuptools 0.6c9&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Processing setuptools-0.6c9-py2.5.egg&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;setuptools 0.6c9 is already the active version in
easy-install.pth&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Installing easy_install script to
/home/zope/internal/grokenv2/bin&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Installing easy_install-2.5 script to
/home/zope/internal/grokenv2/bin&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Using
/home/zope/internal/grokenv2/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Processing dependencies for setuptools&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Finished processing dependencies for setuptools&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;(grokenv2)zope@zope2a:~/internal/grokenv2$ easy_install
grokproject&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Searching for grokproject&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Reading &lt;a href=&quot;http://pypi.python.org/simple/grokproject/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/simple/grokproject/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;No local packages or download links found for grokproject&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;error: Could not find suitable distribution for
Requirement.parse('grokproject')&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;(grokenv2)zope@zope2a:~/internal/grokenv2$&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;I went down this path because I am also having all sorts of
issues with an existing grokproject install complaining about &lt;span class=apple-style-span&gt;&lt;span style='font-size:13.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;
color:black'&gt;version_info_url when trying to create a new project.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Anyone know what&amp;#8217;s up?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;--&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Jeffrey D Peterson&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Webmaster&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Crary Industries, Inc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487737&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-grokproject-broken-tp26487737p26487737.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26487736</id>
	<title>grokproject broken</title>
	<published>2009-11-23T14:51:54Z</published>
	<updated>2009-11-23T14:51:54Z</updated>
	<author>
		<name>Jeffrey D Peterson</name>
	</author>
	<content type="html">&lt;html xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot; xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:w=&quot;urn:schemas-microsoft-com:office:word&quot; xmlns:x=&quot;urn:schemas-microsoft-com:office:excel&quot; xmlns:p=&quot;urn:schemas-microsoft-com:office:powerpoint&quot; xmlns:a=&quot;urn:schemas-microsoft-com:office:access&quot; xmlns:dt=&quot;uuid:C2F41010-65B3-11d1-A29F-00AA00C14882&quot; xmlns:s=&quot;uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882&quot; xmlns:rs=&quot;urn:schemas-microsoft-com:rowset&quot; xmlns:Z=&quot;urn:schemas-microsoft-com:&quot; xmlns:b=&quot;urn:schemas-microsoft-com:office:publisher&quot; xmlns:ss=&quot;urn:schemas-microsoft-com:office:spreadsheet&quot; xmlns:c=&quot;urn:schemas-microsoft-com:office:component:spreadsheet&quot; xmlns:odc=&quot;urn:schemas-microsoft-com:office:odc&quot; xmlns:oa=&quot;urn:schemas-microsoft-com:office:activation&quot; xmlns:html=&quot;http://www.w3.org/TR/REC-html40&quot; xmlns:q=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; xmlns:rtc=&quot;http://microsoft.com/officenet/conferencing&quot; xmlns:D=&quot;DAV:&quot; xmlns:Repl=&quot;http://schemas.microsoft.com/repl/&quot; xmlns:mt=&quot;http://schemas.microsoft.com/sharepoint/soap/meetings/&quot; xmlns:x2=&quot;http://schemas.microsoft.com/office/excel/2003/xml&quot; xmlns:ppda=&quot;http://www.passport.com/NameSpace.xsd&quot; xmlns:ois=&quot;http://schemas.microsoft.com/sharepoint/soap/ois/&quot; xmlns:dir=&quot;http://schemas.microsoft.com/sharepoint/soap/directory/&quot; xmlns:ds=&quot;http://www.w3.org/2000/09/xmldsig#&quot; xmlns:dsp=&quot;http://schemas.microsoft.com/sharepoint/dsp&quot; xmlns:udc=&quot;http://schemas.microsoft.com/data/udc&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:sub=&quot;http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/&quot; xmlns:ec=&quot;http://www.w3.org/2001/04/xmlenc#&quot; xmlns:sp=&quot;http://schemas.microsoft.com/sharepoint/&quot; xmlns:sps=&quot;http://schemas.microsoft.com/sharepoint/soap/&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:udcs=&quot;http://schemas.microsoft.com/data/udc/soap&quot; xmlns:udcxf=&quot;http://schemas.microsoft.com/data/udc/xmlfile&quot; xmlns:udcp2p=&quot;http://schemas.microsoft.com/data/udc/parttopart&quot; xmlns:wf=&quot;http://schemas.microsoft.com/sharepoint/soap/workflow/&quot; xmlns:dsss=&quot;http://schemas.microsoft.com/office/2006/digsig-setup&quot; xmlns:dssi=&quot;http://schemas.microsoft.com/office/2006/digsig&quot; xmlns:mdssi=&quot;http://schemas.openxmlformats.org/package/2006/digital-signature&quot; xmlns:mver=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot; xmlns:m=&quot;http://schemas.microsoft.com/office/2004/12/omml&quot; xmlns:mrels=&quot;http://schemas.openxmlformats.org/package/2006/relationships&quot; xmlns:spwp=&quot;http://microsoft.com/sharepoint/webpartpages&quot; xmlns:ex12t=&quot;http://schemas.microsoft.com/exchange/services/2006/types&quot; xmlns:ex12m=&quot;http://schemas.microsoft.com/exchange/services/2006/messages&quot; xmlns:pptsl=&quot;http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/&quot; xmlns:spsl=&quot;http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService&quot; xmlns:st=&quot;&amp;#1;&quot; xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;

&lt;head&gt;
&lt;META HTTP-EQUIV=&quot;Content-Type&quot; CONTENT=&quot;text/html; charset=us-ascii&quot;&gt;
&lt;meta name=Generator content=&quot;Microsoft Word 12 (filtered medium)&quot;&gt;

&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapedefaults v:ext=&quot;edit&quot; spidmax=&quot;1026&quot; /&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapelayout v:ext=&quot;edit&quot;&gt;
  &lt;o:idmap v:ext=&quot;edit&quot; data=&quot;1&quot; /&gt;
 &lt;/o:shapelayout&gt;&lt;/xml&gt;&lt;![endif]--&gt;
&lt;/head&gt;

&lt;body lang=EN-US link=blue vlink=purple&gt;

&lt;div class=Section1&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;For some reason I can&amp;#8217;t do anything with grokproject.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;zope@zope2a:~/internal$ virtualenv-2.5 grokenv2&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;New python executable in grokenv2/bin/python-2.5.4&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Also creating executable in grokenv2/bin/python&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Installing setuptools............done.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;zope@zope2a:~/internal$ cd grokenv2/&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;zope@zope2a:~/internal/grokenv2$ source bin/activate&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;(grokenv2)zope@zope2a:~/internal/grokenv2$ easy_install -U
setuptools&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Searching for setuptools&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Reading &lt;a href=&quot;http://pypi.python.org/simple/setuptools/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/simple/setuptools/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Best match: setuptools 0.6c9&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Processing setuptools-0.6c9-py2.5.egg&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;setuptools 0.6c9 is already the active version in
easy-install.pth&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Installing easy_install script to
/home/zope/internal/grokenv2/bin&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Installing easy_install-2.5 script to
/home/zope/internal/grokenv2/bin&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Using
/home/zope/internal/grokenv2/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Processing dependencies for setuptools&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Finished processing dependencies for setuptools&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;(grokenv2)zope@zope2a:~/internal/grokenv2$ easy_install
grokproject&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Searching for grokproject&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Reading &lt;a href=&quot;http://pypi.python.org/simple/grokproject/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/simple/grokproject/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;No local packages or download links found for grokproject&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;error: Could not find suitable distribution for
Requirement.parse('grokproject')&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;(grokenv2)zope@zope2a:~/internal/grokenv2$&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;I went down this path because I am also having all sorts of
issues with an existing grokproject install complaining about &lt;span class=apple-style-span&gt;&lt;span style='font-size:13.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;
color:black'&gt;version_info_url when trying to create a new project.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Anyone know what&amp;#8217;s up?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;--&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Jeffrey D Peterson&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Webmaster&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Crary Industries, Inc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487736&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/grokproject-broken-tp26487736p26487736.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26487735</id>
	<title>Re: grokproject broken</title>
	<published>2009-11-23T14:34:08Z</published>
	<updated>2009-11-23T14:34:08Z</updated>
	<author>
		<name>Jeff Peterson-2</name>
	</author>
	<content type="html">&lt;html xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot; xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:w=&quot;urn:schemas-microsoft-com:office:word&quot; xmlns:x=&quot;urn:schemas-microsoft-com:office:excel&quot; xmlns:p=&quot;urn:schemas-microsoft-com:office:powerpoint&quot; xmlns:a=&quot;urn:schemas-microsoft-com:office:access&quot; xmlns:dt=&quot;uuid:C2F41010-65B3-11d1-A29F-00AA00C14882&quot; xmlns:s=&quot;uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882&quot; xmlns:rs=&quot;urn:schemas-microsoft-com:rowset&quot; xmlns:Z=&quot;urn:schemas-microsoft-com:&quot; xmlns:b=&quot;urn:schemas-microsoft-com:office:publisher&quot; xmlns:ss=&quot;urn:schemas-microsoft-com:office:spreadsheet&quot; xmlns:c=&quot;urn:schemas-microsoft-com:office:component:spreadsheet&quot; xmlns:odc=&quot;urn:schemas-microsoft-com:office:odc&quot; xmlns:oa=&quot;urn:schemas-microsoft-com:office:activation&quot; xmlns:html=&quot;http://www.w3.org/TR/REC-html40&quot; xmlns:q=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; xmlns:rtc=&quot;http://microsoft.com/officenet/conferencing&quot; xmlns:D=&quot;DAV:&quot; xmlns:Repl=&quot;http://schemas.microsoft.com/repl/&quot; xmlns:mt=&quot;http://schemas.microsoft.com/sharepoint/soap/meetings/&quot; xmlns:x2=&quot;http://schemas.microsoft.com/office/excel/2003/xml&quot; xmlns:ppda=&quot;http://www.passport.com/NameSpace.xsd&quot; xmlns:ois=&quot;http://schemas.microsoft.com/sharepoint/soap/ois/&quot; xmlns:dir=&quot;http://schemas.microsoft.com/sharepoint/soap/directory/&quot; xmlns:ds=&quot;http://www.w3.org/2000/09/xmldsig#&quot; xmlns:dsp=&quot;http://schemas.microsoft.com/sharepoint/dsp&quot; xmlns:udc=&quot;http://schemas.microsoft.com/data/udc&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:sub=&quot;http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/&quot; xmlns:ec=&quot;http://www.w3.org/2001/04/xmlenc#&quot; xmlns:sp=&quot;http://schemas.microsoft.com/sharepoint/&quot; xmlns:sps=&quot;http://schemas.microsoft.com/sharepoint/soap/&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:udcs=&quot;http://schemas.microsoft.com/data/udc/soap&quot; xmlns:udcxf=&quot;http://schemas.microsoft.com/data/udc/xmlfile&quot; xmlns:udcp2p=&quot;http://schemas.microsoft.com/data/udc/parttopart&quot; xmlns:wf=&quot;http://schemas.microsoft.com/sharepoint/soap/workflow/&quot; xmlns:dsss=&quot;http://schemas.microsoft.com/office/2006/digsig-setup&quot; xmlns:dssi=&quot;http://schemas.microsoft.com/office/2006/digsig&quot; xmlns:mdssi=&quot;http://schemas.openxmlformats.org/package/2006/digital-signature&quot; xmlns:mver=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot; xmlns:m=&quot;http://schemas.microsoft.com/office/2004/12/omml&quot; xmlns:mrels=&quot;http://schemas.openxmlformats.org/package/2006/relationships&quot; xmlns:spwp=&quot;http://microsoft.com/sharepoint/webpartpages&quot; xmlns:ex12t=&quot;http://schemas.microsoft.com/exchange/services/2006/types&quot; xmlns:ex12m=&quot;http://schemas.microsoft.com/exchange/services/2006/messages&quot; xmlns:pptsl=&quot;http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/&quot; xmlns:spsl=&quot;http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService&quot; xmlns:st=&quot;&amp;#1;&quot; xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;

&lt;head&gt;
&lt;meta http-equiv=Content-Type content=&quot;text/html; charset=us-ascii&quot;&gt;
&lt;meta name=Generator content=&quot;Microsoft Word 12 (filtered medium)&quot;&gt;

&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapedefaults v:ext=&quot;edit&quot; spidmax=&quot;1026&quot; /&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapelayout v:ext=&quot;edit&quot;&gt;
  &lt;o:idmap v:ext=&quot;edit&quot; data=&quot;1&quot; /&gt;
 &lt;/o:shapelayout&gt;&lt;/xml&gt;&lt;![endif]--&gt;
&lt;/head&gt;

&lt;body lang=EN-US link=blue vlink=purple&gt;

&lt;div class=Section1&gt;

&lt;p class=MsoNormal&gt;For some reason I can&amp;#8217;t do anything with grokproject.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;zope@zope2a:~/internal$ virtualenv-2.5 grokenv2&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;New python executable in grokenv2/bin/python-2.5.4&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Also creating executable in grokenv2/bin/python&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Installing setuptools............done.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;zope@zope2a:~/internal$ cd grokenv2/&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;zope@zope2a:~/internal/grokenv2$ source bin/activate&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;(grokenv2)zope@zope2a:~/internal/grokenv2$ easy_install -U
setuptools&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Searching for setuptools&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Reading http://pypi.python.org/simple/setuptools/&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Best match: setuptools 0.6c9&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Processing setuptools-0.6c9-py2.5.egg&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;setuptools 0.6c9 is already the active version in
easy-install.pth&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Installing easy_install script to
/home/zope/internal/grokenv2/bin&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Installing easy_install-2.5 script to
/home/zope/internal/grokenv2/bin&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Using /home/zope/internal/grokenv2/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Processing dependencies for setuptools&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Finished processing dependencies for setuptools&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;(grokenv2)zope@zope2a:~/internal/grokenv2$ easy_install
grokproject&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Searching for grokproject&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Reading http://pypi.python.org/simple/grokproject/&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;No local packages or download links found for grokproject&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;error: Could not find suitable distribution for
Requirement.parse('grokproject')&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;(grokenv2)zope@zope2a:~/internal/grokenv2$&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;I went down this path because I am also having all sorts of
issues with an existing grokproject install complaining about &lt;span class=apple-style-span&gt;&lt;span style='font-size:13.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;
color:black'&gt;version_info_url when trying to create a new project.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Anyone know what&amp;#8217;s up?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;--&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Jeffrey D Peterson&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Webmaster&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Crary Industries, Inc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487735&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-grokproject-broken-tp26487735p26487735.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26478942</id>
	<title>Re: Question re EditForm and ZPT</title>
	<published>2009-11-23T06:21:23Z</published>
	<updated>2009-11-23T06:21:23Z</updated>
	<author>
		<name>Martijn Faassen-2</name>
	</author>
	<content type="html">Hey,
&lt;br&gt;&lt;br&gt;Christian Klinger wrote:
&lt;br&gt;&amp;gt; yes i missuesd a grok.EditForm in other project.
&lt;br&gt;&amp;gt; This was the way to fix this...
&lt;br&gt;&lt;br&gt;Ah, yeah, a misuse. We should always make sure that we mention that this 
&lt;br&gt;is a hack to avoid leading beginners astray.
&lt;br&gt;&lt;br&gt;If this is a useful hack, we could simply think about making 'applyData' 
&lt;br&gt;available on grok.View instead. I'm not sure whether that is a good 
&lt;br&gt;practice, though..
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;&lt;br&gt;Martijn
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26478942&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Question-re-EditForm-and-ZPT-tp26473692p26478942.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26475434</id>
	<title>Re: Question re EditForm and ZPT</title>
	<published>2009-11-23T02:16:16Z</published>
	<updated>2009-11-23T02:16:16Z</updated>
	<author>
		<name>Christian Klinger</name>
	</author>
	<content type="html">Hi Martijn;
&lt;br&gt;&lt;br&gt;yes i missuesd a grok.EditForm in other project.
&lt;br&gt;This was the way to fix this...
&lt;br&gt;&lt;br&gt;I am not sure if it makes sens in Kathys environment.
&lt;br&gt;&lt;br&gt;Christian
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Christian Klinger wrote:
&lt;br&gt;&amp;gt;&amp;gt; yo can try this:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; class Edit(grok.EditForm):
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; adapters = None
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; or
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; adapters = {}
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I hope this will fix your error.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I don't understand why this should be necessary. Have you run into this
&lt;br&gt;&amp;gt; before?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Martijn
&lt;/div&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26475434&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Question-re-EditForm-and-ZPT-tp26473692p26475434.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26475190</id>
	<title>Re: Question re EditForm and ZPT</title>
	<published>2009-11-23T01:55:03Z</published>
	<updated>2009-11-23T01:55:03Z</updated>
	<author>
		<name>Martijn Faassen-2</name>
	</author>
	<content type="html">Kathy Manwaring wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I have created a ZPT which has the following button present:
&lt;br&gt;&amp;gt; &amp;lt;input type=&amp;quot;submit&amp;quot; id=&amp;quot;SubmitButton&amp;quot; name=&amp;quot;SubmitButton&amp;quot; value=&amp;quot;Save&amp;quot;
&lt;br&gt;&amp;gt; class=&amp;quot;button&amp;quot; /&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The relevant class has an update method that is triggered by the button:
&lt;br&gt;&amp;gt; class Edit(grok.EditForm):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; grok.context(Person)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; template = grok.PageTemplateFile('people_templates/edit.pt')
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; def update(self, SubmitButton=None, **data):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # Check if the submit button was clicked.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if SubmitButton == None:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print 'SubmitButton empty'
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if SubmitButton != None:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print 'SubmitButton is:' + SubmitButton + ':'
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if SubmitButton == 'Save':
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print 'you hit the Save button'
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # copy the new or updated information
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print self.context
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print self
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.applyData(self.context, **data)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print 'have set fields'
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Error: AttributeError: 'Edit' object has no attribute 'adapters'
&lt;/div&gt;&lt;br&gt;[snip]
&lt;br&gt;&lt;br&gt;&amp;gt; As this is just a button, and it's defined based on EditForm, why does
&lt;br&gt;&amp;gt; applyData give an error?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Hoping someone can help, as this really has me stumped - all the
&lt;br&gt;&amp;gt; documentation says that I've done it right...
&lt;br&gt;&lt;br&gt;It's definitely a strange error.
&lt;br&gt;&lt;br&gt;I see a few unusual things:
&lt;br&gt;&lt;br&gt;You have manually set your page template using 'template'. You ought to 
&lt;br&gt;be able to just leave the 'template' line out entirely and things should 
&lt;br&gt;still work. I don't see how this would be the cause of your problem, 
&lt;br&gt;however.
&lt;br&gt;&lt;br&gt;You haven't set form_fields. Normally if you use grok.EditForm you'd use 
&lt;br&gt;Grok's form system and you'd need to set form_fields using grok.Fields().
&lt;br&gt;&lt;br&gt;Finally, you try to handle a grok.EditForm during an 'update()'. When 
&lt;br&gt;you use grok.EditForm, you'll have to use all of it: generating form 
&lt;br&gt;fields from a schema, and validating the information using handlers that 
&lt;br&gt;say @grok.action(). Instead you try to handle the input manually and try 
&lt;br&gt;to do 'applyData' with information that's in your raw form.
&lt;br&gt;&lt;br&gt;You have two choices:
&lt;br&gt;&lt;br&gt;* stick with a hand-generated form but use a grok.View, not 
&lt;br&gt;grok.EditForm. The only bit you have missing would be 'applyData'. If 
&lt;br&gt;you are certain that you can simply put the fields on the contexts 
&lt;br&gt;without any further validation, you can easily implement applyData yourself:
&lt;br&gt;&lt;br&gt;def myApplyData(obj, **data):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;for key, value in data.items():
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; setattr(obj, key, value)
&lt;br&gt;&lt;br&gt;* actually use Grok's high-level form machinery, including a schema and 
&lt;br&gt;form_fields and so on. For more information about that you can read the 
&lt;br&gt;developer's notes:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://grok.zope.org/doc/current/grok_overview.html#forms&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://grok.zope.org/doc/current/grok_overview.html#forms&lt;/a&gt;&lt;br&gt;&lt;br&gt;This also contains a bunch of tutorials:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://grok.zope.org/documentation/phc_topic_area?topic=Forms&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://grok.zope.org/documentation/phc_topic_area?topic=Forms&lt;/a&gt;&lt;br&gt;&lt;br&gt;Note that at least the second tutorial &amp;quot;Automatic Form Generation&amp;quot; 
&lt;br&gt;currently has a problem as it depends on a library called z3c.widget 
&lt;br&gt;which won't install properly.
&lt;br&gt;&lt;br&gt;Briefly, you'd not implement your own 'update', you'd define a 
&lt;br&gt;form_fields and you'd use @grok.action() to define the submit button 
&lt;br&gt;handler.
&lt;br&gt;&lt;br&gt;Good luck!
&lt;br&gt;&lt;br&gt;Martijn
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26475190&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Question-re-EditForm-and-ZPT-tp26473692p26475190.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26475098</id>
	<title>Re: Question re EditForm and ZPT</title>
	<published>2009-11-23T01:45:43Z</published>
	<updated>2009-11-23T01:45:43Z</updated>
	<author>
		<name>Martijn Faassen-2</name>
	</author>
	<content type="html">Christian Klinger wrote:
&lt;br&gt;&amp;gt; yo can try this:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; class Edit(grok.EditForm):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;...
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;adapters = None
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;or
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;adapters = {}
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I hope this will fix your error.
&lt;br&gt;&lt;br&gt;I don't understand why this should be necessary. Have you run into this 
&lt;br&gt;before?
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;&lt;br&gt;Martijn
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26475098&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Question-re-EditForm-and-ZPT-tp26473692p26475098.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26473991</id>
	<title>Re: Question re EditForm and ZPT</title>
	<published>2009-11-23T00:04:08Z</published>
	<updated>2009-11-23T00:04:08Z</updated>
	<author>
		<name>Christian Klinger</name>
	</author>
	<content type="html">Hi Kathy,
&lt;br&gt;&lt;br&gt;yo can try this:
&lt;br&gt;&lt;br&gt;class Edit(grok.EditForm):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;...
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;adapters = None
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;or
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;adapters = {}
&lt;br&gt;&lt;br&gt;I hope this will fix your error.
&lt;br&gt;&lt;br&gt;Christian
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I have created a ZPT which has the following button present:
&lt;br&gt;&amp;gt; &amp;lt;input type=&amp;quot;submit&amp;quot; id=&amp;quot;SubmitButton&amp;quot; name=&amp;quot;SubmitButton&amp;quot; value=&amp;quot;Save&amp;quot;
&lt;br&gt;&amp;gt; class=&amp;quot;button&amp;quot; /&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The relevant class has an update method that is triggered by the button:
&lt;br&gt;&amp;gt; class Edit(grok.EditForm):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;grok.context(Person)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;template = grok.PageTemplateFile('people_templates/edit.pt')
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;def update(self, SubmitButton=None, **data):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# Check if the submit button was clicked.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if SubmitButton == None:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print 'SubmitButton empty'
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if SubmitButton != None:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print 'SubmitButton is:' + SubmitButton + ':'
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if SubmitButton == 'Save':
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print 'you hit the Save button'
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# copy the new or updated information
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print self.context
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print self
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;self.applyData(self.context, **data)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print 'have set fields'
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Error: AttributeError: 'Edit' object has no attribute 'adapters'
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Information using debug.ini:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; URL: &lt;a href=&quot;http://localhost:8080/my%20system/people/entryValue/edit&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080/my%20system/people/entryValue/edit&lt;/a&gt;&lt;br&gt;&amp;gt; Module paste.evalexception.middleware:306 in respond
&lt;br&gt;&amp;gt; &amp;lt;&amp;lt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;__traceback_supplement__ = errormiddleware.Supplement,
&lt;br&gt;&amp;gt; self, environ
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;app_iter = self.application(environ, detect_start_response)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return_iter = list(app_iter)&amp;gt;&amp;gt; &amp;nbsp; app_iter =
&lt;br&gt;&amp;gt; self.application(environ, detect_start_response)
&lt;br&gt;&amp;gt; Module paste.translogger:68 in __call__
&lt;br&gt;&amp;gt; &amp;lt;&amp;lt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.write_log(environ, method, req_uri, start, status,
&lt;br&gt;&amp;gt; bytes)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return start_response(status, headers)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return self.application(environ, replacement_start_response)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;def write_log(self, environ, method, req_uri, start, status,
&lt;br&gt;&amp;gt; bytes):&amp;gt;&amp;gt; &amp;nbsp; return self.application(environ,
&lt;br&gt;&amp;gt; replacement_start_response)
&lt;br&gt;&amp;gt; Module zope.app.wsgi:55 in __call__
&lt;br&gt;&amp;gt; &amp;lt;&amp;lt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; handle_errors = environ.get('wsgi.handleErrors', True)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request = publish(request, handle_errors=handle_errors)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;response = request.response&amp;gt;&amp;gt; &amp;nbsp; request = publish(request,
&lt;br&gt;&amp;gt; handle_errors=handle_errors)
&lt;br&gt;&amp;gt; Module zope.publisher.publish:133 in publish
&lt;br&gt;&amp;gt; &amp;lt;&amp;lt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; publication.afterTraversal(request, obj)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;result = publication.callObject(request, obj)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;response = request.response
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if result is not response:&amp;gt;&amp;gt; &amp;nbsp; result =
&lt;br&gt;&amp;gt; publication.callObject(request, obj)
&lt;br&gt;&amp;gt; Module grok.publication:89 in callObject
&lt;br&gt;&amp;gt; &amp;lt;&amp;lt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if checker is not None:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checker.check(ob, '__call__')
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return super(ZopePublicationSansProxy,
&lt;br&gt;&amp;gt; self).callObject(request, ob)&amp;gt;&amp;gt; &amp;nbsp; return
&lt;br&gt;&amp;gt; super(ZopePublicationSansProxy, self).callObject(request, ob)
&lt;br&gt;&amp;gt; Module zope.app.publication.zopepublication:167 in callObject
&lt;br&gt;&amp;gt; &amp;lt;&amp;lt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;def callObject(self, request, ob):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return mapply(ob, request.getPositionalArguments(), request)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;def afterCall(self, request, ob):&amp;gt;&amp;gt; &amp;nbsp; return mapply(ob,
&lt;br&gt;&amp;gt; request.getPositionalArguments(), request)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;test.person.Edit object at 0x0313DB30&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Module zope.publisher.publish:108 in mapply
&lt;br&gt;&amp;gt; &amp;lt;&amp;lt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if __debug__:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return debug_call(obj, args)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return obj(*args)&amp;gt;&amp;gt; &amp;nbsp; return debug_call(obj, args)
&lt;br&gt;&amp;gt; Module zope.publisher.publish:114 in debug_call
&lt;br&gt;&amp;gt; &amp;lt;&amp;lt; &amp;nbsp; def debug_call(obj, args):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# The presence of this function allows us to set a pdb breakpoint
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return obj(*args)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;def publish(request, handle_errors=True):&amp;gt;&amp;gt; &amp;nbsp; return obj(*args)
&lt;br&gt;&amp;gt; Module grokcore.formlib.components:84 in __call__
&lt;br&gt;&amp;gt; &amp;lt;&amp;lt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;def __call__(self):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mapply(self.update, (), self.request)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if self.request.response.getStatus() in (302, 303):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# A redirect was triggered somewhere in update(). &amp;nbsp;Don't
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt;&amp;gt; &amp;nbsp; mapply(self.update, (), self.request)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;bound method Edit.update of&amp;lt;test.person.Edit object at 0x0313DB30&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Module zope.publisher.publish:108 in mapply
&lt;br&gt;&amp;gt; &amp;lt;&amp;lt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if __debug__:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return debug_call(obj, args)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return obj(*args)&amp;gt;&amp;gt; &amp;nbsp; return debug_call(obj, args)
&lt;br&gt;&amp;gt; Module zope.publisher.publish:114 in debug_call
&lt;br&gt;&amp;gt; &amp;lt;&amp;lt; &amp;nbsp; def debug_call(obj, args):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# The presence of this function allows us to set a pdb breakpoint
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return obj(*args)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;def publish(request, handle_errors=True):&amp;gt;&amp;gt; &amp;nbsp; return obj(*args)
&lt;br&gt;&amp;gt; Module test.person:127 in update
&lt;br&gt;&amp;gt; &amp;lt;&amp;lt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print self
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#self.adapters = []
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;self.applyData(self.context, **data)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print 'have set fields'
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# if this is a new entry, it will have 'tempentry' as part
&lt;br&gt;&amp;gt; of the last name
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt;&amp;gt; &amp;nbsp; self.applyData(self.context, **data)
&lt;br&gt;&amp;gt; Module grokcore.formlib.components:128 in applyData
&lt;br&gt;&amp;gt; &amp;lt;&amp;lt; &amp;nbsp; &amp;nbsp; &amp;nbsp; def applyData(self, obj, **data):
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return formlib.apply_data_event(obj, self.form_fields, data,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;self.adapters, update=True)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# BBB -- to be removed in June 2007
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt;&amp;gt; &amp;nbsp; self.adapters, update=True)
&lt;br&gt;&amp;gt; AttributeError: 'Edit' object has no attribute 'adapters'
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; As this is just a button, and it's defined based on EditForm, why does
&lt;br&gt;&amp;gt; applyData give an error?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hoping someone can help, as this really has me stumped - all the
&lt;br&gt;&amp;gt; documentation says that I've done it right...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Kathy
&lt;/div&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26473991&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Question-re-EditForm-and-ZPT-tp26473692p26473991.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26473692</id>
	<title>Question re EditForm and ZPT</title>
	<published>2009-11-22T23:32:06Z</published>
	<updated>2009-11-22T23:32:06Z</updated>
	<author>
		<name>Kathy Manwaring</name>
	</author>
	<content type="html">I have created a ZPT which has the following button present:
&lt;br&gt;&amp;lt;input type=&amp;quot;submit&amp;quot; id=&amp;quot;SubmitButton&amp;quot; name=&amp;quot;SubmitButton&amp;quot; value=&amp;quot;Save&amp;quot;
&lt;br&gt;class=&amp;quot;button&amp;quot; /&amp;gt;
&lt;br&gt;&lt;br&gt;The relevant class has an update method that is triggered by the button:
&lt;br&gt;class Edit(grok.EditForm):
&lt;br&gt;&amp;nbsp; &amp;nbsp; grok.context(Person)
&lt;br&gt;&amp;nbsp; &amp;nbsp; template = grok.PageTemplateFile('people_templates/edit.pt')
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; def update(self, SubmitButton=None, **data):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # Check if the submit button was clicked.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if SubmitButton == None:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print 'SubmitButton empty'
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if SubmitButton != None:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print 'SubmitButton is:' + SubmitButton + ':'
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if SubmitButton == 'Save':
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print 'you hit the Save button'
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # copy the new or updated information
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print self.context
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print self
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.applyData(self.context, **data)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print 'have set fields'
&lt;br&gt;&lt;br&gt;Error: AttributeError: 'Edit' object has no attribute 'adapters'
&lt;br&gt;&lt;br&gt;Information using debug.ini:
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://localhost:8080/my%20system/people/entryValue/edit&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080/my%20system/people/entryValue/edit&lt;/a&gt;&lt;br&gt;Module paste.evalexception.middleware:306 in respond
&lt;br&gt;&amp;lt;&amp;lt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __traceback_supplement__ = errormiddleware.Supplement,
&lt;br&gt;self, environ
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; app_iter = self.application(environ, detect_start_response)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return_iter = list(app_iter)&amp;gt;&amp;gt; &amp;nbsp;app_iter =
&lt;br&gt;self.application(environ, detect_start_response)
&lt;br&gt;Module paste.translogger:68 in __call__
&lt;br&gt;&amp;lt;&amp;lt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;self.write_log(environ, method, req_uri, start, status,
&lt;br&gt;bytes)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return start_response(status, headers)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return self.application(environ, replacement_start_response)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; def write_log(self, environ, method, req_uri, start, status,
&lt;br&gt;bytes):&amp;gt;&amp;gt; &amp;nbsp;return self.application(environ,
&lt;br&gt;replacement_start_response)
&lt;br&gt;Module zope.app.wsgi:55 in __call__
&lt;br&gt;&amp;lt;&amp;lt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;handle_errors = environ.get('wsgi.handleErrors', True)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; request = publish(request, handle_errors=handle_errors)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; response = request.response&amp;gt;&amp;gt; &amp;nbsp;request = publish(request,
&lt;br&gt;handle_errors=handle_errors)
&lt;br&gt;Module zope.publisher.publish:133 in publish
&lt;br&gt;&amp;lt;&amp;lt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;publication.afterTraversal(request, obj)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result = publication.callObject(request, obj)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; response = request.response
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if result is not response:&amp;gt;&amp;gt; &amp;nbsp;result =
&lt;br&gt;publication.callObject(request, obj)
&lt;br&gt;Module grok.publication:89 in callObject
&lt;br&gt;&amp;lt;&amp;lt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if checker is not None:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; checker.check(ob, '__call__')
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return super(ZopePublicationSansProxy,
&lt;br&gt;self).callObject(request, ob)&amp;gt;&amp;gt; &amp;nbsp;return
&lt;br&gt;super(ZopePublicationSansProxy, self).callObject(request, ob)
&lt;br&gt;Module zope.app.publication.zopepublication:167 in callObject
&lt;br&gt;&amp;lt;&amp;lt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; def callObject(self, request, ob):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return mapply(ob, request.getPositionalArguments(), request)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; def afterCall(self, request, ob):&amp;gt;&amp;gt; &amp;nbsp;return mapply(ob,
&lt;br&gt;request.getPositionalArguments(), request)
&lt;br&gt;&lt;br&gt;&amp;lt;test.person.Edit object at 0x0313DB30&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;Module zope.publisher.publish:108 in mapply
&lt;br&gt;&amp;lt;&amp;lt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if __debug__:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return debug_call(obj, args)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return obj(*args)&amp;gt;&amp;gt; &amp;nbsp;return debug_call(obj, args)
&lt;br&gt;Module zope.publisher.publish:114 in debug_call
&lt;br&gt;&amp;lt;&amp;lt; &amp;nbsp;def debug_call(obj, args):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # The presence of this function allows us to set a pdb breakpoint
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return obj(*args)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; def publish(request, handle_errors=True):&amp;gt;&amp;gt; &amp;nbsp;return obj(*args)
&lt;br&gt;Module grokcore.formlib.components:84 in __call__
&lt;br&gt;&amp;lt;&amp;lt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; def __call__(self):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mapply(self.update, (), self.request)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if self.request.response.getStatus() in (302, 303):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # A redirect was triggered somewhere in update(). &amp;nbsp;Don't
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; &amp;nbsp;mapply(self.update, (), self.request)
&lt;br&gt;&lt;br&gt;&amp;lt;bound method Edit.update of &amp;lt;test.person.Edit object at 0x0313DB30&amp;gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;Module zope.publisher.publish:108 in mapply
&lt;br&gt;&amp;lt;&amp;lt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if __debug__:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return debug_call(obj, args)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return obj(*args)&amp;gt;&amp;gt; &amp;nbsp;return debug_call(obj, args)
&lt;br&gt;Module zope.publisher.publish:114 in debug_call
&lt;br&gt;&amp;lt;&amp;lt; &amp;nbsp;def debug_call(obj, args):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # The presence of this function allows us to set a pdb breakpoint
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return obj(*args)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; def publish(request, handle_errors=True):&amp;gt;&amp;gt; &amp;nbsp;return obj(*args)
&lt;br&gt;Module test.person:127 in update
&lt;br&gt;&amp;lt;&amp;lt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print self
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #self.adapters = []
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.applyData(self.context, **data)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print 'have set fields'
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # if this is a new entry, it will have 'tempentry' as part
&lt;br&gt;of the last name
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; &amp;nbsp;self.applyData(self.context, **data)
&lt;br&gt;Module grokcore.formlib.components:128 in applyData
&lt;br&gt;&amp;lt;&amp;lt; &amp;nbsp; &amp;nbsp; &amp;nbsp;def applyData(self, obj, **data):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return formlib.apply_data_event(obj, self.form_fields, data,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.adapters, update=True)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # BBB -- to be removed in June 2007
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; &amp;nbsp;self.adapters, update=True)
&lt;br&gt;AttributeError: 'Edit' object has no attribute 'adapters'
&lt;br&gt;&lt;br&gt;As this is just a button, and it's defined based on EditForm, why does
&lt;br&gt;applyData give an error?
&lt;br&gt;&lt;br&gt;Hoping someone can help, as this really has me stumped - all the
&lt;br&gt;documentation says that I've done it right...
&lt;br&gt;&lt;br&gt;Kathy
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26473692&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Question-re-EditForm-and-ZPT-tp26473692p26473692.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26449939</id>
	<title>Re: libraries to use with Grok</title>
	<published>2009-11-20T12:39:07Z</published>
	<updated>2009-11-20T12:39:07Z</updated>
	<author>
		<name>Souheil CHELFOUH</name>
	</author>
	<content type="html">A raw copy/paste from the mail i did to the mailing list, some time ago.
&lt;br&gt;I need to add some to the list, but, it's there.
&lt;br&gt;As for the megrok packages, I'll detail them when I have some time to
&lt;br&gt;write a smal desc somewhere
&lt;br&gt;note that the pypi pages SHOULD be clear enough with an intro and
&lt;br&gt;everything to simply copy/paste it
&lt;br&gt;&lt;br&gt;&lt;br&gt;Packages
&lt;br&gt;========
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://pypi.python.org/pypi/dolmen.file&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/pypi/dolmen.file&lt;/a&gt;&lt;br&gt;A Zope3/Grok File Representation package.
&lt;br&gt;dolmen.file is a layer above zope.app.file.file.File, adding a notion
&lt;br&gt;of filename, missing in the original implementation.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://pypi.python.org/pypi/dolmen.blob&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/pypi/dolmen.blob&lt;/a&gt;&lt;br&gt;Dolmen zodb blob handlers (using ZODB &amp;gt;= 3.9.2)
&lt;br&gt;dolmen.blob is a layer above dolmen.file, using the ZODB blobs as a
&lt;br&gt;storage facility. It respects the zope.app.file IFile and the
&lt;br&gt;dolmen.file INamedFile interfaces.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://pypi.python.org/pypi/dolmen.storage&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/pypi/dolmen.storage&lt;/a&gt;&lt;br&gt;Dolmen pluggable and delegated storage
&lt;br&gt;dolmen.storage defines a clear high-level API to deal with pluggable
&lt;br&gt;storage components.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://pypi.python.org/pypi/dolmen.relations&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/pypi/dolmen.relations&lt;/a&gt;&lt;br&gt;Dolmen relations
&lt;br&gt;dolmen.relations is a thin layer above zc.relation, allowing a simple
&lt;br&gt;and straightforward implementation of standalone relationships between
&lt;br&gt;objects.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://pypi.python.org/pypi/dolmen.thumbnailer&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/pypi/dolmen.thumbnailer&lt;/a&gt;&lt;br&gt;Dolmen thumbnailing library
&lt;br&gt;dolmen.thumbnailer is package specialized in Thumbnail generation.
&lt;br&gt;Using the dolmen.storage mechanisms, it allows a pluggable and
&lt;br&gt;flexible thumbnail storage.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://pypi.python.org/pypi/dolmen.widget.file&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/pypi/dolmen.widget.file&lt;/a&gt;&lt;br&gt;File widget for z3c.form, using Grok
&lt;br&gt;dolmen.widget.file is a package that walks hand-in-hand with
&lt;br&gt;dolmen.file. It provides a useable and pluggable way to render the
&lt;br&gt;dolmen.file.FileField in a z3c.form.Form, using Grok (through
&lt;br&gt;megrok.z3cform.base)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://pypi.python.org/pypi/dolmen.widget.image&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/pypi/dolmen.widget.image&lt;/a&gt;&lt;br&gt;Image widget (with thumbnails) for z3c.form, using Grok
&lt;br&gt;dolmen.widget.image is a thin layer above dolmen.widget.file providing
&lt;br&gt;a widget suitable to fields implementing IImageField. It adds, thanks
&lt;br&gt;to dolmen.thumbnailer a preview of the uploaded image in both input
&lt;br&gt;and display mode.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;We have also released the first version of megrok.z3cform.base, used
&lt;br&gt;in the project
&lt;br&gt;&lt;a href=&quot;http://pypi.python.org/pypi/megrok.z3cform.base/0.1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/pypi/megrok.z3cform.base/0.1&lt;/a&gt;&amp;quot;
&lt;br&gt;&lt;br&gt;&lt;br&gt;ENJOY !!
&lt;br&gt;PS : please, let me know if you have any opinions/remarks/wishes/insults
&lt;br&gt;&lt;br&gt;2009/11/20 Martijn Faassen &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26449939&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;faassen@...&lt;/a&gt;&amp;gt;:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Steve Schmechel wrote:
&lt;br&gt;&amp;gt;&amp;gt; I will be out of town for a few days, back for a day, and then gone
&lt;br&gt;&amp;gt;&amp;gt; for the rest of next week.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Please don't stop adding library suggestions to the list because you
&lt;br&gt;&amp;gt;&amp;gt; don't see the page on the Grok site being updated.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I will go through the list and find all the suggestions and compile
&lt;br&gt;&amp;gt;&amp;gt; them for review when I return.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks for the heads up, and have a good set of trips!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Martijn
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Grok-dev mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26449939&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26449939&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/libraries-to-use-with-Grok-tp26385315p26449939.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26449948</id>
	<title>Re: Grok Menu</title>
	<published>2009-11-20T12:35:53Z</published>
	<updated>2009-11-20T12:35:53Z</updated>
	<author>
		<name>Martijn Faassen-2</name>
	</author>
	<content type="html">Hey,
&lt;br&gt;&lt;br&gt;Souheil CHELFOUH wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I'm brainstorming since Cologne Sprint about the menu feature.
&lt;br&gt;&amp;gt; Currently, i'm using megrok.menu, but it doesn't quite do what I want.
&lt;br&gt;&amp;gt; I also had a look at z3c.menu.simple, but, it's not flexible enough.
&lt;br&gt;&amp;gt; I'd like to know what are people's usecases and start something new.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Ideally, a menu item could be anything. A view, a viewlet or anything else.
&lt;br&gt;&amp;gt; Right now, I ran into problem with megrok.menu, since the grokker is
&lt;br&gt;&amp;gt; registered for grok.View and I want non-grok.View components in my
&lt;br&gt;&amp;gt; menu.
&lt;br&gt;&amp;gt; I don't really know what would be the best implementation and the most
&lt;br&gt;&amp;gt; flexible one.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; What about a class decorator that could register the component somehow ?
&lt;/div&gt;&lt;br&gt;I think at this stage we'd still look at grokkers for this, as that's 
&lt;br&gt;how we register things in general. We'll likely turn to class decorators 
&lt;br&gt;(at least optionally) for Martian directives at some point, but Grok's 
&lt;br&gt;general idea is to do registration at a defined time that's not import-time.
&lt;br&gt;&lt;br&gt;That said, one idea is to extend Martian so it can grok things based on 
&lt;br&gt;the presence of interface declarations on the class instead of just base 
&lt;br&gt;classes. That might be useful here, perhaps.
&lt;br&gt;&lt;br&gt;&amp;gt; I need help, conceptually, on this one.
&lt;br&gt;&amp;gt; Anyone's out there to provide a helping hand ? :)
&lt;br&gt;&lt;br&gt;You have a lot more experience doing menus with Grok than I have. I can 
&lt;br&gt;only be of conceptual help if you come up with a bit of material for me 
&lt;br&gt;to work with. And I'm quite interested in helping you make progress on this.
&lt;br&gt;&lt;br&gt;It'd help me if you could sketch out how megrok.menu and z3c.menu.simple 
&lt;br&gt;don't quite do what you want, and what your use cases are.
&lt;br&gt;&lt;br&gt;What would it mean to turn, say, a viewlet or a model into a menu item?
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;&lt;br&gt;Martijn
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26449948&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Grok-Menu-tp26445304p26449948.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26449831</id>
	<title>Re: libraries to use with Grok</title>
	<published>2009-11-20T12:30:54Z</published>
	<updated>2009-11-20T12:30:54Z</updated>
	<author>
		<name>Martijn Faassen-2</name>
	</author>
	<content type="html">Steve Schmechel wrote:
&lt;br&gt;&amp;gt; I will be out of town for a few days, back for a day, and then gone
&lt;br&gt;&amp;gt; for the rest of next week.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Please don't stop adding library suggestions to the list because you
&lt;br&gt;&amp;gt; don't see the page on the Grok site being updated.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I will go through the list and find all the suggestions and compile
&lt;br&gt;&amp;gt; them for review when I return.
&lt;br&gt;&lt;br&gt;Thanks for the heads up, and have a good set of trips!
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;&lt;br&gt;Martijn
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26449831&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/libraries-to-use-with-Grok-tp26385315p26449831.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26449717</id>
	<title>Re: libraries to use with Grok</title>
	<published>2009-11-20T12:23:44Z</published>
	<updated>2009-11-20T12:23:44Z</updated>
	<author>
		<name>Steve Schmechel</name>
	</author>
	<content type="html">I will be out of town for a few days, back for a day, and then gone for the rest of next week.
&lt;br&gt;&lt;br&gt;Please don't stop adding library suggestions to the list because you don't see the page on the Grok site being updated.
&lt;br&gt;&lt;br&gt;I will go through the list and find all the suggestions and compile them for review when I return.
&lt;br&gt;&lt;br&gt;Keep up the momentum.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Steve
&lt;br&gt;&lt;br&gt;&lt;br&gt;--- On Fri, 11/20/09, Martijn Faassen &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26449717&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;faassen@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; From: Martijn Faassen &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26449717&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;faassen@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; Subject: Re: [Grok-dev] libraries to use with Grok
&lt;br&gt;&amp;gt; To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26449717&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;grok-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Date: Friday, November 20, 2009, 12:13 PM
&lt;br&gt;&amp;gt; Kent Tenney wrote:
&lt;br&gt;&amp;gt; &amp;gt; &amp;lt;snip&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; -  Seems a likely candidate for wiki, the main
&lt;br&gt;&amp;gt; page listing the
&lt;br&gt;&amp;gt; &amp;gt; - namespaces, each line has a list to a wiki page for
&lt;br&gt;&amp;gt; that namespace.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; + each line consisting of a brief description (as
&lt;br&gt;&amp;gt; provided by Martijn)
&lt;br&gt;&amp;gt; &amp;gt; + and a link to a wiki page where notes and details
&lt;br&gt;&amp;gt; could be added.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I think that's overkill. I think a single page giving a
&lt;br&gt;&amp;gt; description 
&lt;br&gt;&amp;gt; would be fine. It's not like these namespaces are *that*
&lt;br&gt;&amp;gt; relevant, as I 
&lt;br&gt;&amp;gt; tried to say. They give a general idea of what might be in
&lt;br&gt;&amp;gt; it, but far 
&lt;br&gt;&amp;gt; more important is just knowing about the package.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Martijn
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Grok-dev mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26449717&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26449717&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/libraries-to-use-with-Grok-tp26385315p26449717.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26447945</id>
	<title>Re: libraries to use with Grok</title>
	<published>2009-11-20T10:13:05Z</published>
	<updated>2009-11-20T10:13:05Z</updated>
	<author>
		<name>Martijn Faassen-2</name>
	</author>
	<content type="html">Kent Tenney wrote:
&lt;br&gt;&amp;gt; &amp;lt;snip&amp;gt;
&lt;br&gt;&amp;gt; - &amp;nbsp;Seems a likely candidate for wiki, the main page listing the
&lt;br&gt;&amp;gt; - namespaces, each line has a list to a wiki page for that namespace.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; + each line consisting of a brief description (as provided by Martijn)
&lt;br&gt;&amp;gt; + and a link to a wiki page where notes and details could be added.
&lt;br&gt;&lt;br&gt;I think that's overkill. I think a single page giving a description 
&lt;br&gt;would be fine. It's not like these namespaces are *that* relevant, as I 
&lt;br&gt;tried to say. They give a general idea of what might be in it, but far 
&lt;br&gt;more important is just knowing about the package.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;&lt;br&gt;Martijn
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26447945&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/libraries-to-use-with-Grok-tp26385315p26447945.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26445304</id>
	<title>Grok Menu</title>
	<published>2009-11-20T07:33:57Z</published>
	<updated>2009-11-20T07:33:57Z</updated>
	<author>
		<name>Souheil CHELFOUH</name>
	</author>
	<content type="html">Hello Grokkers,
&lt;br&gt;&lt;br&gt;I'm brainstorming since Cologne Sprint about the menu feature.
&lt;br&gt;Currently, i'm using megrok.menu, but it doesn't quite do what I want.
&lt;br&gt;I also had a look at z3c.menu.simple, but, it's not flexible enough.
&lt;br&gt;I'd like to know what are people's usecases and start something new.
&lt;br&gt;&lt;br&gt;Ideally, a menu item could be anything. A view, a viewlet or anything else.
&lt;br&gt;Right now, I ran into problem with megrok.menu, since the grokker is
&lt;br&gt;registered for grok.View and I want non-grok.View components in my
&lt;br&gt;menu.
&lt;br&gt;I don't really know what would be the best implementation and the most
&lt;br&gt;flexible one.
&lt;br&gt;&lt;br&gt;What about a class decorator that could register the component somehow ?
&lt;br&gt;&lt;br&gt;I need help, conceptually, on this one.
&lt;br&gt;Anyone's out there to provide a helping hand ? :)
&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26445304&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Grok-Menu-tp26445304p26445304.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26444813</id>
	<title>Re: libraries to use with Grok</title>
	<published>2009-11-20T07:03:54Z</published>
	<updated>2009-11-20T07:03:54Z</updated>
	<author>
		<name>ktenney</name>
	</author>
	<content type="html">&amp;lt;snip&amp;gt;
&lt;br&gt;- &amp;nbsp;Seems a likely candidate for wiki, the main page listing the
&lt;br&gt;- namespaces, each line has a list to a wiki page for that namespace.
&lt;br&gt;&lt;br&gt;+ each line consisting of a brief description (as provided by Martijn)
&lt;br&gt;+ and a link to a wiki page where notes and details could be added.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Looking at &lt;a href=&quot;http://grok.zope.org/documentation&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://grok.zope.org/documentation&lt;/a&gt;, I see a Plone page
&lt;br&gt;&amp;gt; using features I don't understand.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; So, I was going to try my hand at a &amp;quot;About namespaces&amp;quot; page, but
&lt;br&gt;&amp;gt; it seems Grok doc is not aimed at wiki-style content additions from
&lt;br&gt;&amp;gt; the community.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; Kent
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Martijn
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt;&amp;gt; Grok-dev mailing list
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26444813&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26444813&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/libraries-to-use-with-Grok-tp26385315p26444813.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26444294</id>
	<title>Re: libraries to use with Grok</title>
	<published>2009-11-20T06:37:31Z</published>
	<updated>2009-11-20T06:37:31Z</updated>
	<author>
		<name>ktenney</name>
	</author>
	<content type="html">On Fri, Nov 20, 2009 at 2:51 AM, Martijn Faassen &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26444294&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;faassen@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Kent Tenney wrote:
&lt;br&gt;&amp;gt;&amp;gt; On Thu, Nov 19, 2009 at 5:35 AM, Santiago Videla
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26444294&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;santiago.videla@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Hey,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I think that the list could become really large...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; megrok.*
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; : &lt;a href=&quot;http://pypi.python.org/pypi?:action=search&amp;term=megrok&amp;submit=search&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/pypi?:action=search&amp;term=megrok&amp;submit=search&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; hurry.*
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; : &lt;a href=&quot;http://pypi.python.org/pypi?:action=search&amp;term=hurry&amp;submit=search&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/pypi?:action=search&amp;term=hurry&amp;submit=search&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; dolmen.* &lt;a href=&quot;http://pypi.python.org/pypi?:action=search&amp;term=dolmen&amp;submit=search&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pypi.python.org/pypi?:action=search&amp;term=dolmen&amp;submit=search&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I would welcome a brief description of the namespace collections, who is
&lt;br&gt;&amp;gt;&amp;gt; behind them, a bit of history, target niche etc.
&lt;br&gt;&amp;gt;&amp;gt; hurry, megrok, dolmen, zc, z3c, zope, repoze, lazr ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It'll have to go into another document, but here goes some sketch:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; First a general disclaimer: the namespace doesn't really *mean* all that
&lt;br&gt;&amp;gt; much. The goal of having a namespace is to make it easier to create a
&lt;br&gt;&amp;gt; package of some name without conflicting with another package. I.e. if
&lt;br&gt;&amp;gt; we had no namespaces if I made a package 'resource' there'd be a good
&lt;br&gt;&amp;gt; chance someone else would want to do the same thing, and what would we
&lt;br&gt;&amp;gt; do then?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; zope.*: the namespace used originally by the Zope 3 project. Now the
&lt;br&gt;&amp;gt; namespace of the Zope Toolkit. Generally core framework packages, though
&lt;br&gt;&amp;gt; there's a lot of stuff that isn't.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; zope.app.*: the idea was to make the Zope 3-specific things reside here,
&lt;br&gt;&amp;gt; the more general things in zope.*. This wasn't maintained very well, as
&lt;br&gt;&amp;gt; nobody quite agrees on what is what anyway. Now it is a mostly
&lt;br&gt;&amp;gt; deprecated namespace that contains the old Zope 3 ZMI user interface
&lt;br&gt;&amp;gt; code. We've been moving more general stuff out of it into zope.*
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; grokcore.*: bits of Grok that we've split out of it into more reusable
&lt;br&gt;&amp;gt; libraries. The five.grok project uses the same libraries to enable Grok
&lt;br&gt;&amp;gt; support in Zope 2.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; grokui.*: user interfaces for Grok. The admin UI and the introspector
&lt;br&gt;&amp;gt; end up here.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; megrok.*: &amp;quot;Module Extension Grok&amp;quot;. Extension code for Grok. Often
&lt;br&gt;&amp;gt; depends on Grok itself, but note that due to Grok's splitting up into
&lt;br&gt;&amp;gt; pieces this code only needs to depend on grokcore.* packages, and could
&lt;br&gt;&amp;gt; be seen as more generally reusable.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; zc.*: a space for Zope Corporation to create packages in. There's a
&lt;br&gt;&amp;gt; diverse collection of stuff in there.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; z3c.*: a space where the Zope 3 community started to place packages. A
&lt;br&gt;&amp;gt; diverse colletion of stuff.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; hurry.*: I started using this for some Zope 3 extensions back in 2005 or
&lt;br&gt;&amp;gt; so. I've continued to use this namespace in the last few years as well
&lt;br&gt;&amp;gt; for some more code I've written. Again, a diverse collection of stuff.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; dolmen.*: Souheil has been using this namespace. Much of it, I
&lt;br&gt;&amp;gt; understand, is to support CMS-like applications on top of Grok. Designed
&lt;br&gt;&amp;gt; also be more generally reusable.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; repoze.*: the Repoze project is working in its own repository and
&lt;br&gt;&amp;gt; generally Repoze-related libraries are in there. Contains WSGI-related
&lt;br&gt;&amp;gt; packages and the BFG framework, and other diverse stuff.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; plone.*: some packages developed by the Plone project. Much of this
&lt;br&gt;&amp;gt; relies either on Zope 2 and/or Plone, but some of it is designed to be
&lt;br&gt;&amp;gt; more generally useful.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; collective.*: a general namespace used by the Plone community. Again,
&lt;br&gt;&amp;gt; some of it is designed to be more generally useful, a lot of it ties
&lt;br&gt;&amp;gt; into Plone, however.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; lazr.*: a namespace used by Launchpad developers at Canonical. Some of
&lt;br&gt;&amp;gt; it is designed to plug into Zope Toolkit applications.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; five.*: generally used as a namespace to place in compatibility code, to
&lt;br&gt;&amp;gt; help use Zope Toolkit or Grok related libraries in Zope 2.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Can someone clean this up and create a document on grok.zope.org out of
&lt;br&gt;&amp;gt; this?
&lt;/div&gt;&lt;br&gt;Seems a likely candidate for wiki, the main page listing the
&lt;br&gt;namespaces, each line has a list to a wiki page for that namespace.
&lt;br&gt;&lt;br&gt;Looking at &lt;a href=&quot;http://grok.zope.org/documentation&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://grok.zope.org/documentation&lt;/a&gt;, I see a Plone page
&lt;br&gt;using features I don't understand.
&lt;br&gt;&lt;br&gt;So, I was going to try my hand at a &amp;quot;About namespaces&amp;quot; page, but
&lt;br&gt;it seems Grok doc is not aimed at wiki-style content additions from
&lt;br&gt;the community.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Kent
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Martijn
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Grok-dev mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26444294&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26444294&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/libraries-to-use-with-Grok-tp26385315p26444294.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26442077</id>
	<title>Re: meta class in megrok.resource?</title>
	<published>2009-11-20T03:50:09Z</published>
	<updated>2009-11-20T03:50:09Z</updated>
	<author>
		<name>Martijn Faassen-2</name>
	</author>
	<content type="html">Souheil CHELFOUH wrote:
&lt;br&gt;&amp;gt; I understand your point and I have no dogma in this.
&lt;br&gt;&amp;gt; We ca neasy restaure the thing how it was before.
&lt;br&gt;&amp;gt; The point of using the metaclass was simply to avoid grokking the
&lt;br&gt;&amp;gt; package simply to set a name
&lt;br&gt;&lt;br&gt;Okay, but now we have a scary metaclass just to set the name. :)
&lt;br&gt;&lt;br&gt;&amp;gt; I'm very much in favor to simply use name = &amp;quot;&amp;quot;. The use of grok.name
&lt;br&gt;&amp;gt; must be to &amp;quot;help and serve&amp;quot; not to constrain us.
&lt;br&gt;&lt;br&gt;That's true. But it's also a matter of consistency: grok.name() has 
&lt;br&gt;everywhere been setting the name under which things have been 
&lt;br&gt;registered. Here we need '.name' as a library, hurry.resource, needs the 
&lt;br&gt;library name. We should definitely be open to the idea that we can 
&lt;br&gt;change hurry.resource.
&lt;br&gt;&lt;br&gt;&amp;gt; Here, I felt the grokker was &amp;quot;way&amp;quot; too expensive just to set and attribute.
&lt;br&gt;&amp;gt; But, I did some work more yesterday that makes me feel like I did a
&lt;br&gt;&amp;gt; mistake on this
&lt;br&gt;&amp;gt; Trying to classProvides made me realize that this won't work, since
&lt;br&gt;&amp;gt; classProvides does not work with the subclasses.
&lt;br&gt;&amp;gt; Therefore, we'll have to directlyProvides(cls, ILibrary) in a grokker,
&lt;br&gt;&amp;gt; to make it work properly.
&lt;br&gt;&lt;br&gt;Ah, yeah, I hadn't realized that. Makes sense.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;&lt;br&gt;Martijn
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26442077&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/meta-class-in-megrok.resource--tp26440313p26442077.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26441553</id>
	<title>Re: meta class in megrok.resource?</title>
	<published>2009-11-20T03:07:43Z</published>
	<updated>2009-11-20T03:07:43Z</updated>
	<author>
		<name>Souheil CHELFOUH</name>
	</author>
	<content type="html">I understand your point and I have no dogma in this.
&lt;br&gt;We ca neasy restaure the thing how it was before.
&lt;br&gt;The point of using the metaclass was simply to avoid grokking the
&lt;br&gt;package simply to set a name
&lt;br&gt;I'm very much in favor to simply use name = &amp;quot;&amp;quot;. The use of grok.name
&lt;br&gt;must be to &amp;quot;help and serve&amp;quot; not to constrain us.
&lt;br&gt;Here, I felt the grokker was &amp;quot;way&amp;quot; too expensive just to set and attribute.
&lt;br&gt;But, I did some work more yesterday that makes me feel like I did a
&lt;br&gt;mistake on this
&lt;br&gt;Trying to classProvides made me realize that this won't work, since
&lt;br&gt;classProvides does not work with the subclasses.
&lt;br&gt;Therefore, we'll have to directlyProvides(cls, ILibrary) in a grokker,
&lt;br&gt;to make it work properly
&lt;br&gt;&lt;br&gt;2009/11/20 Martijn Faassen &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26441553&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;faassen@...&lt;/a&gt;&amp;gt;:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi there,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; hurry.resource needs a 'name' attribute to be present on an ILibrary
&lt;br&gt;&amp;gt; object.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The idea in megrok.resource is to make its Library class have this name
&lt;br&gt;&amp;gt; attribute (not just instances of it), as it needs to provide the
&lt;br&gt;&amp;gt; ILibrary interface. Note that it'd be the *class* providing an ILibrary
&lt;br&gt;&amp;gt; interface, not the instance.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The simplest way for a class to get a name attribute would be to do this:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; class Library(object):
&lt;br&gt;&amp;gt;     name = 'foo'
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Unfortunately we want to use grok.name() instead.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In a previous implementation a Grokker was used to do this. Souheil in a
&lt;br&gt;&amp;gt; checkin declared this operation as &amp;quot;WAY too expensive&amp;quot; and instead made
&lt;br&gt;&amp;gt; the Library class derive from a meta class that takes care of setting
&lt;br&gt;&amp;gt; the name business. I am wary of this as a metaclass introduces potential
&lt;br&gt;&amp;gt; run-time complexity that a grokker doesn't.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; One nice thing about grokkers is exactly that metaclass wizardy can be
&lt;br&gt;&amp;gt; kept to a minimum. So I'd like to understand why a grokker is considered
&lt;br&gt;&amp;gt; to be too expensive. After all, another grokker will grok Library anyway
&lt;br&gt;&amp;gt; as it subclasses DirectoryResource. During run-time the expense is now
&lt;br&gt;&amp;gt; larger (though still minimal).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; If it's not desired to use a grokker, another option would be for
&lt;br&gt;&amp;gt; hurry.resource.ResourceInclusion to try to adapt the incoming Library
&lt;br&gt;&amp;gt; object to ILibrary first. The adapter could then do whatever it wants
&lt;br&gt;&amp;gt; (and it could simply set '.name' in its __init__). The ILibrary
&lt;br&gt;&amp;gt; interface is after all, really easy to satisfy (just a name is
&lt;br&gt;&amp;gt; necessary). Though perhaps this option is a bit more complex as it'd be
&lt;br&gt;&amp;gt; nicer to be able to directly let the Library class provide ILibrary, so
&lt;br&gt;&amp;gt; taht the ILibraryUrl adapter can adapt the class.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Martijn
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Grok-dev mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26441553&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;_______________________________________________
&lt;br&gt;Grok-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26441553&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Grok-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://mail.zope.org/mailman/listinfo/grok-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://mail.zope.org/mailman/listinfo/grok-dev&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/meta-class-in-megrok.resource--tp26440313p26441553.html" />
</entry>

</feed>
