This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
themis.fields/themisfields/widgets.py

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))