[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