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

52 lines
1.5 KiB
Python
Raw Normal View History

2020-08-08 11:32:28 +02:00
import logging
from django.core.management.base import BaseCommand
from drupal2spip_lal.base.convert import convert_node
from drupal2spip_lal.drupal.models import Node
2020-08-08 11:32:28 +02:00
logger = logging.getLogger('drupal2spip_lal')
class Command(BaseCommand):
help = "Import Drupal nodes to SPIP articles."
def add_arguments(self, parser):
2020-08-08 17:21:36 +02:00
parser.add_argument(
'--user',
nargs='*',
type=str,
help='Selects users nodes to be imported. Default is nobody.',
)
parser.add_argument(
'--node',
nargs='*',
type=int,
2020-08-08 17:21:36 +02:00
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):
2020-08-08 17:21:36 +02:00
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:
2020-08-08 11:32:28 +02:00
try:
convert_node(n, options)
except Exception as e:
logger.critical(
"L'import du node {} a échoué : {}".format(n.pk, e)
)