import logging from django.core.management.base import BaseCommand from drupal2spip_lal.base.convert import convert_node from drupal2spip_lal.drupal.models import Node logger = logging.getLogger('drupal2spip_lal') class Command(BaseCommand): help = "Import Drupal nodes to SPIP articles." def add_arguments(self, parser): parser.add_argument( '--user', nargs='*', type=str, help='Selects users nodes to be imported. Default is nobody.', ) parser.add_argument( '--node', nargs='*', type=int, help='Selects what nodes to be imported. Default is none.', ) parser.add_argument( '--update', action='store_true', help='Force existing articles to be updated. Default is skip.', ) parser.add_argument( '--force-download', action='store_true', help='Force existing ressources to be downloaded. Default is skip.', ) def handle(self, **options): qs = Node.objects.none() if options['node']: qs |= Node.objects.filter(pk__in=options['node']) if options['user']: qs |= Node.objects.filter(user__name__in=options['user']) for n in qs: try: convert_node(n, options) except Exception as e: logger.critical( "L'import du node {} a échoué : {}".format(n.pk, e) )