How to fix page rendering errors and other cache-related problems in Plone 3 and the CacheFu caching Product (version 1.1).
After upgrading my Plone 2.5.5 site to version 3.0, I had a bunch of problems with object rendering and caching. With a ton of help from Ricardo Newbery, I was able to fight through these problems and get CacheFu (and my Plone site) working properly again. I hope this information will help you as well, should you run into any similar problems with your Plone site.
For more specifics on the problems, please see these Plone forum threads:
Here are the detailed errors I ran into, and the fixes for each:
The error: ‘NoneType’ object has no attribute ‘get’
The trigger: This error occurred after I tried to uninstall CacheFu, and then re-install it via Plone’s Add/Remove Products configuration page.
The solution: It was necessary to modify either one (or both) of two sets of CacheFu product files on the file system:
- $PLONE_HOME/zeocluster/Products/CMFSquidTool/SquidTool.py and $PLONE_HOME/zeocluster/Products/CMFSquidTool/tests/test_tool.py (code fix detailed here)
The fix here is to comment out line 82, or the following line:
The error: Name not found: LanguageToolFlags (and other layer names)
The trigger: This error occurred while troubleshooting earlier steps and playing with portal skins to fix rendering errors.
The solution: In the Zope Management Interface (ZMI), in /portal_skins/manage_propertiesForm, in the list of skin layers, find the offending skin name (in this case, LanguageToolFlags), delete it from the list, and then click Save. It’s very likely that you’ll have to do this more than once before the error is resolved; in my case, I had to remove seven or eight layer entries before the site would render error-free.
The error: name ‘allow_tabbing’ is not defined
The trigger: After performing the above troubleshooting steps, just trying to access the Cache Configuration Tool in Plone’s Site Setup caused the error.
The solution: This problem required another manual edit of two CacheFu product files on the file system:
- $PLONE_HOME/zeocluster/Products/CacheSetup/skins/cache_setup/cache_setup_items_config.pt and
$PLONE_HOME/zeocluster/Products/CacheSetup/skins/cache_setup/cache_tool_config.cpt (code fix detailed here)
The error: AttributeError: portal_types
The trigger: Again, after doing the above, just trying to access the Cache Configuration Tool in Plone’s Site Setup caused the error.
The solution: First, make sure you take a backup of your database file (Data.fs or other, depending on your data storage) before trying any of this! It’s highly experimental and can damage your site … it could also fix it, however, and backing up your data before trying anything is never a bad idea.That said, here is the procedure that worked for me:
- In the ZMI, in /portal_quickinstaller, click the Contents tab.
- Deleting these CacheFu-related product objects in this tab:
- In the ZMI, at the site root (/), manually delete these CacheFu-related objects:
- In the ZMI, in /portal_skins/manage_propertiesForm, delete the cache_setup layer from the list of skin layers, and click Save.
As mentioned above, you may need to delete more than one skin layer (usually including LanguageToolFlags) before you can save without an error.
- Restart your Zope instance:
- In the ZMI, in /portal_quickinstaller, select CacheSetup and then click Install.
- If this works (and it should!), you should be able to proceed to the Cache Configuration Tool in Plone’s Site Setup to enable CacheFu and put the finishing touches on your caching configuration.