src/pyams_content/component/gallery/interfaces/__init__.py
changeset 395 2a39b333a585
parent 366 9daa8a31a58d
child 398 59e2dddd1bd9
equal deleted inserted replaced
394:1ebcb03e9bff 395:2a39b333a585
    15 
    15 
    16 # import standard library
    16 # import standard library
    17 
    17 
    18 # import interfaces
    18 # import interfaces
    19 from pyams_content.component.paragraph.interfaces import IBaseParagraph
    19 from pyams_content.component.paragraph.interfaces import IBaseParagraph
       
    20 from pyams_content.features.renderer.interfaces import IRenderedContent
    20 from zope.container.interfaces import IOrderedContainer
    21 from zope.container.interfaces import IOrderedContainer
    21 from zope.contentprovider.interfaces import IContentProvider
       
    22 
    22 
    23 # import packages
    23 # import packages
    24 from pyams_file.schema import MediaField, AudioField
    24 from pyams_file.schema import MediaField, AudioField
    25 from pyams_i18n.schema import I18nTextLineField, I18nTextField
    25 from pyams_i18n.schema import I18nTextLineField, I18nTextField
    26 from zope.annotation.interfaces import IAttributeAnnotatable
    26 from zope.annotation.interfaces import IAttributeAnnotatable
    27 from zope.container.constraints import contains, containers
    27 from zope.container.constraints import contains, containers
    28 from zope.interface import Interface, Attribute
    28 from zope.interface import Interface
    29 from zope.schema import Bool, TextLine, Choice
    29 from zope.schema import Bool, TextLine, Choice
    30 
    30 
    31 from pyams_content import _
    31 from pyams_content import _
    32 
    32 
    33 
    33 
    34 GALLERY_CONTAINER_KEY = 'pyams_content.gallery'
    34 GALLERY_CONTAINER_KEY = 'pyams_content.gallery'
    35 
    35 
    36 
    36 
    37 class IGalleryFile(Interface):
    37 class IGalleryItem(Interface):
    38     """Gallery file marker interface"""
    38     """Gallery item base interface"""
    39 
    39 
    40     containers('.IGallery')
    40     containers('.IGallery')
       
    41 
       
    42 
       
    43 class IGalleryFile(IGalleryItem):
       
    44     """Gallery file marker interface"""
    41 
    45 
    42     title = I18nTextLineField(title=_("Legend"),
    46     title = I18nTextLineField(title=_("Legend"),
    43                               required=False)
    47                               required=False)
    44 
    48 
    45     alt_title = I18nTextLineField(title=_("Accessibility title"),
    49     alt_title = I18nTextLineField(title=_("Accessibility title"),
    81                    description=_("If 'no', this media won't be displayed in front office"),
    85                    description=_("If 'no', this media won't be displayed in front office"),
    82                    required=True,
    86                    required=True,
    83                    default=True)
    87                    default=True)
    84 
    88 
    85 
    89 
    86 class IBaseGallery(IOrderedContainer, IAttributeAnnotatable):
    90 class IBaseGallery(IOrderedContainer, IAttributeAnnotatable, IRenderedContent):
    87     """Base gallery interface"""
    91     """Base gallery interface"""
    88 
    92 
    89     title = I18nTextLineField(title=_("Title"),
    93     title = I18nTextLineField(title=_("Title"),
    90                               description=_("Gallery title, as shown in front-office"),
    94                               description=_("Gallery title, as shown in front-office"),
    91                               required=True)
    95                               required=True)
   111 
   115 
   112 
   116 
   113 class IGallery(IBaseGallery):
   117 class IGallery(IBaseGallery):
   114     """Gallery interface"""
   118     """Gallery interface"""
   115 
   119 
   116     contains(IGalleryFile)
   120     contains(IGalleryItem)
   117 
       
   118 
       
   119 class IGalleryRenderer(IContentProvider):
       
   120     """Gallery renderer utility interface"""
       
   121 
       
   122     label = Attribute("Renderer label")
       
   123 
   121 
   124 
   122 
   125 class IGalleryTarget(IAttributeAnnotatable):
   123 class IGalleryTarget(IAttributeAnnotatable):
   126     """Gallery container target marker interface"""
   124     """Gallery container target marker interface"""
   127 
   125