18 # import interfaces |
18 # import interfaces |
19 from pyams_content.component.paragraph.interfaces import IParagraphFactory |
19 from pyams_content.component.paragraph.interfaces import IParagraphFactory |
20 from pyams_content.features.checker.interfaces import IContentChecker, ERROR_VALUE, MISSING_VALUE, MISSING_LANG_VALUE |
20 from pyams_content.features.checker.interfaces import IContentChecker, ERROR_VALUE, MISSING_VALUE, MISSING_LANG_VALUE |
21 from pyams_content.shared.imagemap.interfaces import IImageMapParagraph |
21 from pyams_content.shared.imagemap.interfaces import IImageMapParagraph |
22 from pyams_i18n.interfaces import II18nManager, INegotiator, II18n |
22 from pyams_i18n.interfaces import II18nManager, INegotiator, II18n |
23 from pyams_workflow.interfaces import IWorkflow |
23 from pyams_workflow.interfaces import IWorkflow, IWorkflowState |
24 |
24 |
25 # import packages |
25 # import packages |
26 from pyams_content.component.paragraph import BaseParagraph, BaseParagraphContentChecker, BaseParagraphFactory |
26 from pyams_content.component.paragraph import BaseParagraph, BaseParagraphContentChecker, BaseParagraphFactory |
27 from pyams_sequence.utility import get_reference_target |
27 from pyams_sequence.utility import get_reference_target |
28 from pyams_utils.adapter import adapter_config |
28 from pyams_utils.adapter import adapter_config |
75 field_title = translate(IImageMapParagraph['title'].title) |
75 field_title = translate(IImageMapParagraph['title'].title) |
76 if len(langs) == 1: |
76 if len(langs) == 1: |
77 output.append(translate(MISSING_VALUE).format(field=field_title)) |
77 output.append(translate(MISSING_VALUE).format(field=field_title)) |
78 else: |
78 else: |
79 output.append(translate(MISSING_LANG_VALUE).format(field=field_title, lang=lang)) |
79 output.append(translate(MISSING_LANG_VALUE).format(field=field_title, lang=lang)) |
80 target = self.context.get_target() |
80 field_title = translate(IImageMapParagraph['reference'].title) |
81 if target is not None: |
81 if not self.context.reference: |
82 workflow = IWorkflow(target, None) |
82 output.append(translate(ERROR_VALUE).format(field=field_title, |
83 if workflow is not None: |
83 message=translate(_("internal reference is not defined")))) |
84 output.append(translate(ERROR_VALUE).format(field=translate(IImageMapParagraph['reference'].title), |
84 else: |
85 message=translate(_("target is not published")))) |
85 target = self.context.get_target() |
|
86 if target is None: |
|
87 output.append(translate(ERROR_VALUE).format(field=field_title, |
|
88 message=translate(_("internal reference target can't be " |
|
89 "found")))) |
|
90 else: |
|
91 workflow = IWorkflow(target, None) |
|
92 if workflow is not None: |
|
93 workflow_state = IWorkflowState(target) |
|
94 if workflow_state.state not in workflow.published_states: |
|
95 output.append(translate(ERROR_VALUE).format(field=field_title, |
|
96 message=translate(_("internal reference target " |
|
97 "is not published")))) |
86 return output |
98 return output |