/**
     * Check state of all medias related to the article
     * @param eZContentObject $articleContentObject
     * @return bool
     */
    private static function checkMediaFromArticle( $articleContentObject )
    {
        /* @type $mediaClassIdentifiers array */
        $siteIni               = eZINI::instance( 'site.ini' );
        $mediaClassIdentifiers = $siteIni->variable( 'EventManager', 'MediaClassIdentifiers' );

        //Retrieve all media related to the article
        /* @type $articleDataMap eZContentObjectAttribute[] */
        $articleDataMap = $articleContentObject->dataMap();

        if( !isset( $articleDataMap['media_content'] ) )
            return true;

        $mediaContent = $articleDataMap['media_content']->content();

        if( empty( $mediaContent['relation_list'] ) )
            return true;

        foreach( $mediaContent['relation_list'] as $mediaData )
        {
            if( !in_array( $mediaData['contentclass_identifier'], $mediaClassIdentifiers ) )
                continue;

            if(!self::mediaIsCompleted($mediaData['contentobject_id']))
                return false;
        }

        // retrieve all medias in core content related to the article
        $relatedCoreContentList = RelatedCoreContent::getMediasFromArticle($articleContentObject->attribute("id"), $articleContentObject->currentLanguage());
        /** @var RelatedCoreContent $relatedCoreContent */
        foreach($relatedCoreContentList as $relatedCoreContent)
        {
            if(!self::mediaIsCompleted($relatedCoreContent->attribute("media_object_id")))
                return false;
        }

        return true;
    }