Querying adapters against plone.directives.form.Schema

I have a form model created as following:

from plone.app.directives import Form

class IFormSchema(form.Schema):

    foobar = schema.Bool(title=u"Just another field")

I'd like to register an adapter against this definition:

@component.adapter(IFormSchema)
@interface.implementer(ITreeSelectURLProvider)
def TreeSourceURL():
    """
    """
    return "http://foobar"

The registration goes correctly.

However, there is an issue that I don't know if IFormSchema is directly provided by any object in any point of z3c.form processing chain, so that I could call:

 provider = ITreeSelectURLProvider(someObject)
  • Does IFormSchema get directly applied to some object (zope.interface.directlyProvides?) in any point of z3c.form or plone.autoform chain

  • If not, what is the recommended practice so that I can register adapters against the model? What classes I should make to implement this interface?

To make matters worse, the context in the question is not a real content item but a subform object.

Answers


Dexterity make sure that the schema interface (be that defined on the filesystem and referenced in the FTI, or defined through the web or in an XML file) is provided by instances of the content type.

This isn't really about forms, it's about Dexterity. The form.Schema base class is just a marker that extends Interface, and which allows some of plone.autoform's processing to take place at configuration time.


Need Your Help

std::vector inserts a copy or reference of an object?

c++ vector reference copy

Lets say I have an object that I dynamically allocated.

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.