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 = {