src/pyams_content/shared/imagemap/paragraph.py
changeset 387 ae83911a4ed4
parent 356 9922023810d3
child 391 6cd4434612f5
equal deleted inserted replaced
386:6770cd1b3760 387:ae83911a4ed4
    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