[Zope-dev] ZPatterns bug: Specialist does not implement _PropertySheetsFor(client)
Steve Alexander
steve@cat-box.net
Thu, 24 Aug 2000 22:03:05 +0100
Steve Alexander wrote:
>
> I'm using ZPatterns 0.4.1snap1.
>
> The LinkToParentProviders datamanager doesn't work properly because it
> assumes that the Specialist it lives in has a _PropertySheetsFor(client)
> method.
>
> However, Specialists (and DataManagers) don't provide this method.
>
> This stops /specialist/object/propertysheets/manage from working. It
> also stops _v_currentSheets from returning all the sheets a Dataskin
> might have.
>
> Phillip, is this fixed in your internal version?
>
> If not, I'll add the method over the weekend.
This method added to DataManagers.py seems to fix it.
def _PropertySheetsFor(self, client):
"""Return a (possibly empty) list of PropertySheet objects for
client"""
# Note: this could include duplicate sheets if persistent sheets
# are defined by more than one provider!
sheets = ()
for ob in self._uniqueProviders(('sheets',)):
sheets=sheets+ob._PropertySheetsFor(client)
return sheets
I'm not sure about the semantics of this though.
With this method added, when a specialist is asked _PropertySheetsFor,
it looks in its own plugins only. It does not look in any of its Racks.
I guess it'll do for now.
--
Steve Alexander
Software Engineer
Cat-Box limited
http://www.cat-box.net