From 8c3944b5bf8b4ff6ed63125b3c0b5d9ec4738b26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Poulain?= Date: Sat, 8 Aug 2020 11:32:46 +0200 Subject: [PATCH] =?UTF-8?q?ref(convert):=20durci=20les=20contr=C3=B4les=20?= =?UTF-8?q?sur=20les=20URLs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- drupal2spip_lal/base/convert.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/drupal2spip_lal/base/convert.py b/drupal2spip_lal/base/convert.py index 832c823..3ece5ff 100644 --- a/drupal2spip_lal/base/convert.py +++ b/drupal2spip_lal/base/convert.py @@ -131,14 +131,21 @@ def convert_node(node, options): type='article', url__in=list(node_urls.values_list('dst', flat=True)) ) - spip_urls.count() - if spip_urls.exists() and ( - sorted(spip_urls.values_list('url', flat=True)) - != sorted(node_urls.values_list('dst', flat=True)) - or len(set(spip_urls.values_list('id_objet', flat=True))) != 1 - ): - # incohérence dans les urls - raise NotImplementedError + if spip_urls.exists(): + article_id = spip_urls.first().id_objet + if ( + sorted(spip_urls.values_list('url', flat=True)) + != sorted(node_urls.values_list('dst', flat=True)) + or len(set(spip_urls.values_list('id_objet', flat=True))) != 1 + or spip.Urls.objects.filter( + type='article', id_objet=article_id + ).count() != spip_urls.count() + ): + # incohérence dans les urls + raise ValueError( + "Cet article existe déjà dans SPIP sans qu'il soit possible " + "de s'assurer qu'il s'agisse d'un import prééexistant." + ) article = None article_attributes = {