okay, i've finally found a bit of time to look at this.
you may not know this, but there is a full sample custom member type
implementation that ships with remember, called (sensibly enough)
"sampleremember". this is in the 'examples' folder of the remember
package, but it's actually a standalone Zope product. if you want to
try it out, you should just copy that directory to a Products
directory somewhere and restart Zope.
when i do this, running membrane and remember both from trunk, and i
install the SampleRemember product into my remember-based Plone site,
then i DO see SampleRemember listed as the default member type in the
control panel. you might try this yourself; if it works for you, then
you should be able to work out the difference btn what you have and
what the sample product is doing to figure out what's missing.
if it doesn't work for you, then we'll have to do more digging, b/c i
can't reproduce the problem locally.
On Dec 10, 2008, at 12:34 PM, Scott Brown wrote:
Thanks Jim. That may jsut do the trick - I'll report back to the
list.
----- "Jim Baack" wrote:
> From: "Jim Baack" <[email protected]>
> To: [email protected]
> Cc: "scott brown" <[email protected]>
> Sent: Wednesday, December 10, 2008 3:25:56 PM GMT -05:00 US/Canada
Eastern
> Subject: Re: [Remember Mailing List] What determines vaules in the
Defualt Member Type dropdown
>
>
> ----- "Scott Brown" <[email protected]> wrote:
>
> > I'm still dead in the water on this issue. The non-unicode
string did
> > not seem to make a difference. Any suggestions on how to proceed
with
> > identifying exactly why I am getting no values in the Default
Member
> > types?
> >
>
> Scott, no solution, but I would suggest just trying this for now
to move forward. Edit remember/utils.py to look like this for
getRememberTypes -
>
> security.declarePublic('getRememberTypes')
> def getRememberTypes(context):
> """
> Return a list of all the membrane types that implement
IReMember.
> """
> attool = getToolByName(context, 'archetype_tool')
> mbtool = getToolByName(context, MBTOOLNAME)
> mbtypes = set(mbtool.listMembraneTypes())
> #remtypes = [t.getId() for t in
> # attool.listPortalTypesWithInterfaces([IReMember])]
> #remtypes = set(remtypes)
> #return list(mbtypes.intersection(remtypes))
> return list(mbtypes)
>
> This just ignores the remember interface stuff and shows all
membrane types. It's been working for me.
this is interesting... it implies that the type is registered with the
membrane tool, but that something else is amiss, either the type
didn't get registered w/ Archetypes (using the registerType function)
or the type is not providing the IReMember interface.
both of these seem pretty unlikely, though. i'm pretty sure that lots
would be broken if registerType had not been called. and IReMember is
implemented by the member base class.. you'd have to explicitly remove
it from the set of provided interfaces. it's pretty easy to do this
by using a directlyProvides call when you really want alsoProvides,
but if that were the case you'd be wiping out ALL of the implemented
interfaces and, again, i'd expect much bigger problems than the type
not showing up in the configlet.
if this does fix your problem, i'd be interested in what the exact
issue is, maybe you could put a pdb.set_trace in there and poke around
to see what's going on?
-r