drupal2spip_lal/drupal2spip_lal/base/management/commands/import.py

52 lines
1.5 KiB
Python

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)
)