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 |