[Zope-dev] Re: Zope Book at ZopeWiki.org
On Thu, Apr 22, 2004 at 06:07:10AM -0400, Stephan Richter wrote: I tried this and I can tell you that a Wiki is not the right format for a book. While it lowers the entrance points, it is far too simplistic. I eventually changed my master to LaTeX, where I can add as much meta-data and other markup (especially for an index, which is crucial) easily and then I try to create Wiki-friendly STX files from that. Would this help... LatexWiki is a patch to the ZWiki package that allows rendering of in-line LaTeX. http://mcelrath.org/Notes/LatexWiki -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 OntoSys, IncPGP keyID: 7B449345fax: +1.630.879.1370 www.ontosys.com 38W242 Deerpath Rd, Batavia, IL 60510-9461, USA ___ Zope-Dev maillist - [EMAIL PROTECTED] http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] AW: [Summary] Caching prob with AHCM and headers
On Thu, Sep 18, 2003 at 11:09:57AM +0100, seb bacon wrote: I use squid, which doesn't require last-modified headers. I guess that's not an option for you, or you'd probably already be using it ;-) But in any case, I don't see why Shane's suggestion of uncommenting the last-modified line shouldn't work. I use Squid as an HTTP accelerator in front of ZServer. What do last-modified headers have to do with this discussion? Anyway, I have a strong preference for working with stock code, rather than patching Zope itself or any of the products. I use a standard HTTP Cache Manager for all our caching needs - I have yet to find the granuality allowed by CPM necessary. Aha, I didn't realize that an HTTP Cache Manger can now handle FSDV objects. That does seem to make the CMF CPM unnecessary for my purposes. (I'm using Zope 2.6.1, CMF 1.4, and Plone 1.1alpha2). (BTW, in the CMF you can associate FS Objects with named cache managers by adding a file called foo.dtml.metadata with the following contents:: I'm able (I realize just now) to associate FS objects with an HTTP Cache Manager directly from the cache managers Associate tab in the ZMI, just like other cache-managable types. The only class of request for which I need to have a separate policy is requests from people who are actually editing a site. I have created a customised HTTP Cache Manager which doesn't cache requests for specified URLs. I then instruct site editors to edit the site using, e.g. 'edit.mysite.com' and to view it using 'www.mysite.com'. Interesting approach. An HTTP Cache Manager has properties allowing it to be associated with an external downstream cache such as Squid, so that when a cached object is updated in Zope the cache manager notifies the external cache to purge the corresponding URL. But my few experiments with that (some months back, on an earlier version of Zope) showed that Zope would send a NOTIFY message with a different URL than the one that squid had associated with particular object, apparently because of URL path transformations caused by virtual hosting and/or skin lookup; so the old version of the updated object would remain in the squid cache. I wonder if that works better now. I'll try a few tests... P.S. Even if the NOTIFY interaction above worked right, that still would not address the problem where a page template does not change, but the generated content on that page does. I can see where a site author/editor might want to get a fresher view of such pages than is necessary for a random visitor. -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 OntoSys, IncPGP keyID: 7B449345fax: +1.630.879.1370 www.ontosys.com 38W242 Deerpath Rd, Batavia, IL 60510-9461, USA ___ Zope-Dev maillist - [EMAIL PROTECTED] http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] AW: [Summary] Caching prob with AHCM and headers
On Wed, Sep 17, 2003 at 10:03:15AM -0400, Tres Seaver wrote: On Wed, 2003-09-17 at 07:26, Chris Withers wrote: Fred Yankowski wrote: python: content.meta_type == 'Filesystem Image' Do you have any content with this metatype? There is nothing in the portal_catalog with that meta_type. But there are lots of objects with that type: most everything in portal_skins/plone_images/, for example. Oh, I getcha now... hmmm.. since these are served from disk anyway, what would be the benefit in caching them? (Dim memories suggest that OFS.Image.Image does some work to circumvent caching, that's probabyl why they'er not being cached...) Two reasons: - Browser caches know about the HTTP headers, too. - Accelerators (Squid, Apache w/ mod_proxy and caching), cache content to reduce load on the appserver. Right. I assumed all of that was obvious when I jumped into this thread. The CMF Caching Policy Manager object does not itself cache any objects (unlike the RAM Cache Manager, which does) -- it merely applies cache control headers to set the freshness of some published objects so that downstream caches can do real caching and take some load off of Zope, and perhaps off the network. My original question concerned a detail of how the CMF Caching Policy Manager interprets the 'Predicate' of a caching policy: it seems to interpret any 'content' object in that predicate as a reference to the *parent* object of the object being considered for cache header management. That made no sense to me, and I pointed to the exact code involved, but I still don't know if that code is the result of Undocumented Wisdom or merely a Goof. Meanwhile, back on the ranch, I'm getting good results with this policy predicate: python: content.meta_type == 'Filesystem Directory View' With that, all objects in a Filesystem Directory View get cache control headers. The aforementioned Wisdom|Goof prevents me (AFAICT) from discriminating different meta_types of the individual objects within the various FSDVs, but so far one policy across all such is just fine. -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 OntoSys, IncPGP keyID: 7B449345fax: +1.630.879.1370 www.ontosys.com 38W242 Deerpath Rd, Batavia, IL 60510-9461, USA ___ Zope-Dev maillist - [EMAIL PROTECTED] http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] AW: [Summary] Caching prob with AHCM and headers
On Wed, Sep 17, 2003 at 06:25:47PM -0400, Tres Seaver wrote: I have wanted to add a binding to the TALES namespace to allow access to the skin object for some time: the current values in the namespace are: 'content' -- the skin object's aq_parent That definition matches the reality, but in CachingPolicyManager.py in a comment it has this: 'content' -- the content object itself which I took at face value for far too long. I think we should be adding in another binding, perhaps 'skinned' for the skin object, which would allow you to filter on its metatype in your predicate. I would like that. I typically want to have skin images, as well as javascript and CSS files, cached for much longer than rendered content views. YMMV. That makes sense. Is there a way to do that with the CMF 1.4 version of the CPM? One could, I suppose, test the names of the FSDV folders in CPM predicates, but that seems a royal PITA. That's why I'm making do with one-size-fits-all CPM policy for now. -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 OntoSys, IncPGP keyID: 7B449345fax: +1.630.879.1370 www.ontosys.com 38W242 Deerpath Rd, Batavia, IL 60510-9461, USA ___ Zope-Dev maillist - [EMAIL PROTECTED] http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] AW: [Summary] Caching prob with AHCM and headers
On Mon, Sep 15, 2003 at 01:14:51PM +0100, Chris Withers wrote: Fred Yankowski wrote: But I can't see how to create more restrictive Predicate. My initial attempt was to set Predicate like so: python: content.meta_type == 'Filesystem Image' Do you have any content with this metatype? There is nothing in the portal_catalog with that meta_type. But there are lots of objects with that type: most everything in portal_skins/plone_images/, for example. -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 OntoSys, IncPGP keyID: 7B449345fax: +1.630.879.1370 www.ontosys.com 38W242 Deerpath Rd, Batavia, IL 60510-9461, USA ___ Zope-Dev maillist - [EMAIL PROTECTED] http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] AW: [Summary] Caching prob with AHCM and headers
On Fri, Sep 12, 2003 at 10:13:44AM -0400, Tres Seaver wrote: The CMF's CachingPolicyManger, which is specialized for caching skin methods, already has such customizations: it allows spelling the 'Last-Modified' header using a TALES expression, and also has checkboxes for the 'no-cache', 'no-store', and 'must-revalidate' options of the 'Cache-Control' header. Based on that note I decided to try CachingPolicyManager for the first time, and I'm confused about how it's supposed to work. In a CMF/Plone portal instance (CMF 1.4) I created a CMF Caching Policy Manager object. If I create a policy instance with default Predicate and Mod. Time values and a Max age of 999, FSImage objects are then published with appropriate cache control headers so that they expire after 999 seconds. Cool. But I can't see how to create more restrictive Predicate. My initial attempt was to set Predicate like so: python: content.meta_type == 'Filesystem Image' But that predicate never seems to return true. Looking at _setCacheHeaders() in CMFCore/utils.py, 'content' is set to 'aq_parent(obj)'. Because of that, any tests against 'content' in the Predicate apply to the Filesystem Directory View that contains the particular FSImage objects, rather than to the FSImage object itself. What good is that? -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 OntoSys, IncPGP keyID: 7B449345fax: +1.630.879.1370 www.ontosys.com 38W242 Deerpath Rd, Batavia, IL 60510-9461, USA ___ Zope-Dev maillist - [EMAIL PROTECTED] http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
Re: [Zope] LoginManager dlpierson example
I just realized that I responded in terms of a PythonMethod when you asked about a PythonScript. My ZClass functions for my LoginManager subclass are all PythonMethods, yet to be converted to Python Scripts. My 'authenticate' method takes (self, password, request) as parameters and has for the function body only return password == self.password I suspect that an equivalent PythonScript will need to take password and request as parameters (not so sure about 'request') and will have a body like this: return password == container.password Ah, what the heck... OK, I just converted my authenticate script as above and it seems to still work fine. On Wed, Jan 31, 2001 at 07:32:14PM +1300, W. Robert Kellock wrote: On passing 'request' (why the extra argument anyway?) I got Error Type: TypeError Error Value: not enough arguments; expected 3, got 2 so I'm wondering have you got LoginManager to work on the Zope 2.3.0 release? -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
[Zope] SiteAccess affects the Zope management interface
I hadn't realized it before, but SiteAccess can cause really confusing things in the Zope management interface! When I installed Zope 2.3.0 and ran it on an unused port number to check it out while the main Zope was still running, the top-level Zope folder displayed with the new look (which is very well done, BTW), but when I would drill down into a folder governed by a SiteRoot object the folders appeared with the old (2.2.x) look. This was quite a mystery until I realized that although the tree frame on the left (and the new top frame) were displaying pages served by the new Zope 2.3.0 process, the right/folder frame was actually displaying a page served by my older production Zope process running Zope 2.2.5! My Zope tree is something like this: / + /subsite1 + /subsite2 subsite1 has a SiteRoot that gives the folder a new Base of "http://subsite1.org". Apache is sitting on port 80 and using ProxyPass to map http://subsite1.org to http://myhost.org:8080/subsite1. Assume the new Zope ZServer is running on port 9090. So the listing for 'subsite1' in the tree display has an HREF of http://myhost.org:9090/subsite1/manage_main. When I click on that, the browser requests that URL from Zope on myhost.org:9090. Because of the SiteRoot object, the server sends back an HTTP 302 response redirecting the browser to http://subsite1.org/manage_main, which the browser dutifully requests. The Apache server gets that request and forwards it via ProxyPass to http://myhost.org:8080/subsite1/manage_main. The other/older Zope server on port 8080 fields that request (with SiteAccess converting URLs) and sends it back to the browser, which displays it in the large/right frame. So now the left frame is displaying the objects served by ZServer on port 8080 but the right frame is displaying the contents of some object served by ZServer on port 9090. One outcome of this for me is that I will now test the staging server by running it this way (from bash): SUPPRESS_SITEROOT=1 ./start.bat so that SiteRoot translations are disabled. -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] LoginManager dlpierson example
On Wed, Jan 31, 2001 at 09:25:08AM +1300, W. Robert Kellock wrote: Are PythonScript arguments typeless? I keep getting an error Error Type: AttributeError Error Value: 'string' object has no attribute 'password' from the authenticate method which I'm passing self,password. I think you should pass (self, password, request). -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
[Zope] porting from Python Methods to PythonScripts in 2.3.0; LoginManager too
I just installed Zope 2.3.0 and I'm planning how to port my sites from 2.2.5. It looks like I'll have to: + Copy over the Products I installed, _except_ + Don't copy over SiteAccess and PythonMethods. + Delete the PythonMethods product from the Control_Panel/Products management folder. Will I have to manually convert each existing Python Method to a PythonScript, or are they essentially the same type? I haven't been able to test what happens yet, because all my existing Python Methods relate to LoginManager and I haven't been able to get the LoginManager product to initialize correctly in 2.3.0. I followed the first two steps above and copied over my data.fs. It comes up cleanly except for an exception while loading the LoginManager and some ZClass problems for ZClasses that depend on LoginManger. The exception is this: -- 2001-01-29T16:57:02 ERROR(200) Zope Couldn't import Products.LoginManager Traceback (innermost last): File E:\PROGRA~1\Zope230\lib\python\OFS\Application.py, line 530, in import_products (Object: string) File E:\PROGRA~1\Zope225\lib\python\Products\LoginManager\__init__.py, line 1, in ? File E:\PROGRA~1\Zope225\lib\python\Products\LoginManager\LoginManager.py, line 121, in ? InstallError: No access file found at E:\Program Files\Zope230 - see INSTALL.txt -- Can someone help me understand this? The two INSTALL.txt files under Zope230 offer no clues. It's odd that the exception stack shows it executing code from my older Zope225 installation. How the heck can that happen? Is that some bug in Python? There's nothing in my environment that mentions Zope225, and I dumped sys.path late in z2.py and it looks fine. I tried deleting the LoginManager product from the management interface and restarting, but the same exception occurs. I do notice that, unlike prior Zope installs, there is no 'access' file in the Zope root. Oops, I just saw another message about LoginManager not yet working in Zope 2.3. If that's so, it's a show-stopper for me. -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] porting from Python Methods to PythonScripts in 2.3.0; LoginManager too
After browsing the Zope-dev list (I guess that's _yet another_ list I need to follow) I found a note about creating the 'access' file manually with zpasswd.py. After doing that, LoginManager seems to come up cleanly in Zope 2.3.0. And now I can see that my Python Methods come in broken, apparently because they depend on the PythonMethods product that I didn't carry over. So I guess I'll have to have to install PythonMethods and port over those methods manually to Python Scripts. Rats. I'm just glad I didn't have too much invested into PythonMethods. -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
[Zope] Python Methods can't construct literal dictionaries?
I'm trying to create a Python Method, using PythonMethod 0-1-7, that validates a set of form values before updating a database. I planned to return any/all errors as a dictionary keyed by the errant field name. But statements like this in my Python Method input_errors = {} input_errors['password'] = "password must not be empty" ... return input_errors result in the following error when I try to save the change to the code: Error Type: Python Method Error Error Value: Forbidden operation STORE_SUBSCR at line 3 What's up with that? I can't create dictionaries in Python Methods? I must be missing something. Is there some way around this? -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Did I miss some major change in Z SQL Methods ?
I missed the original message, but I'm trying to do something similar -- use Python Methods rather than DTML -- and I found one critical difference just today. Here's an example: I've got an SQL Method called 'select_item' that takes 'item_id' as its only input parameter. I've got a DTML Method 'form_action' that has 'item_id' in its namespace by virtue of being posted from an HTTP form. When I would invoke the SQL method from DTML I could do just dtml-call select_item and the SQL method would get the item_id from the DTML method. But when using a new 'action_script' Python Method (PythonMethod 0.1.7) I have to pass that item_id explicitly from the DTML dtml-call "action_script(item_id)" and action_script itself has to call the SQL method like so self.select_item(item_id=item_id) I don't know why the explicit parameter passing is needed in the latter case (DTML to Python Method to SQL Method) but not in the former (DTML to SQL Method). I'm sure I'm missing some trick. In fact, this aspect of Zope -- when values are passed explicitly and when not -- is a major confusion for me. (And anyone who responds about "Zen" deserves to have the size 12 boot applied.) On Mon, Jan 29, 2001 at 09:28:17AM +1100, Curtis Maloney wrote: The SQL Method works fine. I can easily test that with the 'Test' tab. Really, the only difference now to how I would have previously done this is that I have the python method slicing the result for me. That being said, I have tried removing that, and going to the Z SQL method directly, and it STILL doesn't work. -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] LoginManager, can't get past login form
Nick, Thank you! Installing the latest ZPatterns did the trick, exactly as you said. EXcellent. But I still wish I had some way to test the pieces of the application, or to at least trace their operation. ZPatterns is a bit too opaque for my taste, particularly given its complexity, unfamiliarity and immaturity (in the sense of being new and not fully developed). On Fri, Jan 26, 2001 at 06:12:52PM +1300, Nick McDowell wrote: I encountered the same problem. I soon realized that the ZPatterns that is packaged with LoginManger is a version different to the one Dan Pierson mentions in his article. -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
[Zope] SQL-based LoginManager and subtransactions
I haven't been following this discussion, but it sounds like there's the potential for SQL operations performed by LoginManager to interfere with other SQL operations such as logging uploaded files, in the case where the database system does not support nested (sub-) transactions. Correct? If so, would it help to create a separate database access object, and therefore separate connection (I think), just for the use of LoginManager? Or could this cause some deadlock between the LoginManager and other connections? I'm quite interested in potential problems here as I plan to use PostgreSQL with LoginManager on my sites. On Fri, Jan 26, 2001 at 06:23:57PM +0100, Oliver Bleutgen wrote: As we use Loginmanager with postgres, I have know idea how to not invoke Z SQL methods when upload. Has anybody an idea if and under what circumstances the above snipped could do harm? -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Acquisition Algebra; interaction of containment and acquisition is confusing
Thank you for describing the transformation rules in detail. With those I can mechanically create the same acquisition expression that you get. Working some further examples with this knowledge [and how can I use this knowledge to make mo' money?], I find that given a containment tree like this: a -- b -- c \-- x -- y the access path a.b.c.x.y results in a search order of (y, x, a, b, c) Evan Simpson wrote: Trying to control or predict the exact search order for any but the simplest acquisition trees is a dangerous game. You can read it off directly from the algebra form, as in (((x o a) o (b o a)) o (c o (b o a))) = x, a, b, c (ignoring duplicates), but it's unlikely to be useful, as you saw. Now, does that bother anyone besides me? Since acquisition is intrinsic and ubiquitous in Zope, shouldn't we be concerned that it is hard to control or predict? -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
[Zope] Acquisition Algebra; interaction of containment and acquisition is confusing
Can anyone help me understand what's going on in the last example of the main "Acquisition" document, http://www.digicool.com/releases/ExtensionClass/Acquisition.html? I think I understand how the various "complex expressions" relate to the equivalent expression in terms of the '__of__' operator, except for the very last case, "a.b.c.x". I just can't follow why the equivalent expression isn't x.__of__(a).__of__(c.__of__(b.__of__(a))) rather than the more complex answer given: x.__of__(a).__of__(b.__of__(a)).__of__(c.__of__(b.__of__(a))) When I run the test cases given in the document I see that the latter does match the behavior, but I find that baffling. In particular, why is the effective search order x-a-b-c rather than x-a-c-b? It almost looks like the effective search order could be described as "up through the containment heirarchy, then down through the remaining acquired path", but I'm not at all sure if that's a valid generalization. Can anyone shed some light on this for me? -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] SQL delimiter?
On Wed, Jan 17, 2001 at 04:36:29PM -0800, Andy McKay wrote: Ive looked through the docs and Im sure I saw once (but cant see it now), some sort of delimiter between SQL statements allowing me to put multiple SQL statements in one SQLMethod. Was I imagining that? It's dtml-var sql_delimiter. I just needed that yesterday, and I found it on p 28 of my printed (from PDF) copy of the Z SQL Methods User's Guide, in the "Query Templates" section (huh?). -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] broken products not indicated after Zope 2.2.5 install
I activated Zope logging as you suggested and restarted Zope, but the logfile does not report any exceptions. It only contains routine startup messages such as "ZServer HTTP server started ...". And the Products list still makes it look like they're all OK, when many are in fact broken by virtue of being completely missing in the lib/python/Products directory. On Wed, Jan 10, 2001 at 07:53:02PM +0100, Dieter Maurer wrote: Fred Yankowski writes: I just installed a full copy of Zope 2.2.5 onto my NT 4.0 SP 6 machine and then copied over my data.fs* files from Zope 2.2.3. Zope 2.2.5 comes up OK after that, but none of the Products in the Control Panel / Products folder is shown as broken, even though I have yet to copy over the dozen or so products that I had added onto Zope 2.2.3. Of course, other objects that depend on those products fail and some of those do display a "broken" icon and state. But why don't the incomplete products themselves get flagged as broken? This may be part of a (small) Zope misfeature. If exceptions occur during some part of product registration, then Zope appears not to update the product state. I suggest, you activate Zope's logging mechanism (either through an environment variable "STUPID_LOG_FILE=file" or with an equivalent command line argument to "start"). Then restart Zope and look at the log file. If you see exceptions there, file a bug report into the Collector. -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Stupid File Upload Question
On Fri, Dec 15, 2000 at 07:22:43PM -0500, [EMAIL PROTECTED] wrote: Anyway, be absolutly sure that your form says: form method=post action=whatever method="multipart/form-data" Of course, that should be ENCTYPE instead of the second METHOD attribute name: form method=post action=whatever enctype="multipart/form-data" As an aside, I found the following page to be a useful example of Zope file-upload handling: http://classic.zope.org/pipermail/zope/1999-July/006591.html -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Re:GoLive (or, redirecting to index.html)
On Wed, Nov 01, 2000 at 03:10:57PM -0700, Bill Anderson wrote: dtml-var "_['index.html']" I tried that too, but it also had problems. That format would load the index.html file OK, but most of the links within the page would be wrong in the case where the page is accessed via a URL like http://fqdn.com/subsite (note, no final "/"). The javascript code in index.html (generated by the Web Studio tool) generates an HTML BASE element with the HREF attribute set to the concatenation of the window.location (or window.location.href) value with "subsite", resulting in an HREF value of "http://fqdn.comsubsite" in this case. SNAFU. This problem stems from the quirky code generated by Web Studio, but it forced me to access the page via a redirect rather than incorporating it directly via dtml-var. -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Re:GoLive
On Wed, Nov 01, 2000 at 03:32:07PM +, tom smith wrote: Anyone know if GoLive 5 with WebDav can edit dtml files...or Dreamweaver? With Dreamweaver 2.0 I can use File - Open to open and edit a file with a name like "index_html", but when I define a Dreamweaver "site" that encompasses files like "index_html" then Dreamweaver refuses to open such files, putting up an alert that says "The file 'index_html' could not be opened because Dreamweaver does not open files without an extension'. This is a major PITA. Perhaps there is some configuration parameter that would allow this, but I haven't found it. Maybe newer versions of Dreamweaver are more accomodating? -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Re:GoLive
On Wed, Nov 01, 2000 at 08:31:09AM -0600, Christopher J. Kucera wrote: That should be pretty easy . . . Zope will let you add objects that have dots in the titles, so just put a method "index_html" in the root folder which has the following line: dtml-var index.html That obvious solution fails in some cases. It failed for me the very first time I needed it, when I tried to integrate web pages created by the Web Studio tool into a larger Zope website. Web Studio (ack, phooey) creates a main index.html that uses Javascript to redirect to another page that acts as the real entry point. That Javascript code gets confused when loaded via dtml-var index.html as above. I resorted to doing the following instead: dtml-call "RESPONSE.redirect(URL1 + '/index.html')" So now it takes two redirects to get to the real page, darn it. The above _could_ redirect straight to the real entry page, but exact knowledge of which page that is belongs to the subsite, not in my code. And it turns out that the subsite _has_ changed its entry page since I set up the above code. With Zope, simple things are easy, but slightly complex things tend to be hard. It's a weird learning/technology curve and I sure hope it flattens out soon... I've done a lot of website programming in PHP, Java, Perl, and AOLserver/Tcl -- none of those seem to have Zope's complexity at the point of creating simple database-backed websites. Zope doesn't even have a decent self-registering user login system out of beta yet. Sheesh. -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
[Zope] incorporating generated sub-websites within a Zope site
I'm looking for suggestions about how to manage a Zope website that hosts some subsites created by tools outside of Zope. Here's the situation. I'm working on a community website (batavians.org) for a small city (Batavia, IL) where I want to allow various non-profit community organizations to manage their own subsites. But the very first test case is proving to be a problem because the manager of the subsite is using web page development tools that seem to make it hard to integrate their subsite with the rest of the site. They can FTP their files up to the Zope server (which I configured to use port 21 for FTP) and their work is accessible just fine given a small "glue" index_html object that bridges to their internal main page. But I got blocked when I tried to add a standard page footer onto their pages. Actually, I was able to add a dtml-var element to pull in a standard footer via acquisition and that works, but the manager of the sub-website has no way to pull that change back to her working version of the subsite. It seems that the lightweight "Web Studio 2.0" tool she's using has no FTP-download function at all. Not only that, it has no way to view/edit HTML at all! It's only possible to edit using a WYSIWYG design view (AFAICT). So she can't merge in the change even if I tell her exactly the HTML code to add. OK, this problem is largely the result of the crappy web-design tool she's using, but I really have no control over that. The subsite manage/author doesn't know HTML and would be completely helpless with Zope's "through the web" editing interface. A better tool such as Dreamweaver would at least allow her to download files and/or edit HTML directly, but that's moot in this case. Even with Dreamweaver I think the DTML tags would be invisible and hard for a non-programmer to deal with. (Not only that, Dreamweaver refuses to open files that don't have an extension, so it won't open index_html for example.) So what alternatives do I have? Is there some way that I can set up a filter such that every page of her subsite goes through the filter before being sent out to the browser, allowing me to tack on a page footer on those pages? I'm sure Zope has such a mechanism, but I don't know where to look. Even with such a filter I'm not keen about having to parse her pages (which are/should-be each a complete HTML document) in order to insert a footer line in the right place. What other schemes should I consider? -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Help Debugging External Methods
On Tue, Oct 17, 2000 at 09:05:29PM -0700, Kapil Thangavelu wrote: The Debugger is your friend http://www.zope.org/Members/michel/HowTos/TheDebuggerIsYourFriend That's a useful page -- thanks for the link. It's interesting that the example fooMethod() function has a major flaw, contrary to what the HowTo says: "There's actually nothing wrong with this method to debug". I would have replied directly to the author, 'michel', but his email address does not appear on that HowTo page or any of the pages that I scanned under http://www.zope.org/Members/michel. -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
[Zope] how to include Flash/SWF objects in Zope website?
I want to include some Flash/SWF objects in a Zope website, but I don't see any built-in way to do this or any Product that would help. Any suggestions? If all else fails, I'm thinking about creating a simple product for this, modeled on ImageFile.py. -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] how to include Flash/SWF objects in Zope website?
Thank you both for the help. File objects are just the ticket (but it turns out that Image objects work nearly as well). For the record, here's what I did: + create File object with id "foo_swf". + upload my local foo.swf file into foo_swf. + create DTML Method object "foo_flash" to provide all the HTML OBJECT and EMBED elements needed to wrap the flash object, referring to that flash object as 'PARAM NAME=movie VALUE="foo_swf"' and 'src="foo_swf"', respectively. + use 'dtml-var foo_flash' to display the flash object in a DTML Document. On Mon, Oct 16, 2000 at 02:10:03PM -0400, Jim Washington wrote: N.B. You probably should add your Flash/SWF objects as "File" objects. DTML Method/Document objects can do amusing things with binary data, which is why there are "File" objects. -- Jim Washington J. Atwood wrote: You could just upload them into Zope and point to them. http://www.gotschool.com (see flash demos). It uploads as a "application/octet-stream" I am sure you are talking about much more interaction. J -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Using ProxyPass and SiteRoot
It looks to me like you'd need the following in Apache's httpd.conf: NameVirtualHost 206.131.108.102 VirtualHost 206.131.108.102 ServerName www.isd197.k12.mn.us ProxyPass / http://206.131.108.103:8080/ ProxyPassReverse / http://206.131.108.103:8080/ /VirtualHost and the following settings in a SiteRoot object at the root of the Zope tree for the site: base: http://www.isd197.k12.mn.us path: / Timothy Wilson wrote: I've been developing a new Zope site on a separate machine at http://206.131.108.103:8080/ using just ZServer and I would like to use ProxyPass to pass a request for www.isd197.k12.mn.us through to this new site. -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Black Magic
Evan, The information you just provided about the DTML Method "call signature" and the like is very useful. Is this kind of reference material written down somewhere in a guide/how-to/wiki/...? I tried to figure out the call signature of a Python method by having the called function use just "(*varargs, **kwargs)" as formal parameters, but the inscrutable mapply() function seems to thwart that effort as mapply() adjusts the function call according to what parameters the called function (or callable object, ...) expects. Very weird. Is there some document that covers the how and why of mapply()? On Tue, Oct 10, 2000 at 11:17:13AM -0400, Evan Simpson wrote: 1. DTML Methods' __call__ signature is (client=None, REQUEST={}, RESPONSE=None, **kw). The client, REQUEST, and keyword arguments are layered to form the namespace for the Method, with the keywords on top, then the client, then REQUEST. ... -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
[Zope] one external method calling another; what possibilities?
I'm using some example code that defines an External Method to process a form. That External Method calls another utility function to log some data. I'm not quite sure what choices I have for creating that utility function, so I created another External Method for it. Both functions are in the same Python source file in the Extensions folder. Anyway, the main external function calls the utility function like this: self.function2(arg1=valuex, arg2=valuey) I expected that function2 would have to be defined like this: def function2(self, **kwargs) but it turned out that that fails at runtime with a complaint about a mismatch between the number of arguments sent and expected (0 and 1, respectively). The following does work: def function2(**kwargs) So, why isn't function2 called as a method function? Was there some better way I could have implemented function2, rather than as an external method? Where is reference documentation on External Methods? I couldn't find anything other than a very cursory overview in one of the PDF'ed documents (I forget which). -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
[Zope] why does squishdot url_quote email address values?
Version 0-7-2 of Squishdot seems to use the url_quote option when accessing the value of admin_address in particular, so when a DTML page has code like !--#var admin_address url_quote-- and admin_address is a property with the value "[EMAIL PROTECTED]", the resulting HTML code is foo%40bar.com which doesn't work correctly, particularly when used as the value of a 'mailto:' URL. So what's the solution? Is Squishdot wrong to use url_quote this way? Why is url_quote hiding the "@" anyway -- I don't see any reason for escaping it this way. -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
[Zope] trouble with SiteAccess; can't manage subtree mapped to inaccessible domain name
I set up SiteAccess 2-0-0b3 on Zope 2.2.2 so that two virtual hosts front-ended by Apache map to two different subtrees in Zope. That worked OK until the local DNS server lost the entry for one of my domains. I'm working on fixing that (it's out of my hands) but I find that in the meantime I can't even get to the corresponding Zope subtree in manage mode! I think the SiteAccess object I created is still mapping URLs to the domain name which now fails to resolve. How do I get out of this jam? I tried deleting the Products/SiteAccess folder, restarting Zope, and deleting the SiteAccess product from the Control_Panel/Products view, but now I'm getting an AttributeError when I try to access the subtree that has a SiteAccess object. Since I can't get to that tree, I can't figure out how to delete that object. Is there some way to delete it by name from a higher point in the tree? -- Fred Yankowski [EMAIL PROTECTED] tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )