src/pyams_content/shared/form/field.py
changeset 1346 88b5ce31afdc
parent 1343 530cbb970243
child 1367 7e8c67848061
equal deleted inserted replaced
1345:9b406fb98cfa 1346:88b5ce31afdc
     7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
     7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
     8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
     9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
    10 # FOR A PARTICULAR PURPOSE.
    10 # FOR A PARTICULAR PURPOSE.
    11 #
    11 #
    12 from pyams_content.component.paragraph import BaseParagraph, IParagraphFactory, BaseParagraphFactory
       
    13 from pyams_content.features.renderer import RenderersVocabulary
       
    14 
       
    15 
       
    16 __docformat__ = 'restructuredtext'
       
    17 
    12 
    18 from collections import OrderedDict
    13 from collections import OrderedDict
    19 
    14 
    20 from persistent import Persistent
    15 from persistent import Persistent
    21 from zope.componentvocabulary.vocabulary import UtilityTerm, UtilityVocabulary
    16 from zope.componentvocabulary.vocabulary import UtilityTerm, UtilityVocabulary
    25 from zope.location.interfaces import ISublocations
    20 from zope.location.interfaces import ISublocations
    26 from zope.schema import Bool, Choice, Date, Decimal, Int, List, Text, TextLine, URI
    21 from zope.schema import Bool, Choice, Date, Decimal, Int, List, Text, TextLine, URI
    27 from zope.schema.fieldproperty import FieldProperty
    22 from zope.schema.fieldproperty import FieldProperty
    28 from zope.traversing.interfaces import ITraversable
    23 from zope.traversing.interfaces import ITraversable
    29 
    24 
    30 from pyams_content.shared.form.interfaces import FORM_FIELD_CONTAINER_KEY, IFormField, \
    25 from pyams_content.component.paragraph import BaseParagraph, BaseParagraphFactory, IParagraphFactory
    31     IFormFieldContainer, \
    26 from pyams_content.features.renderer import RenderersVocabulary
    32     IFormFieldContainerTarget, IFormFieldFactory, IWfForm, IFormFieldsParagraph, \
    27 from pyams_content.shared.form.interfaces import FORM_FIELDS_PARAGRAPH_NAME, \
    33     FORM_FIELDS_PARAGRAPH_NAME, FORM_FIELDS_PARAGRAPH_TYPE, FORM_FIELDS_PARAGRAPH_RENDERERS
    28     FORM_FIELDS_PARAGRAPH_RENDERERS, FORM_FIELDS_PARAGRAPH_TYPE, FORM_FIELD_CONTAINER_KEY, \
       
    29     IFormField, IFormFieldContainer, IFormFieldContainerTarget, IFormFieldFactory, \
       
    30     IFormFieldsParagraph, IWfForm
    34 from pyams_form.interfaces.form import IFormContextPermissionChecker
    31 from pyams_form.interfaces.form import IFormContextPermissionChecker
    35 from pyams_i18n.interfaces import II18n
    32 from pyams_i18n.interfaces import II18n
    36 from pyams_utils.adapter import ContextAdapter, adapter_config, get_annotation_adapter
    33 from pyams_utils.adapter import ContextAdapter, adapter_config, get_annotation_adapter
    37 from pyams_utils.factory import factory_config
    34 from pyams_utils.factory import factory_config
    38 from pyams_utils.registry import get_global_registry, utility_config
    35 from pyams_utils.registry import get_global_registry, utility_config
    39 from pyams_utils.request import check_request
    36 from pyams_utils.request import check_request
    40 from pyams_utils.schema import MailAddressField
    37 from pyams_utils.schema import MailAddressField
    41 from pyams_utils.traversing import get_parent
    38 from pyams_utils.traversing import get_parent
    42 from pyams_utils.vocabulary import vocabulary_config
    39 from pyams_utils.vocabulary import vocabulary_config
    43 
    40 
       
    41 
       
    42 __docformat__ = 'restructuredtext'
       
    43 
    44 from pyams_content import _
    44 from pyams_content import _
    45 
    45 
    46 
    46 
    47 @implementer(IFormField)
    47 @implementer(IFormField)
    48 class FormField(Persistent, Contained):
    48 class FormField(Persistent, Contained):
    78                 if factory is not None:
    78                 if factory is not None:
    79                     yield factory.get_schema_field(field)
    79                     yield factory.get_schema_field(field)
    80 
    80 
    81     def find_fields(self, factory):
    81     def find_fields(self, factory):
    82         for field in self.values():
    82         for field in self.values():
    83             if field.field_type == factory:
    83             if field.visible and (field.field_type == factory):
    84                 yield field
    84                 yield field
    85 
    85 
    86 
    86 
    87 @adapter_config(context=IFormFieldContainerTarget, provides=IFormFieldContainer)
    87 @adapter_config(context=IFormFieldContainerTarget, provides=IFormFieldContainer)
    88 def form_field_container_factory(context):
    88 def form_field_container_factory(context):