summaryrefslogtreecommitdiff
path: root/chimere/management/commands/chimere_import.py
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/management/commands/chimere_import.py')
-rw-r--r--chimere/management/commands/chimere_import.py50
1 files changed, 31 insertions, 19 deletions
diff --git a/chimere/management/commands/chimere_import.py b/chimere/management/commands/chimere_import.py
index 61ccd60..faddd5e 100644
--- a/chimere/management/commands/chimere_import.py
+++ b/chimere/management/commands/chimere_import.py
@@ -3,6 +3,7 @@
import csv
import datetime, time
+from optparse import make_option
from django.core.management.base import BaseCommand, CommandError
from django.core.exceptions import ObjectDoesNotExist
@@ -14,19 +15,29 @@ class Command(BaseCommand):
args = '<import_id>'
help = "Launch import from an external source. Import configuration must "\
"be beforehand inserted in the database with the web admin."
+ option_list = BaseCommand.option_list + (
+ make_option('--all',
+ action='store_true',
+ dest='all',
+ default=False,
+ help='Update all imports set to be automatically updated'),
+ )
+
def handle(self, *args, **options):
- imports = dict([(imp.pk, imp)
- for imp in Importer.objects.order_by('pk').all()])
- imprt = None
- if args and args[0]:
+ importers = []
+ if options['all']:
+ importers = Importer.objects.filter(automatic_update=True).all()
+ elif args and args[0]:
try:
- imprt = Importer.objects.get(pk=int(args[0]))
+ importers = [Importer.objects.get(pk=int(args[0]))]
except (ValueError, ObjectDoesNotExist):
raise CommandError("Import with ID '%s' doesn't exist." % \
args[0])
- if not args:
- while not imprt:
+ else:
+ imports = dict([(imp.pk, imp)
+ for imp in Importer.objects.order_by('pk').all()])
+ while not importers:
self.stdout.write('* Choose the import: \n')
for k in imports:
self.stdout.write(' %s\n' % unicode(imports[k]).encode(
@@ -35,19 +46,20 @@ class Command(BaseCommand):
self.stdout.write('\nImport ID: ')
v = raw_input()
try:
- imprt = Importer.objects.get(pk=int(v))
+ importers = [Importer.objects.get(pk=int(v))]
except (ValueError, ObjectDoesNotExist):
self.stdout.write("Import with ID '%s' doesn't exist.\n\n" \
% v)
- pending_state = unicode(tasks.IMPORT_MESSAGES['import_pending'][0])
- imprt.state = pending_state
- imprt.save()
- tasks.importing(imprt.pk)
- self.stdout.write("Import '%d' in progress...\n" % imprt.pk)
- self.stdout.flush()
- state = pending_state
- while state == pending_state:
- time.sleep(1)
- state = Importer.objects.get(pk=int(imprt.pk)).state
- self.stdout.write(state + '\n')
+ for imprt in importers:
+ pending_state = unicode(tasks.IMPORT_MESSAGES['import_pending'][0])
+ imprt.state = pending_state
+ imprt.save()
+ tasks.importing(imprt.pk)
+ self.stdout.write("Import '%d' in progress...\n" % imprt.pk)
+ self.stdout.flush()
+ state = pending_state
+ while state == pending_state:
+ time.sleep(1)
+ state = Importer.objects.get(pk=int(imprt.pk)).state
+ self.stdout.write(state + '\n')