65 lines
2.0 KiB
Python
65 lines
2.0 KiB
Python
from Acquisition import ImplicitAcquisitionWrapper
|
|
|
|
from zope.interface import implementsOnly, implementer
|
|
from zope.component import adapts, adapter
|
|
|
|
from z3c.form.interfaces import IFormLayer, IFieldWidget
|
|
from z3c.form.widget import FieldWidget
|
|
from collective.z3cform.datetimewidget import DateWidget
|
|
|
|
from themisfields.interfaces import ICommission
|
|
from themisfields.interfaces import IAuthor
|
|
from themisfields.interfaces import IDate
|
|
from themisfields.interfaces import ISubjects
|
|
|
|
from plone.formwidget.autocomplete.interfaces import IAutocompleteWidget
|
|
from plone.formwidget.autocomplete.widget import AutocompleteSelectionWidget
|
|
from plone.formwidget.autocomplete import AutocompleteFieldWidget
|
|
|
|
from z3c.form.browser.orderedselect import OrderedSelectWidget
|
|
from z3c.form.browser.checkbox import CheckBoxWidget
|
|
|
|
class ICommissionWidget(IAutocompleteWidget):
|
|
pass
|
|
|
|
class CommissionWidget(AutocompleteSelectionWidget):
|
|
implementsOnly(ICommissionWidget)
|
|
klass = u'commissionWidget'
|
|
|
|
|
|
@adapter(ICommission, IFormLayer)
|
|
@implementer(IFieldWidget)
|
|
def CommissionFieldWidget(field, request):
|
|
"""IFieldWidget factory for CommissionWidget."""
|
|
return FieldWidget(field, AutocompleteSelectionWidget(request))
|
|
|
|
|
|
class IAuthorWidget(IAutocompleteWidget):
|
|
pass
|
|
|
|
class AuthorWidget(AutocompleteSelectionWidget):
|
|
implementsOnly(IAuthorWidget)
|
|
klass = u'authorWidget'
|
|
|
|
|
|
@adapter(IAuthor, IFormLayer)
|
|
@implementer(IFieldWidget)
|
|
def AuthorFieldWidget(field, request):
|
|
"""IFieldWidget factory for AuthorWidget."""
|
|
return FieldWidget(field, AutocompleteSelectionWidget(request))
|
|
|
|
|
|
#@adapter(IDate, IFormLayer)
|
|
#@implementer(IFieldWidget)
|
|
#def DateFieldWidget(field, request):
|
|
# """IFieldWidget factory for DateWidget."""
|
|
# return FieldWidget(field, DateWidget(request))
|
|
|
|
|
|
@adapter(ISubjects, IFormLayer)
|
|
@implementer(IFieldWidget)
|
|
def SubjectsFieldWidget(field, request):
|
|
"""IFieldWidget factory for SelectWidget."""
|
|
return FieldWidget(field, CheckBoxWidget(request))
|
|
|