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 |
12 |
13 __docformat__ = 'restructuredtext' |
13 from zope.interface import implementer |
14 |
|
15 from zope.schema.fieldproperty import FieldProperty |
14 from zope.schema.fieldproperty import FieldProperty |
16 from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary |
15 from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary |
17 |
16 |
18 from pyams_content.component.paragraph import BaseParagraph, BaseParagraphContentChecker, BaseParagraphFactory, \ |
17 from pyams_content.component.paragraph import BaseParagraph, BaseParagraphContentChecker, \ |
19 IParagraphFactory |
18 BaseParagraphFactory, IParagraphFactory |
20 from pyams_content.features.checker.interfaces import ERROR_VALUE, IContentChecker, MISSING_LANG_VALUE, MISSING_VALUE |
19 from pyams_content.features.checker.interfaces import ERROR_VALUE, IContentChecker, \ |
|
20 MISSING_LANG_VALUE, MISSING_VALUE |
21 from pyams_content.features.renderer.interfaces import IContentRenderer |
21 from pyams_content.features.renderer.interfaces import IContentRenderer |
22 from pyams_content.shared.logo.interfaces import ILogosParagraph, LOGOS_PARAGRAPH_NAME, LOGOS_PARAGRAPH_RENDERERS, \ |
22 from pyams_content.shared.logo.interfaces import ILogosParagraph, LOGOS_PARAGRAPH_NAME, \ |
23 LOGOS_PARAGRAPH_TYPE |
23 LOGOS_PARAGRAPH_RENDERERS, LOGOS_PARAGRAPH_TYPE |
24 from pyams_i18n.interfaces import II18n, II18nManager, INegotiator |
24 from pyams_i18n.interfaces import II18n, II18nManager, INegotiator |
|
25 from pyams_sequence.interfaces import IInternalReferencesList |
25 from pyams_sequence.reference import get_reference_target |
26 from pyams_sequence.reference import get_reference_target |
26 from pyams_utils.adapter import adapter_config |
27 from pyams_utils.adapter import adapter_config |
27 from pyams_utils.factory import factory_config |
28 from pyams_utils.factory import factory_config |
28 from pyams_utils.registry import get_utility, utility_config |
29 from pyams_utils.registry import get_utility, utility_config |
29 from pyams_utils.request import check_request |
30 from pyams_utils.request import check_request |
30 from pyams_utils.traversing import get_parent |
31 from pyams_utils.traversing import get_parent |
31 from pyams_utils.vocabulary import vocabulary_config |
32 from pyams_utils.vocabulary import vocabulary_config |
32 from pyams_workflow.interfaces import IWorkflow, IWorkflowState |
33 from pyams_workflow.interfaces import IWorkflow, IWorkflowState |
33 |
34 |
|
35 |
|
36 __docformat__ = 'restructuredtext' |
|
37 |
34 from pyams_content import _ |
38 from pyams_content import _ |
35 |
39 |
36 |
40 |
37 @factory_config(ILogosParagraph) |
41 @factory_config(ILogosParagraph) |
|
42 @implementer(IInternalReferencesList) |
38 class LogosParagraph(BaseParagraph): |
43 class LogosParagraph(BaseParagraph): |
39 """Logos paragraph""" |
44 """Logos paragraph""" |
40 |
45 |
41 icon_class = 'fa-th-large' |
46 icon_class = 'fa-th-large' |
42 icon_hint = LOGOS_PARAGRAPH_NAME |
47 icon_hint = LOGOS_PARAGRAPH_NAME |
48 for reference in self.logos or (): |
53 for reference in self.logos or (): |
49 if with_reference: |
54 if with_reference: |
50 yield reference, get_reference_target(reference, state) |
55 yield reference, get_reference_target(reference, state) |
51 else: |
56 else: |
52 yield get_reference_target(reference, state) |
57 yield get_reference_target(reference, state) |
|
58 |
|
59 # Internal refernces interface support |
|
60 |
|
61 @property |
|
62 def references(self): |
|
63 return self.logos |
|
64 |
|
65 def get_targets(self, state=None): |
|
66 yield from self.get_logos(state) |
53 |
67 |
54 |
68 |
55 @utility_config(name=LOGOS_PARAGRAPH_TYPE, provides=IParagraphFactory) |
69 @utility_config(name=LOGOS_PARAGRAPH_TYPE, provides=IParagraphFactory) |
56 class LogosParagraphFactory(BaseParagraphFactory): |
70 class LogosParagraphFactory(BaseParagraphFactory): |
57 """Logos paragraph factory""" |
71 """Logos paragraph factory""" |